CGE: визуализация кравлера и скрытых связей между поддоменами

от автора

Привет, Хабр!

Хотелось бы поделиться с вами моим open-source проектом для поиска директорий, поддоменов, ака crawler. Я не говорю, что он перевернёт мир краулеров или превзойдёт Katana, но, думаю, утилита будет крайне полезна для red team-команды.

https://github.com/a11mut3d/CGE

Проблемы, которые решает CGE

Современное веб-приложение — это не монолит, где всё в одном HTML, а куча микросервисов, API и в целом эндпоинтов. Составить карту всех запросов достаточно сложно, поэтому вы не видите картину целиком.

CGE помогает в этой задаче. Он:

— собирает все поддомены из SSL-сертификата (как в crt.sh); — краулит каждый эндпоинт, парсит HTML, JS, формы, аплоады, файлы; — отслеживает, куда идут запросы в реальном времени через взаимодействие с формами; — строит граф взаимодействия эндпоинта в реальном времени.

Как это выглядит

На данный момент у CGE есть 2 варианта использования: web UI и CLI.

Если про CLI особо и нечего расписывать (он просто выдаёт все найденные эндпоинты в консоль или по желанию сохраняет в файл), то на web UI давайте остановимся подробнее.

Веб-интерфейс я постарался сделать в стиле Obsidian (спойлер: получилось не очень).

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

Технические детали

Реализовать я решил на Python с использованием BS, requests, DNS. В качестве базы данных я решил использовать Neo4j.

Почему я посчитал это неплохим решением для red team

— Обнаружение недокументированных API. — Построение цепочки эскалации: захватишь один хост — можно видеть, с кем он общается. — Экономия времени, чтобы не ставить краулер сначала на один поинт, потом на другой. — Сохранение сканирований — то есть не надо держать файлы у себя на ПК.

Заключение

Как я и говорил ранее, я не рассчитываю, что мой crawler порвёт индустрию, но буду очень рад, если он кому-то поможет.

ссылка на оригинал статьи https://habr.com/ru/articles/1039020/