Введение
Всем привет!
Я работаю в сфере информационной безопасности и занимаюсь анализом защищенности веб приложений. В свободное время я стараюсь повысить свои технические скилы и поэтому практикую 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 страницы добавил на Яндекс диск. (ссылка на яндекс диск)
Вывод
Представленное решение является максимально простым. Достаточно просто скачать данный стиль и подключать его при сканировании. Это позволит получить список хостов с открытыми портами и сервисами, в удобном читабельном виде.
Надеюсь, представленная информация поможет вам в экономии времени на задачи с которыми я столкнулся и описал в статье.
Так же было бы интересно узнать, кто что использует для подобных задач. Будет круто, если поделитесь чем-то интересным в комментариях. Всем бобра.
Shaman_RSHU
Прямо в консоли ещё можно nmap-parser-output с кучей параметров фильтрации.