Учебное пособие по тестированию на проникновение в Kali Linux: пошаговый процесс
В этом году Kali Linux исполняется 10 лет, и чтобы отпраздновать это событие, дистрибутив Linux для тестирования на проникновение добавил средства защиты в свой арсенал инструментов безопасности с открытым исходным кодом.
Ещё неизвестно, сделает ли Kali Purple для защитных инструментов то, что Kali Linux сделала для пентеста с открытым исходным кодом, но добавление более 100 инструментов для SIEM , реагирования на инциденты , обнаружения вторжений и многого другого должно поднять профиль из этих защитных инструментов.
На данный момент Kali в первую очередь известна своими примерно 600 инструментами для пентестинга с открытым исходным кодом, что позволяет пентестерам легко устанавливать полный спектр наступательных инструментов безопасности.
В этой статье мы сосредоточимся в первую очередь на том, как использовать эту мощную ОС для проведения пентеста и избежать ошибок. Мы дадим вам обзор того, чего можно достичь с помощью Kali Linux, используя краткий набор предустановленных инструментов. Хотя это руководство служит введением в общие этапы пентестинга с практическими примерами, демонстрирующими передовой опыт, оно не заменяет полную профессиональную методологию пентестинга.
@linuxkalii – Kali linux обучающий канал в телеграме.
Что такое Kali Linux?
Kali Linux — популярный дистрибутив для пентестинга, поддерживаемый Offensive Security (OffSec), частной охранной компанией с 15-летней историей. Kali содержит сканеры, снифферы и многие другие инструменты для атак.
ОС может обеспечить полный сеанс пентеста или более конкретные атаки. Несмотря на то, что существует множество других дистрибутивов для пентестинга, Kali является лучшим, рекомендованным профессионалами.
Действительно, большинство предустановленных пакетов доступны как отдельные пакеты, но Kali включает и поддерживает высококачественные решения, предназначенные для профессионального использования.
Идея операционной системы состоит в том, чтобы иметь всеобъемлющий набор инструментов, который относительно легко обновлять, следуя лучшим стандартам в отрасли.
Kali создан только для пентестинга. Вот почему вы не захотите устанавливать его в качестве основной ОС, если только ваша машина не предназначена для пентестинга или это виртуальная машина.
Что нового в Kali 2023.1?
Kali 2023.1 представляет новую версию ядра и восемь новых пакетов, включая CyberChef , который является довольно удобным интерфейсом для расшифровки и декодирования различных строк и хэшей с точностью и детализацией.
Новые важные изменения Python (3.11.2) ожидаются в предстоящем стабильном выпуске Debian, что вызывает некоторые проблемы с PIP, менеджером пакетов для Python. Команда Kali говорит, что это повлияет на все дистрибутивы на основе Debian, включая Kali, поэтому они сделали временное исправление, чтобы смягчить проблему.
Команда Kali также предупредила, что на все дистрибутивы Linux может повлиять ошибка с драйверами Nvidia и некоторыми конкретными моделями графических процессоров. Затронутые устройства могут работать медленно или зависать. В таких случаях вы мало что можете сделать, кроме как удалить драйверы Nvidia и дождаться исправления.
Другим важным дополнением в этом выпуске является Purple Edition для обеспечения безопасности, о котором мы расскажем ниже.
Также стоит упомянуть изменения в рабочем столе Xfce и добавление плазменного рабочего стола KDE. Пользователям Kali также понравятся новые обои, экраны загрузки и входа в систему.
Вы можете просмотреть полный журнал изменений , чтобы получить все подробности об этом выпуске.
Подходит ли Kali для начинающих?
Kali доступен для всех. Это бесплатный дистрибутив с открытым исходным кодом, так что каждый может скачать его. Это хорошая идея, чтобы попробовать что-то самостоятельно, а затем прочитать документацию или учебные пособия.
Тем не менее, хорошее ли это место для новичков, чтобы начать? Хотя Kali удобен для начинающих, профессиональное пентестирование — это не то, где вы можете импровизировать. Чтобы быть эффективным, необходимы знания и планирование.
Вот некоторые требования для того, чтобы стать хорошим пентестером:
- Владение основами пентестинга: юридические аспекты, области применения, основные этапы (такие как пассивная разведка, обнаружение сети, перечисление, повышение привилегий), пост-эксплуатация и постоянство.
- Владение сетевыми уровнями (модель OSI, IP, подсети и т. д.)
- Владение системами Windows и Linux
- Знание Python и некоторых языков программирования (например, Go, C, C++, Ruby); на мой взгляд, это необязательно, но некоторые специалисты по безопасности могут сказать иначе
Некоторые люди учатся быстрее, чем другие, но существует огромное количество инструментов и концепций, которые нужно знать, поэтому это займет время, независимо от ваших навыков или скорости обучения.
Начало работы: как установить Kali Linux
Kali Linux удивительно прост в установке. На странице «Get Kali» перечислены различные режимы установки с предварительно настроенными образами и готовыми к использованию виртуальными машинами.
Виртуальные машины идеально подходят для быстрого ознакомления. Не стесняйтесь тестировать их, даже с целью просто посмотреть, как выглядит ОС.
Поддерживается большинство операционных систем, вы найдёте контейнеры Docker и даже поддержку Android и Raspberry Pi. Пользователи Windows могут установить Kali, например, с помощью подсистемы Windows (WSL2).
Однако установка на «голое железо» не рекомендуется для начинающих.
Вы можете прошить ISO-образы на внешнем диске, чтобы установить Kali на выбранное вами устройство, загрузившись с этого диска.
Вы также можете запустить Kali в режиме реального времени с живыми дистрибутивами, не устанавливая его на свое устройство.
Ошибки, которых следует избегать с Kali Linux
Без надлежащих знаний ваш пентест, скорее всего, провалится, так как нет волшебного рецепта, который вы могли бы применить вслепую, независимо от того, насколько хороши ваши инструменты.
Кроме того, атакующие инструменты могут отправлять несколько зондов или заголовков вместе со своими запросами (например, при сканировании и обнаружении), которые могут быть обнаружены и заблокированы средствами безопасности. Обратите внимание, что Kali не будет автоматически скрывать ваш IP-адрес или отпечатки пальцев. Вы можете использовать VPN или установить утилиты для захвата и пересылки трафика в другие подсети или настроить цепочки прокси.
Вы также можете использовать внешние платформы, такие как Linode, для настройки и работы.
Однако, если вы полный новичок, мой совет — не спешить с инструментами и начать с бесплатных проектов с открытым исходным кодом для атаки, таких как Juice Shop или многих других уязвимых приложений, которые призваны помочь вам изучить кибербезопасность.
Тогда вы, возможно, захотите изучить более продвинутые методы или инвестировать в специальные онлайн-программы обучения (см. последний раздел этой статьи).
Пентестинг — это не только серверы и веб-приложения.
Тест на проникновение направлен на имитацию реальной атаки на целевую систему. На самом деле это широкий термин, который охватывает широкий спектр тестов и процедур не только для веб-приложений, и организации могут использовать регулярные пентесты для повышения своей безопасности и устранения критических уязвимостей.
В отличие от оценок уязвимостей , пентесты предполагают эксплуатацию, что означает, что вы, как злоумышленник, взламываете систему по-настоящему, в соответствии с правилами, определёнными перед тестом. Конечная цель — написать хороший отчёт с рекомендациями.
Обратите внимание, что ваш пентест не является исчерпывающим анализом, так как у вас, скорее всего, будет ограниченное время и вам понадобится только один работающий эксплойт для достижения вашей цели.
Важно помнить, что пентестинг не ограничивается взломом уязвимых серверов, на которых размещены приложения и базы данных. Есть несколько других углов атаки для тестирования, в том числе:
- Сетевые компрометации
- Социальная инженерия (например, фишинг)
- Повреждения памяти
- Wi-Fi атаки
Kali — прекрасный набор инструментов, потому что в нём есть инструменты для широкого спектра пентестов. Веб-приложения хороши для обучения, потому что многие веб-серверы уязвимы и открывают большую поверхность для злоумышленников, поскольку организациям приходится открывать свою сеть для общественности.
Однако при необходимости (и в договоре) пентестер может проводить и физические атаки.
Не пренебрегайте юридическими аспектами
Законы не везде одинаковы, а это означает, что одни и те же процедуры могут быть законными в одних странах и незаконными в других. Это особенно верно, если вы сравниваете ЕС с США.
Насколько я знаю, «Этический взлом» не является охраняемым законом статусом. На законных исследователей безопасности подали в суд после демонстрации критических уязвимостей.
Масштаб необходим для того, чтобы отличить пентест от реальной атаки. Конечно, вам нужно явное согласие, которое обычно является юридическим соглашением, чтобы запустить пентест, но вы также должны очень точно определить область действия перед операцией .
И последнее, но не менее важное: установка Kali Linux на работе без разрешения также повлечет за собой дополнительные обязательства. Дистрибутив содержит конфиденциальные программы, которые могут подвергнуть риску вашу организацию, не говоря уже о вашей занятости.
Использование Kali Linux: поиск инструментов
Существуют буквально сотни инструментов Kali Linux для различных целей. Новички могут начать с очень популярных пакетов для классических и повторяющихся задач, или они могут обратиться к специалистам по безопасности за своими любимыми инструментами.
Хотя список инструментов может дать некоторые подсказки, он может сбить с толку новичков. Вот ряд задач пентеста и соответствующие инструменты Kali Linux:
- OSINT : используйте Maltego для сбора информации
- Социальная инженерия : используйте SET (инструментарий социального инженера)
- База знаний : Используйте эксплуатируемую базу данных
- Платформа пентестинга : используйте Metasploit Framework
- Сканирование портов : используйте Nmap для сканирования целевой сети и Ndiff для сравнения сканирований Nmap (например, чтобы увидеть, какие порты закрываются/открываются).
- Беспроводное пентестирование : используйте Aircrack-ng для взлома Wi-Fi, Bettercap для разведки и атак MitM на устройства Wi-Fi и BLE (Bluetooth с низким энергопотреблением).
- Packet sniffing: используйте Scapy для манипулирования пакетами, Ettercap также отлично подходит для выполнения атак MitM, а Wireshark обязателен.
- Перебор URL-адресов : используйте Gobuster или DirBuster для сканирования URL-адресов (каталогов, файлов и DNS) и Nikto для обнаружения уязвимостей сервера.
- Веб-фаззинг : используйте Wfuzz
- Веб-взлом : используйте BeEF для использования XSS и других уязвимостей в браузере или Burp Suite для перехвата запросов.
- SQL-инъекции : используйте sqlmap для взлома уязвимых баз данных
- Сканирование WordPress : используйте WPscan
- Удалённый вход в систему методом грубой силы : используйте Hydra (Hydra GTK для графического интерфейса)
- Перебор паролей : используйте John The Ripper
- Active Directory : используйте Mimikatz, Impacket
Списки не расскажут вам, как использовать каждый инструмент или правильную комбинацию для достижения вашей цели. Однако после установки Kali Linux сортирует пакеты по категориям, что добавляет полезный контекст и метки.
Категория обычно соответствует типичным этапам пентеста, таким как «сбор информации» или «постэксплуатация», а также повторяющимся задачам, таким как «атаки на пароли».
Просто откройте интерактивное меню:
Использование фреймворка для пентестинга
Metasploit Framework может поддерживать многие этапы вашей работы, от сканирования и обнаружения до эксплуатации и даже пост-эксплуатации.
В Kali просто откройте интерактивное меню или введите «msfconsole» в терминале, чтобы запустить консоль.
Консоль многословна, поэтому вы быстро узнаете, удалось ли использовать эксплойт. По моему опыту, интерфейс предоставляет расширенные возможности полезной нагрузки и стандартизированный способ использования очень разных хакерских модулей.
Обратите внимание, что вам не обязательно использовать фреймворк, но вам придётся объединить несколько других предустановленных ресурсов для достижения аналогичных результатов. Если вам не нравятся ручные настройки и другие повторяющиеся процедуры, консоль — отличный вариант.
Конечно, в некоторых случаях могут потребоваться другие инструменты.
Шаг 1: Определение масштаба и целей
Чёткие цели и объём имеют решающее значение для успеха вашего пентеста. Вы и организация определяете объём и правила, которые будут применяться во время теста, что гарантирует отсутствие недопонимания и наличие чётких целей.
Вашему клиенту, скорее всего, придётся выбирать между тремя распространёнными подходами к тесту:
- Черный ящик : вы действуете без какого-либо предварительного доступа или информации о цели и обычно сосредотачиваетесь на получении первоначального доступа.
- Серый ящик: промежуточный подход, при котором вам могут предоставить некоторые учётные данные или внутреннюю информацию только для того, чтобы ускорить ваш прогресс и обеспечить более глубокое тестирование.
- Белый ящик : эти тесты обычно длиннее и сосредоточены на более поздних этапах, таких как пост-эксплуатация или сохранение, чтобы бросить вызов системе и посмотреть, насколько она устойчива к эскалации привилегий, инсайдерским заданиям или боковым перемещениям.
Не всем организациям понадобится тест «белого ящика», требующий значительного времени и бюджета, но иногда он необходим.
На этом этапе вы также должны обсудить сроки и другие юридические условия. Для ваших клиентов очень важно подробно объяснить, что разрешено, а что нет в документе, который будет подписан вами и ими.
Дикие атаки могут показаться более реалистичными для новичков, но на практике нередко заносят в белый список определенные IP-адреса, которые будут использоваться пентестерами. Вам нужно определить методологию.
Шаг 2: Разведка и OSINT
Разведка, или «рекогносцировка», может быть как пассивной, так и активной.
Например, OSINT (разведка с открытым исходным кодом) — это непрямой способ сбора информации, тогда как Nmap включает активное сканирование, когда вы отправляете зонды в целевую сеть.
Kali имеет мощные инструменты OSINT, такие как Maltego (версия для сообщества бесплатна). Эти программы могут помочь вам организовать и автоматизировать ваши исследования.
В любом случае во время пентеста вам, как правило, потребуется как пассивная, так и активная разведка.
Шаг 3: Сканирование и обнаружение
Допустим, у нас есть IP/URL для сканирования. Мы можем использовать классические команды Nmap для обнаружения сервисов и потенциальных хостов для атаки, например:
nmap -oN nmapscan.txt -v -A {IP/URL}
Опция -v предназначена для «подробного», а -A для «агрессивного сканирования», которое выполняется медленнее и отправляет больше зондов к цели. Параметр -oN предназначен для экспорта вывода в текстовый файл с важными результатами.
Если мы обнаружим, что на сервере находится уязвимая система баз данных, мы атакуем её.
Шаг 4. Получение несанкционированного доступа
Внедрение SQL в уязвимую базу данных может привести к удалённому выполнению кода (RCE).
Если нам удастся внедрить вредоносные SQL-запросы в целевую базу данных с помощью sqlmap , мы можем использовать типичную уязвимость, которая позволяет записывать файлы для передачи произвольных команд на сервер.
Многие эксплойты заключаются в загрузке обратной оболочки, которая, по сути, является каналом «обратного подключения» между вашей машиной и целевым сервером.
Если такую оболочку можно открыть от имени привилегированного пользователя (например, администратора), мы получим такие же привилегии для нашего сеанса!
Учётная запись root предоставляет самые высокие привилегии, позволяя выполнять практически любые операции, оставаясь незамеченной, что идеально подходит для постэксплуатации.
Шаг 5: Пост-эксплуатация
После использования уязвимости и компрометации сети вы можете показать своим клиентам, что вы можете сделать с ней, чтобы доказать влияние и риски, связанные с нарушением.
В Metasploit есть множество модулей для этой цели, но вы можете открыть интерактивное меню Kali Linux, чтобы получить полный список доступных инструментов постэксплуатации:
Если это среда каталога Windows/Active, у Kali есть несколько пакетов для этого, например, Mimikatz , небольшая, но мощная утилита для Kerberoasting и дампа паролей, или Impacket, набор сценариев для атаки.
В зависимости от задания и размера организации вам, возможно, придётся получить дополнительный доступ и перейти от системы, которую вы только что скомпрометировали, к другой.
Эта техника называется поворотом. Возможно, вам придется продемонстрировать, что вы можете поддерживать доступ и глубже проникать в целевую инфраструктуру.
Шаг 6: Наведение порядка
Целевая сеть должна быть восстановлена до исходного состояния до того, как вы начнёте свою операцию, что означает удаление всех временных учётных записей, сценариев и любых других изменений, внесённых вами в систему.
Этот этап обычно пропускается во время CTF (события «Захват флага»), потому что цель состоит в том, чтобы отработать атакующие приёмы, но в реальных условиях пентестер должен пройти все дорожки.
Шаг 7: Отчёт и рекомендации
На этом этапе вы напишете отчёт, содержащий только что использованные вами уязвимости, потенциальные украденные данные и рекомендации по исправлению ситуации, включая технические советы.
Отчёт — это сердце пентеста и критический документ, который буквально определяет ценность вашей работы. Он должен быть осмысленным и удобочитаемым, чтобы организация могла принимать конкретные решения для защиты своей сети.
Он может содержать следующие пункты:
- Методы, используемые для сбора разведданных
- Методы, используемые для получения несанкционированного доступа
- Модель угроз и уровень рисков
- Оценочная стоимость украденных и учётных данных
Вы должны отдавать приоритет наиболее важным мерам. Посмотрите это руководство от Hackersploit, чтобы узнать больше.
Альтернативы Kali Linux с открытым исходным кодом
Есть несколько альтернатив Kali Linux, которые стоит рассмотреть.
Parrot OS Security Edition
Parrot OS Security должна быть очень удобной для новичков, так как имеет множество конфигураций по умолчанию. Однако будьте осторожны при загрузке архива, так как Parrot предоставляет «домашнюю версию», которая не предназначена для пентестинга.
Вам понадобится версия «Security». После этого по-прежнему можно установить домашнюю версию и инструменты для пентестинга, но версия для безопасности более проста.
Что мне нравится в Parrot, так это простота использования и подход, ориентированный на конфиденциальность (без телеметрии, анонимного серфинга, прокси).
Также стоит упомянуть «Hack The Box Edition». Он призван помочь новичкам быстро настроить компьютер для CTF (например, на платформе HTB), но вы можете использовать его и для создания лаборатории или обучающей среды для других целей.
Black Arch Linux
Возможно, вы читали, что Arch предназначен для опытных пентестеров (а не для новичков), так как установка считается более технической по сравнению со многими другими дистрибутивами Linux.
Это не совсем так, так как последние версии установить намного проще, чем самые старые. Теперь вы также можете скачать «тонкую» версию.
Если вы уже используете Arch, вы можете «обновить» свою установку до Black Arch с помощью специального установщика за считанные минуты.
Пользователи Linux могут оценить основную философию, которая сильно отличается от других дистрибутивов, таких как Ubuntu или Debian, и возможность получать последние версии пакетов безопасности.
Kali Purple Edition
Версия Kali «Purple» была выпущена недавно и содержит множество популярных пакетов для обеспечения безопасности, включая Yara и DefectDojo. Существует также большой спектр криминалистических и реверсивных инструментов.
Команда добавила специальные меню, которые следуют принципам NIST Cybersecurity Framework: идентификация, защита, обнаружение, реагирование, восстановление.
Пользователи должны знать, что эта инициатива находится на ранней стадии, поэтому вы не получите предварительно настроенные виртуальные машины и большую поддержку, предоставляемую стандартной версией.
Конечно, вы не должны переносить свою текущую рабочую среду на Purple прямо сейчас. Это было бы довольно сумасшедшим шагом, так как это издание ещё довольно сырое.
Тем не менее, он достаточно стабилен, чтобы его можно было протестировать, и защитники наверняка оценят этот новый вариант, несмотря на неизбежные ошибки и недочёты.
Интересно наблюдать, как OffSec исследует новые области. Издание Purple предназначено для команд Blue и Purple для обеспечения безопасности, а это означает, что это сочетание обоих миров, красного и синего.
Вы можете получить более подробную информацию о Kali Purple в официальной вики.
Ресурсы для обучения Kali Linux
Kali Linux требует усилий и времени. Ключ в том, чтобы регулярно практиковаться и учиться у профессионалов в этой области, если вы хотите сделать карьеру. Сертификат этического взлома также может помочь.
Следующие ссылки могут помочь вам разблокировать многие навыки:
- Kali документация
- Kali обучение
- Hackersploit: туториалы по тестированию на проникновение
- OffSec: сертификация OSCP
Заключение
Kali Linux заслуживает своей прекрасной репутации как критически важный инструментарий для пентестеров и всех, кто надеется ими стать. Если ваша организация содержит критически важные данные, будь то веб-интерфейс или внутренние данные, пентестирование — это передовой метод кибербезопасности, который вы должны использовать, чтобы найти уязвимости до того, как это сделают злоумышленники. Kali Linux — отличное место для начала.