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

Комментарии (5)


  1. nckma
    22.09.2017 13:43

    А можно ли такой штукой изучить уязвимости своего веб сервера по URL?


    1. antgorka Автор
      22.09.2017 13:50
      +1

      Можно


      1. tjomamokrenko
        22.09.2017 14:55

        Но только частично и поверхностно.

        Ручное тестирование даст результат намного реальнее.


        1. antgorka Автор
          22.09.2017 15:16

          Конечно


          1. ananazzz
            22.09.2017 16:47

            На тему узявимостей по URL (или других служб): этот инструмент выдаст результаты на основе базы тех уязвимостей, что есть в Metasploit. Верно указано, ручное тестирование или с помощью вещей вроде Burp даст результаты лучше.