Ostrog - Анализатор доменов
Ostrog - это инструмент для сбора информации о доменах, включая IP-адреса, ASN, геолокацию, почтовые серверы, email-адреса и поддомены.
Возможности
- Основная информация: IP, ASN, страна, город
- Почтовые серверы: MX-записи домена
- Email-адреса: поиск на сайте и в утечках (DuckDuckGo)
- Поддомены: DNS брутфорс для поиска поддоменов
- Веб-интерфейс: удобный веб-интерфейс с прогресс-баром
- Логирование: подробные логи в файл
Установка
Требования
- Python 3.7+
- pip
Установка зависимостей
pip install -r requirements.txt
Зависимости
- flask - веб-фреймворк
- requests - HTTP-запросы
- beautifulsoup4 - парсинг HTML
- dnspython - DNS-запросы
- PyYAML - конфигурация
Конфигурация
Файл config.yaml
с настройками не хранится в репозитории по соображениям безопасности.
-
Скопируйте пример конфига:
cp config.example.yaml config.yaml
- Откройте
config.yaml
и впишите свой Shodan API-ключ (и другие параметры, если нужно).
Пример структуры:
web:
host: 127.0.0.1
port: 5000
debug: true
logging:
filename: ostrog.log
level: DEBUG
shodan:
api_key: "YOUR_SHODAN_API_KEY_HERE"
Использование
Консольная версия
python3 main.py
Введите домен при запросе, например: example.com
Веб-версия
python3 webapp.py
Откройте браузер и перейдите по адресу: http://127.0.0.1:5000
Функции
Основной анализ домена
- IP-адрес
- ASN (Autonomous System Number)
- Страна и город (через ip-api.com)
- MX-записи (почтовые серверы)
Поиск email-адресов
- На сайте: обход страниц и поиск email-адресов
- В утечках: поиск через DuckDuckGo в Pastebin и других сервисах
Поиск поддоменов
- DNS брутфорс с встроенным словарём
- Проверка каждого поддомена на доступность
Структура проекта
ostrog/
├── main.py # Основной скрипт (консольная версия)
├── webapp.py # Веб-приложение
├── config.yaml # Конфигурация
├── requirements.txt # Зависимости
├── ostrog.log # Логи
└── README.md # Документация
Логирование
Все действия записываются в файл ostrog.log
:
- DEBUG: детальная информация
- INFO: общая информация
- WARNING: предупреждения
- ERROR: ошибки
Безопасность
- Таймауты для всех HTTP-запросов
- Ротация User-Agent
- Обработка ошибок подключения
- Валидация вводимых доменов
Примеры использования
Анализ домена example.com
$ python3 main.py
Введите домен: example.com
Домен: example.com
IP: 93.184.216.34
ASN: AS15133
Страна: United States
Город: Los Angeles
Почтовые серверы (MX): mail.example.com
Email-адреса (найденные на сайте):
- admin@example.com
- support@example.com
Веб-интерфейс
- Запустите
python3 webapp.py
- Откройте
http://127.0.0.1:5000
- Введите домен и нажмите “Проверить”
- Следите за прогрессом анализа
- Получите результат в удобном формате
Лицензия
Проект для образовательных целей.
Поддержка
При возникновении проблем проверьте: 1. Логи в файле ostrog.log
2. Настройки в config.yaml
3. Доступность интернета 4. Корректность вводимого домена
С чего начать?
Для того, чтобы облегчить знакомство с сервисом GitFlic и первые шаги в нём, мы подготовили несколько рекомендаций.
Уже опытный пользователь? Отредактируйте данный README файл по своему усмотрению.
Не знаете что добавить в него? Перейдите в раздел "Что должен содержать README файл"
, в котором описаны ключевые компоненты хорошего README файла.
Добавьте свои файлы
Если вы решили начать разработку проекта с создания репозитория в нашем сервисе, тогда клонируйте себе данный репозиторий следующим образом:
git clone https://gitflic.ru/project/ainich/ostrog.git
cd ostrog
**добавьте первые файлы вашего проекта**
git add .
git commit -m "Первый коммит"
git push -u origin master
Уже что-то делали в проекте? В таком случае инициализируйте гит-репозиторий в корне проекта и добавьте текущий репозиторий как удалённый репозиторий:
cd existing_folder
git init
git remote add origin https://gitflic.ru/project/ainich/ostrog.git
git clone
**добавьте новые файлы**
git add .
git commit -m "Новый коммит"
git push -u origin master
Что должен содержать README файл
Прежде всего, стоит понимать, что README.md
— это краткая документация. Это первое, что видит человек, который открывает репозиторий. Поэтому здесь важно дать достаточно информации о проекте и рассказать, что он из себя представляет. Ключевая информация, которую должен содержать README файл:
Название и описание
Название проекта должно быть простым и понятным (чаще всего это одно слово). Описание должно описывать основные функции проекта, включая его особенности и назначение. Если у вашего проекта есть альтернативные проекты, то в описании можно перечислить ключевые отличия, которые выделяют ваш проект на фоне всех остальных.
Установка и настройка
Также в README
файле рекомендуется перечислить необходимые инструкции для установки, будь то использование пакетных менеджеров (например, Homebrew
на MacOS или apt
на Linux), зависимости, которые могут понадобиться в ходе использования, а также шаги по их настройке.
Совместная разработка
Можно добавить информацию о том, как принять участие в разработке вашего проекта, как стать непосредственным участником, правила оформления pull-requests и т.д.
Контакты
Ссылки на внешние ресурсы, такие как документация, блог, страница проекта в социальных сетях, сообщество проекта и т.д.
Статус проекта
В данном разделе рекомендуется указывать, на какой стадии находится проект, активно разрабатывается или находится в стадии застоя. Если же проект готов и во всю используется, можно указывать актуальную версию, а также последние изменения, которые были сделаны с момента предыдущего релиза.
Полезные ссылки
Работа с проектом
- Как создать проект
- Как импортировать проект
- Запросы на слияние
- Зеркалирование проекта
- Импортировать проект с GitLab