Введение




Всем привет!

Я работаю в сфере информационной безопасности и занимаюсь анализом защищенности веб приложений. В свободное время я стараюсь повысить свои технические скилы и поэтому практикую bughanting на платформе hackerone или решаю лабы на hackthebox.

Вообще любой анализ web-приложения логично проводить с этапа сбора информации или разведки (кому как нравится, сути это не меняет). На этапе сбора информации о исследуемой системе я использую инструмент под названием nmap. Смею предположить, что данная легендарная утилита не нуждается в представлении, но, если вдруг кто-то не слышал вот ссылка.

Nmap — это консольное приложение (да конечно есть различные форки, например Zenmap и.т.д), и вывод его по умолчанию тоже отображается в консоли. Конечно, он также поддерживает сохранение в файл, в разных форматах, я не буду останавливаться на этом подробно, кому интересно можно посмотреть полный список ключей. (Список опций для Nmap).

Все хорошо, когда ты сканируешь N — хостов, и это N не превышает 10 или 20 штук. Но что делать если хостов становится сильно больше? А теперь представим, что часть из этих хостов например dev.example.com или test123.example.com, разработчики просто забыли вывести из эксплуатации и они не входят в область анализа? Каждый раз писать отчет и тратить на это существенную часть времени? Я вообще не фанат писанины отчетов, особенно на таком простом этапе. Поэтому я стал искать простые способы решения этой задачи.

Как говорили классики все гениальное просто.

nmap-bootstrap-xsl


Ссылка на github разработчика
Дает на выходе симпатичную html страницу, где все удобно разбито и представлено.





Как пользоваться?


1. Скачиваем сам файл стилей ссылка

2. Добавляем nmap-bootstrap.xsl в качестве таблицы стилей к вашему сканированию Nmap с аргументом --stylesheet:

 nmap -sS -A -p0-65535 -oA drive2 --stylesheet /home/kali/OSINT/nmap-bootstrap-xsl/nmap-bootstrap.xsl -iL /home/kali/Documents/Habr/drive2_domain.txt 

drive2- название xml файла который создаться после работы nmap

3. Используем xsltproc для конвертации файла в html.

 xsltproc -o drive2.html /home/kali/OSINT/nmap-bootstrap-xsl/nmap-bootstrap.xsl drive2.xml

drive2.html — название html страницы которая получится
drive2.xml — название xml файла который создался после работы nmap


Демонстрация работы


Для демонстрации работы возьмем какую-нибудь открытую программу по баг баунти, например DRIVE.NET, Inc.





Найдем все под домены домена *.drive2.ru и просканируем их nmap сразу с применением nmap-bootstrap-xsl стиля.

1. Ищем под домены домена *.drive2.ru с помощью sublister (ссылка на github)





2. Запускаем сканирование nmap



3. Полученные файлы после сканирования.



4. Используем xsltproc для конвертации файла в html.

 xsltproc -o drive2.html /home/kali/OSINT/nmap-bootstrap-xsl/nmap-bootstrap.xsl drive2.xml

5. Смотрим результат



Пример итоговой html страницы добавил на Яндекс диск. (ссылка на яндекс диск)

Вывод


Представленное решение является максимально простым. Достаточно просто скачать данный стиль и подключать его при сканировании. Это позволит получить список хостов с открытыми портами и сервисами, в удобном читабельном виде.

Надеюсь, представленная информация поможет вам в экономии времени на задачи с которыми я столкнулся и описал в статье.

Так же было бы интересно узнать, кто что использует для подобных задач. Будет круто, если поделитесь чем-то интересным в комментариях. Всем бобра.