ODIN
Наблюдение, обнаружение и исследование сетей


Текущая версия: v2.0.0 "Huginn"
ODIN — это инструмент на Python для автоматизации сбора разведданных, обнаружения активов и создания отчетов. Помните, что последние новинки находятся в ветке dev, и мы приветствуем отзывы!
Подробности, а также инструкции по установке и настройке смотрите в вики GitHub.
Что может ODIN?
ODIN стремится автоматизировать базовые задачи разведки, используемые красными командами для обнаружения и сбора данных о сетевых активах, включая домены, IP-адреса и системы, доступные из интернета. Ключевая особенность ODIN — управление данными и создание отчетов. Данные организованы в базе данных, и, при необходимости, эту базу данных можно преобразовать в HTML-отчет или графовую базу данных Neo4j для визуализации данных.
ODIN выполняет это в несколько этапов:
Этап 1 — Обнаружение активов
- Собирать базовую информацию об организации из таких источников, как маркетинговая база данных Full Contact.
- Проверять DNS Dumpster, Netcraft и TLS-сертификаты для обнаружения поддоменов для предоставленных доменов.
- Разрешать домены и поддомены в IP-адреса через сокет-соединения и DNS-записи.
- Собирать информацию обо всех IP-адресах, такую как данные о владельце и организации, из RDAP, whois и других источников данных.
- Выполнять поиск доменов и IP-адресов в Shodan для сбора дополнительных данных, таких как операционные системы, баннеры служб и открытые порты.
- Проверять возможность перехвата (takeover) и подстановки доменов (domain fronting) для доменов и поддоменов.
Этап 2 — Обнаружение сотрудников
- Собирать адреса электронной почты и имена сотрудников целевой организации.
- Связывать сотрудников с профилями в социальных сетях через поисковые системы и Twitter API.
- Перепроверять найденные адреса электронной почты через Have I Been Pwned от Троя Ханта.
Этап 3 — Облачные и веб-сервисы
- Искать файлы Office и PDF-файлы в целевом домене, загружать их и извлекать метаданные.
- Искать корзины AWS S3 и Digital Ocean Spaces по ключевым словам, связанным с организацией.
- Делать скриншоты обнаруженных веб-сервисов для быстрого предварительного ознакомления.
Этап 4 — Отчетность
- Сохранять все данные в базу данных SQLite3, чтобы данные можно было легко запрашивать.
- Создавать HTML-отчет с использованием стандартных SQL-запросов для удобного просмотра данных в веб-браузере.
- Создавать графовую базу данных Neo4j, которая связывает все обнаруженные сущности (IP-адреса, домены, поддомены, порты и сертификаты) отношениями (например, RESOLVES_TO, HAS_PORT).
В итоге вы получите несколько способов просмотра и визуализации данных. Даже простой запрос Neo4j, такой как MATCH (n) RETURN n (отобразить всё), может создать увлекательный граф внешнего периметра организации и упростить понимание того, как связаны активы. Страницы вики Neo4j содержат более качественные примеры запросов.