README.md

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 с настройками не хранится в репозитории по соображениям безопасности.

  1. Скопируйте пример конфига:

    cp config.example.yaml config.yaml
    
  2. Откройте 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

Веб-интерфейс

  1. Запустите python3 webapp.py
  2. Откройте http://127.0.0.1:5000
  3. Введите домен и нажмите “Проверить”
  4. Следите за прогрессом анализа
  5. Получите результат в удобном формате

Лицензия

Проект для образовательных целей.

Поддержка

При возникновении проблем проверьте: 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 и т.д.

Контакты

Ссылки на внешние ресурсы, такие как документация, блог, страница проекта в социальных сетях, сообщество проекта и т.д.

Статус проекта

В данном разделе рекомендуется указывать, на какой стадии находится проект, активно разрабатывается или находится в стадии застоя. Если же проект готов и во всю используется, можно указывать актуальную версию, а также последние изменения, которые были сделаны с момента предыдущего релиза.


Полезные ссылки


Работа с проектом

Команды

Реестр пакетов

Компании

CI/CD

API

Панель администратора

Общая информация

Описание

Сбор данных по поверхности атаки

Конвейеры
0 успешных
0 с ошибкой