Автоматизируем тестирование на проникновение с apt2

85b9ff61df254acaabd16ca7378702a0.png

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


Вы должны получить случайно сгенерированный пароль. Запомните его.
7d70e23396da4e26a669ea31cc05e3b4.PNG

Можно посмотреть на структуру конфигурационного файла в каталоге /usr/share/apt2

830a5af89f6447e2a7b354b7464d32e9.PNG

Нас интересует файл 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 мы получаем список доступных ключей

87ccc5cb6e16478092223006e2caa295.PNG

Разберем некоторые из них

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 при запуске.

8be114d823a94d34a4fe89fad91cf2a2.PNG

Давайте запустим apt2 с максимальным уровнем риска против машины 192.168.1.4, на которой работает Ubuntu.

apt2 -v -v -s 1 -b --target 192.168.1.4


Нас предупреждают, что модули, требующие API ключи не будут выполнены и начнется сканирование

7712d434fcfd455fb4a712090adf792a.PNG

Далее начнут запускаться модули

6a765209693c44c6bdb849f32a716fc7.PNG

Посмотреть, что смог собрать apt2 можно в директории /root/.apt2/proofs

b661ced2c7d44f2ebf98cc552d8ec213.PNG

Здесь вы можете просмотреть результат работы каждого модуля. В моем случае фреймворк не обнаружил ничего стоящего.

Запустим еще одно сканирование в отношении 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.

bc6135cc0964443bbf270222bf525d64.PNG

Если сервер уязвим, об этом будет сказано в логе

[!] VULN [ms08-067] Found on [192.168.1.7]


и уязвимость будет проэксплуатирована через сервис Metasploit RPC автоматически и мы получим сессию

d98bb19db0af4fd5b5337fc949a90d9e.PNG

Далее через сессию уже будут выполнены другие модули.

2bf75779bff64476a58caa0463f97e14.PNG

И в конце работы программы будет создан отчет о проделанной работе

a326224d90624deab702a5a4f1ec7501.PNG

firefox /root/.apt2/reports/reportGenHTML_flcgfsqhji.html


798ff3d48905447eb6b535e153391d2b.PNG

Если вы хотите написать свои модули для apt2, можно изучить имеющиеся в директории /usr/share/apt2/modules и сделать собственные по аналогии. Сам фреймворк написан на python и модули к нему, соответственно, тоже.

© Habrahabr.ru