Обзор фреймворка для сбора данных OWASP Nettacker
OWASP Nettacker — это автоматизированная платформа (фреймворк) для автоматического тестирования на проникновение, сканирования уязвимостей, сбора информации и создания отчетов, включая найденные уязвимости, информацию об используемых компонентов и другие сведения.
Nettacker использует такие протоколы, как TCP SYN, ACK и ICMP, для обхода устройств Firewall, DS, IPS.
OWASP Nettacker разработан некоммерческой организацией OWASP, которая специализируется на обеспечении безопасности веб-приложений. Свое название программа получила от образования слов »Network» (сеть) и «Attacker» (атакующий).
Среди достоинств OWASP Nettacker можно выделить следующие:
бесплатный проект с открытым исходным кодом;
кроссплатформенность — запустить инструмент можно на ОС семейства Windows, Linux/Unix, macOS. Также доступен вариант запуска в контейнере Docker;
поддержка обширного функционала (более 80 модулей) «из коробки», включая такие инструменты, как сканер портов, сканеры для поиска информации об используемых модуле, SSH Brute force и другие. Ознакомиться с полным списком встроенных модулей можно по ссылке;
быстрая работа благодаря поддержке многопоточности;
наличие функционала для создания отчетов;
мультиязычность — утилита локализована на более чем 20 различных языков (включая русский язык);
наличие встроенного API.
Установка OWASP Nettacker
Nettacker является кроссплатформенным ПО, однако проще всего запустить утилиту в контейнере Docker. Для этого на сервере, где установлен Docker, достаточно выполнить команду:
docker run -it --name nettacker --rm owasp/nettacker /bin/bash
Для проверки корректности запуска утилиты, выполняем команду:
python3 nettacker.py -h
Использование OWASP Nettacker
Благодаря большому количеству встроенных модулей, Nettacker можно использовать для различных сценариев, среди которых можно выделить следующие:
сбор сведений о веб-сайте;
сканирование на наличие открытых портов;
обнаружение новых хостов;
поиск ПО, которое использует веб-сайт.
Разберём работу основных модулей. В качестве атакующей цели можно использовать как доменное имя, так и IP-адрес. Также в процессе сканирования можно использовать 2 и более модуля одновременно. Для этого их необходимо разделить запятыми.
Сканер портов
Функционал для сканирования на наличие открытых портов эквивалентен функционалу программы Nmap. Для того чтобы просканировать веб-сайт geeksforgeeks.org, необходимо выполнить команду:
python3 nettacker.py -i geeksforgeeks.org -m port_scan
В выводе отобразилась таблица, которая содержит в себе дату и время начала сканирования (столбец date), цель (target), используемый модуль (module_name), а также вывод самого модуля. В данном случае мы использовали модуль port_scan, который обнаружил открытые порты на сервере (столбец port).
Nettacker поддерживает следующие форматы для задания сканируемых объектов:
IP-адрес — 192.168.1.1;
диапазон IP-адресов — 192.168.1.1–192.168.255.255;
подсеть — 192.168.1.0/24;
доменное имя — test.com;
URL — http://test.com https://test.com.
Также можно задать необходимые адреса в файле и передать данный файл на сканирование. Для этого используется ключ -l. Создадим обычный текстовый файл с именем addresses без расширения со следующим содержимым:
owasp.org
testhtml5.vulnweb.com
testaspnet.vulnweb.com
Передадим данный файл в качестве цели для сканирования открытых портов:
python3 nettacker.py -l addresses -m port_scan
Можно просканировать только конкретные порты. По умолчанию Nettacker сканирует весь диапазон портов, которые заранее прописаны. Чтобы уменьшить время сканирования, можно задать только конкретные порты, используя ключ -g, например, 80 и 22:
python3 nettacker.py -i geeksforgeeks.org -m port_scan -g 80,22
Поиск поддоменов
В Nettacker присутствует отдельный модуль для поиска поддоменов. Для этого используется команда:
python3 nettacker.py -i owasp.org -m subdomain_scan
Сбор информации о веб-сайте
В Nettacker присутствуют модули для поиска различной информации о веб-сайте. Разберём некоторые из них:
admin_scan — сканирует на наличие таких директорий как /admin /cmsadmin /wp-admin и так далее.
python3 nettacker.py -i domain1-test.ru -m admin_scan
Как можно заметить, модуль обнаружил на сайте такие директории, как /administration.html /administration.php /administrator /administrator/account.asp /administrator/account.php
pma_scan — проверяет на наличие страницы (phpmyadmin) для входа на phpMyAdmin:
python3 nettacker.py -i domain1-test.ru -m pma_scan
При сканировании была найдена страница со входом на phpMyAdmin (см. скриншот выше).
wordpress_version_scan — определяет версию WordPress (применимо к сайтам, которые используют WordPress в качестве CMS):
python3 nettacker.py -i domain1-test.ru -m wordpress_version_scan
Была найдена версия WordPress под номером 5.1.17.
wp_plugin_scan — сканирует сайт на наличие используемых плагинов WordPress (применимо к сайтам, которые используют WordPress в качестве CMS):
python3 nettacker.py -i domain1-test.ru -m wp_plugin_scan
В примере выше были найдены 2 плагина WordPress — nextgen-gallery и contact-from-7.
x_powered_by_vuln — проверяет заголовок X-Powered-By на наличие в нем информации об используемом программном обеспечении веб-сайта:
python3 nettacker.py -i flynow.vn -s -m port_scan, x_powered_by_vuln
Как можно увидеть, в последнем столбце в качестве значения в заголовке X-Powered-By используется Nginx.
Создание отчетов
После каждого сканирования Nettacker создает отчет, который по умолчанию сохраняется в usr/src/owaspnettacker/.data/results/ и в формате .html:
Отчет состоит из двух частей — интерактивного графа:
Его можно перемещать, чтобы увидеть карту действий сканера:
В конце отчета располагается таблица, в которой представлены результаты:
В столбце json_event можно узнать более подробную информацию об отправленном запросе:
Также в качестве форматов для отчета поддерживаются форматы csv и json. Для того чтобы сохранить отчет под новым именем и в новом формате, необходимо использовать ключ -o, например:
python3 nettacker.py -i owasp.org -m admin_scan -o results.csv
Сгенерированный отчет будет сохранен в текущей директории, из которой была запущена утилита nettacker. Можно указывать абсолютный (полный) путь, куда будет сохранен файл с отчетом. Также при использовании форматов csv и json в отчетах не будут использоваться графики.
OWASP Nettacker хорошо подходит для сбора информации о требуемом хосте. Благодаря большому количеству поддерживаемых модулей, можно легко находить только нужную информацию.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.