Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sub.Monitor — Самостоятельно размещаемый инструмент непрерывного мониторинга пассивных поддоменов. | Kitploit
Инструменты/GitHubGitHub/e1abrador/sub.monitor
РазведкаСбор информацииПеречисление Поддоменов
GitHube1abrador/sub.monitor

sub.Monitor

Самостоятельно размещаемый инструмент непрерывного мониторинга пассивных поддоменов.

Репозиторий
17220142 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

sub.Monitor


   Быстрый и удобный инструмент мониторинга поддоменов для непрерывного управления поверхностью атаки.

image

Зачем?

Зачем выбирать sub.Monitor? Эта программа предлагает простую настройку благодаря использованию SQLite для хранения всех обнаруженных доменов (отпадает необходимость в предварительном управлении базой данных). Кроме того, она обладает высокой настраиваемостью: пользователю нужно лишь добавить несколько строк кода в скрипт, используя выбранные инструменты. В отличие от других существующих решений, основанных на базах данных, таких как MySQL или MongoDB, инициализация скрипта может превратиться в утомительную задачу.

Возможности

  • Быстрый
  • Простота использования
  • Простая установка
  • Простая настройка
  • Непрерывное сохранение поддоменов в локальной базе данных (с возможностью выгрузки всех)
  • Уведомления в Telegram/Slack/Discord

Меню помощи

sub.Monitor флаги:

options:
  --add ADD             Domain to scan
  --out-scope OUT_SCOPE
                        File with out-of-scope domains
  --file FILE           File with known subdomains
  -D DOMAIN, --domain DOMAIN
                        Domain to scan
  -H HOURS, --hours HOURS
                        Hours between scans
  --dump                Dump all subdomains for a specific domain
  --list                List all root domains in the database
  -df DF                File with domains to scan
  --inscope             Dump only in-scope domains
  --notinscope          Dump only out-of-scope domains
  --dumpall             Dump all subdomains with their details
  --info                Show discovery date for subdomains
  -help, -?             Show this help message and exit

Предварительные настройки

Вам нужно указать пути к файлам конфигурации (api) в файле config.ini.

  • Subfinder файл конфигурации api.
  • Amass файл конфигурации api.
  • Файл конфигурации Notify.
  • Вам нужно указать пути к бинарным файлам и конфигурации в файле sub.monitor-config.ini.
  • Наконец, выполните pip3 install -r requirements.txt

Вы можете легко добавить собственные инструменты в скрипт, просто изменив строки кода:

def run_tool(tool, domain, output_file):
    print(f'[{datetime.datetime.now()}] - Running {tool} on {domain}')
    if tool == 'assetfinder':
        assetfinder_binary = config.get('Binary paths', 'assetfinder')
        cmd = f'echo {domain} | {assetfinder_binary} -subs-only | grep -E "{domain}$" |grep -v "*" | grep -v "@"'
    elif tool == 'subfinder':
        subfinder_binary = config.get('Binary paths', 'subfinder')
        subfinder_api = config.get('Api', 'subfinder_api')
        cmd = f'{subfinder_binary} -d {domain} -silent -pc {subfinder_api} -all'
    elif tool == 'amass':
        amass_binary = config.get('Binary paths', 'amass')
        amass_api = config.get('Api', 'amass_api')
        cmd = f'{amass_binary} enum -passive -norecursive -noalts -d {domain} -config {amass_api}'
    elif tool == 'my-custom-tool':
        my-custom-tool-binary = config.get('Binary paths', 'my-custom-tool-binary-or-script')
        cmd = f'{my-custom-tool-binary} -d {domain}'

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

cmd = f'bash customtool.sh {domain}''
...
cat customtool.sh
mycustomtool -d $1 > /tmp/$1.txt &>/dev/null; cat /tmp/$1.txt | unfurl domains | anew; rm -r /tmp/$1.txt

Также добавьте название вашего инструмента здесь:

                for tool in ['subfinder', 'amass', 'assetfinder', 'my-custom-tool-name']:
                    run_tool(tool, domain, output_file)

Наконец, конечно, вам нужно добавить инструмент в файл sub.monitor-config.ini, чтобы Python-скрипт мог получить бинарный файл из этого конфигурационного файла.

Единственное необходимое условие: после завершения команды она должна вывести все обнаруженные домены, чтобы инструмент мог сохранить их в файле логов и в базе данных.

План работы

Прежде всего sub.Monitor нужен список уже просканированных доменов:

➜  cat ibm_sorted_subdomains.txt
test1.ibm.com
test2.ibm.com
test3.ibm.com
subtest.testX.ibm.com
...

Теперь файл с поддоменами можно передать sub.Monitor следующей командой:

python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

Также есть возможность добавить флаг out-of-scope. Например, предположим, что программа Bug Bounty имеет следующую политику:

*.ibm.com - в зоне
super-admin.ibm.com - вне зоны
*.super-admin.ibm.com - вне зоны

Можно создать файл с этими данными:

cat outscope.txt
super-admin.ibm.com
*.super-admin.ibm.com

Теперь вы можете вручную добавить все обнаруженные домены в базу данных (отфильтровав те, что в зоне):

python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt --out-scope outscope.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

Это добавит все ваши поддомены в базу данных, но пометит те, что вне зоны, флагом [Out of scope] (мы увидим, как фильтровать домены в зоне из базы данных в разделе о выгрузке доменов).

Чтобы подтвердить, что домен добавлен в базу данных, выполните:

python3 monitor.py --list
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

ibm.com [9 subdomains added manually] [2 subdomains discovered] [11 total unique in database]

После того как он корректно загружен, можно начинать процесс мониторинга. Рекомендуется использовать TMUX на VPS и оставить его работать на длительное время. Следующей командой скрипт будет запускать инструменты перечисления поддоменов и сравнивать новые результаты со старыми. Если будет найден новый поддомен, sub.Monitor сначала добавит его в локальную базу данных (чтобы больше не уведомлять об этом обнаружении), а затем уведомит пользователя через Slack/Telegram/Discord.

python3 monitor.py -D ibm.com -H 12 --out-scope outscope.txt

Если будет найден какой-либо поддомен, sub.Monitor покажет следующее сообщение в выводе:

➜ python3 monitor.py -D ibm.com -H 8 # Для фильтрации поддоменов в текущей зоне от тех, что вне зоны, можно использовать:
                                      # python3 monitor.py -D ibm.com -H 8 --out-scope outscope.txt
Скачать инструмент