Обзор фреймворка для сбора данных OWASP Nettacker

95bf1fcfff4ac5fdd684e827f2584bc8.jpg

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

234ba4c5c8c67363cdb0f5b6bf6b2c82.png

Использование OWASP Nettacker

Благодаря большому количеству встроенных модулей, Nettacker можно использовать для различных сценариев, среди которых можно выделить следующие:

  • сбор сведений о веб-сайте;

  • сканирование на наличие открытых портов;

  • обнаружение новых хостов;

  • поиск ПО, которое использует веб-сайт.

Разберём работу основных модулей. В качестве атакующей цели можно использовать как доменное имя, так и IP-адрес. Также в процессе сканирования можно использовать 2 и более модуля одновременно. Для этого их необходимо разделить запятыми.

Сканер портов

Функционал для сканирования на наличие открытых портов эквивалентен функционалу программы Nmap. Для того чтобы просканировать веб-сайт geeksforgeeks.org, необходимо выполнить команду:

python3 nettacker.py -i geeksforgeeks.org -m port_scan

2203819c1c5b2c435b9451a8d0c639ae.png

В выводе отобразилась таблица, которая содержит в себе дату и время начала сканирования (столбец date), цель (target), используемый модуль (module_name), а также вывод самого модуля. В данном случае мы использовали модуль port_scan, который обнаружил открытые порты на сервере (столбец port). 

Nettacker поддерживает следующие форматы для задания сканируемых объектов:

  • IP-адрес — 192.168.1.1;

  • диапазон IP-адресов — 192.168.1.1192.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

12558adafb07f0185a27c50920865239.png

Передадим данный файл в качестве цели для сканирования открытых портов:

python3 nettacker.py -l addresses -m port_scan

e6cb1bee5ef3aae8e9271276fa076143.png

Можно просканировать только конкретные порты. По умолчанию Nettacker сканирует весь диапазон портов, которые заранее прописаны. Чтобы уменьшить время сканирования, можно задать только конкретные порты, используя ключ -g, например, 80 и 22:

python3 nettacker.py -i geeksforgeeks.org -m port_scan -g 80,22

ca0e9dc9525aef97dbabc1f358102582.png

Поиск поддоменов

В Nettacker присутствует отдельный модуль для поиска поддоменов. Для этого используется команда:

python3 nettacker.py -i owasp.org -m subdomain_scan

2f301b9fe77adaa5a78a0f841e46c77e.png

Сбор информации о веб-сайте

В Nettacker присутствуют модули для поиска различной информации о веб-сайте. Разберём некоторые из них:

admin_scan — сканирует на наличие таких директорий как /admin /cmsadmin /wp-admin и так далее. 

python3 nettacker.py -i domain1-test.ru -m admin_scan

28f828dae7b57ce48c65eede97035fa8.png

Как можно заметить, модуль обнаружил на сайте такие директории, как /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

77af5bf203d871c69772a4e3eb905657.png

При сканировании была найдена страница со входом на phpMyAdmin (см. скриншот выше).

wordpress_version_scan — определяет версию WordPress (применимо к сайтам, которые используют WordPress в качестве CMS):

python3 nettacker.py -i domain1-test.ru -m wordpress_version_scan

c6641c31d2c98086951af717fb73ca74.png

Была найдена версия WordPress под номером 5.1.17.

wp_plugin_scan — сканирует сайт на наличие используемых плагинов WordPress (применимо к сайтам, которые используют WordPress в качестве CMS):

python3 nettacker.py -i domain1-test.ru -m wp_plugin_scan

da58856553efbf2f4f7f011f1b29a7b5.png

В примере выше были найдены 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

e28ebe4d14ad031f300ec1028cee8348.png

Как можно увидеть, в последнем столбце в качестве значения в заголовке X-Powered-By используется Nginx.

Создание отчетов

После каждого сканирования Nettacker создает отчет, который по умолчанию сохраняется в usr/src/owaspnettacker/.data/results/ и в формате .html:

db59938aa9ad1c45dbacb01f52503cd8.png

Отчет состоит из двух частей — интерактивного графа:

e74f3954f29617ae312db0f24f1ab969.png

Его можно перемещать, чтобы увидеть карту действий сканера:

3361e99e41ab15088f7f4b57dd913db9.png

В конце отчета располагается таблица, в которой представлены результаты:

0b2a6c7713e9d26e0f64d46b3eed708d.png

В столбце json_event можно узнать более подробную информацию об отправленном запросе:

8cb4ed3fb6f98e2192ee4c53fda6a50f.png

Также в качестве форматов для отчета поддерживаются форматы csv и json. Для того чтобы сохранить отчет под новым именем и в новом формате, необходимо использовать ключ -o, например:

python3 nettacker.py -i owasp.org -m admin_scan -o results.csv

Сгенерированный отчет будет сохранен в текущей директории, из которой была запущена утилита nettacker. Можно указывать абсолютный (полный) путь, куда будет сохранен файл с отчетом. Также при использовании форматов csv и json в отчетах не будут использоваться графики.

OWASP Nettacker хорошо подходит для сбора информации о требуемом хосте. Благодаря большому количеству поддерживаемых модулей, можно легко находить только нужную информацию.

НЛО прилетело и оставило здесь промокод для читателей нашего блога:
-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

© Habrahabr.ru