Автоматизируем тестирование на проникновение с apt2
20 сентября состоялся очередной релиз популярного дистрибутива для проведения тестирования на проникновение Kali Linux 2017.2. Среди нововведений мы получили возможность установить из репозитория несколько новых инструментов. В данном тексте мы рассмотрим фреймворк apt2 или Automated Penetration Testing Toolkit.
Установка и настройка
После обновления дистрибутива до версии 2017.2 можно приступать к установке фреймворка.
Напомню, что обновиться до последней версии Kali Linux можно при помощи следующих команд
apt-get update
apt-get upgrade
apt-get dist-upgrade
Установка происходит стандартно
apt-get install apt2
Далее рекомендую провести базовую настройку.
Изучив официальный github проекта становится ясно, что он интегрируется с Metasploit Framework.
Для интеграции с Metasploit нужно запустить его RPC сервис.
Делается это следующим образом
msfconsole
load msgrpc
Вы должны получить случайно сгенерированный пароль. Запомните его.
Можно посмотреть на структуру конфигурационного файла в каталоге /usr/share/apt2
Нас интересует файл default.cfg
В блоке [metasploit] указываем наш пароль
[metasploit]
msfhost=127.0.0.1
msfport=55552
msfuser=msf
msfpass=kqVbTlmr
msfexploitdelay=20
Далее вы можете добавить дополнительные ключи для nmap или изменить подсеть. По умолчанию используется SYN сканирование (-sS) и флаг (-A), что указывает Nmap провести определение версий сервисов, типа и версии ОС, выполнить безопасные NSE скрипты и traceroute. В некоторых случаях будет нелишним добавить ключ -Pn, если вы не импортируете в apt2 результат сканирования nmap.
[nmap]
scan_target=192.168.1.0/24
scan_type=S
scan_port_range=1-1024
scan_flags=-A
По умолчанию используется 20 потоков. Это значение можно не менять без необходимости.
[threading]
max_modulethreads=20
Есть настройка для Reponder. Если Вы используете нестандартную конфигурацию, нужно отредактировать блоки [responder] и [default_tool_paths]. Я задам responder_timeout=30, так как не хочу тратить время на этот модуль.
Далее идет блок [searching]
[searching]
file_search_patterns=*.bat,*.sh,*passwd*,*password*,*Pass*,*.conf,*.cnf,*.cfg,*.config
Здесь можно задать маски файлов, которые нас интересуют, если мы получим доступ, например, к NFS ресурсу. Можно добавить что-то свое или не менять.
Также фреймворк позволяет использовать API Shodan. Ключи задаются в отдельном блоке и по умолчанию закомментированы. Я не буду их использовать, так как моя целевая машина находится в локальной сети. Напомню, что процесс получения API ключей для каждого сервиса индивидуален и не всегда бесплатен. API ключ для Shodan можно получить бесплатно после регистрации на сайте.
[apikeys]
#apt2_shodan_apikey=CHANGEME
#apt2_linkedin_apikey=CHANGEME
Запуск
При запуске с ключом -h мы получаем список доступных ключей
Разберем некоторые из них
SAFE_LEVEL может принимать значения от 1 до 5 и указывает apt2 насколько безопасные модули разрешено запускать. Самые безопасный режим — 5. По умолчанию используется 4.
EXCLUDE_TYPES позволяет исключить определенные типы модулей из списка.
--target задает цели, либо вы можете использовать ключ -f, чтобы загрузить в apt2 XML файл с результатами сканирования nmap. Напомню, что сохранить результат работы nmap в XML можно при помощи ключа -oX.
и ключ --listmodules покажет доступные модули. Давайте посмотрим на этот список
apt2 --listmodules
Получаем список с указанием имени модуля, его типа (используется для EXCLUDE_TYPES), Safety Level и описания. Модули с Safety Level ниже, чем указано ключом -s выполнены не будут, о чем будет дополнительно сказано в выводе apt2 при запуске.
Давайте запустим apt2 с максимальным уровнем риска против машины 192.168.1.4, на которой работает Ubuntu.
apt2 -v -v -s 1 -b --target 192.168.1.4
Нас предупреждают, что модули, требующие API ключи не будут выполнены и начнется сканирование
Далее начнут запускаться модули
Посмотреть, что смог собрать apt2 можно в директории /root/.apt2/proofs
Здесь вы можете просмотреть результат работы каждого модуля. В моем случае фреймворк не обнаружил ничего стоящего.
Запустим еще одно сканирование в отношении Windows машины 192.168.1.7 и не будем выполнять сканирование nmap через apt2, а загрузим XML файл.
nmap -n -Pn -A -oX scan1 192.168.1.7
apt2 -s 1 -b -v -v -f scan1
Здесь уже запускаются другие модули, например модуль для тестирования на уязвимость к ms08–067.
Если сервер уязвим, об этом будет сказано в логе
[!] VULN [ms08-067] Found on [192.168.1.7]
и уязвимость будет проэксплуатирована через сервис Metasploit RPC автоматически и мы получим сессию
Далее через сессию уже будут выполнены другие модули.
И в конце работы программы будет создан отчет о проделанной работе
firefox /root/.apt2/reports/reportGenHTML_flcgfsqhji.html
Если вы хотите написать свои модули для apt2, можно изучить имеющиеся в директории /usr/share/apt2/modules и сделать собственные по аналогии. Сам фреймворк написан на python и модули к нему, соответственно, тоже.