Автоматизируем тестирование на проникновение с 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 и модули к нему, соответственно, тоже.