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

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

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

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

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

Категории

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

sub.Monitor

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

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

Популярное

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

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

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

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

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

sub.Monitor

root@kitploit:~

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

image

Зачем?

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

Возможности

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

Меню помощи

sub.Monitor флаги:

root@kitploit:~
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

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

root@kitploit:~
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 мог сохранить их в базе данных. Например, способ использования будет таким:

root@kitploit:~
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

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

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

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

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

План работы

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

root@kitploit:~
➜  cat ibm_sorted_subdomains.txt
test1.ibm.com
test2.ibm.com
test3.ibm.com
subtest.testX.ibm.com
...

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

root@kitploit:~
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 имеет следующую политику:

root@kitploit:~
*.ibm.com - в зоне
super-admin.ibm.com - вне зоны
*.super-admin.ibm.com - вне зоны

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

root@kitploit:~
cat outscope.txt
super-admin.ibm.com
*.super-admin.ibm.com

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

root@kitploit:~
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] (мы увидим, как фильтровать домены в зоне из базы данных в разделе о выгрузке доменов).

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

root@kitploit:~
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.

root@kitploit:~
python3 monitor.py -D ibm.com -H 12 --out-scope outscope.txt

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

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

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:07:25.191169] - New subdomain xxxx.ibm.com discovered
[2023-06-06 18:07:25.353156] - New subdomain xyxyxyxyxyx.ibm.com discovered
[2023-06-06 18:07:25.641082] - New subdomain x1.xxxx.ibm.com discovered

Также можно мониторить более одного домена с помощью следующей команды:

root@kitploit:~
python3 monitor.py -df root-domains.txt -H 8
python3 monitor.py -df roots.txt -H 8 --out-scope outscope.txt

После того как эти сообщения будут выведены, пользователь одновременно получит уведомления в Telegram

image

Как я управляю уведомлениями? Я нашёл довольно простой (и удобный в управлении) способ просматривать все новые обнаруженные домены с помощью Discord. У меня получилось так (размыто, так как все это частные программы):

image

Идея состоит в том, чтобы сначала создать категорию по имени программы:

> Yahoo

--- yahoo.com

--- yahoo.net

--- etc ...

> IBM

--- ibm.com

--- whateverdomain.com

--- etc ...

Вот как выглядит мой конфигурационный файл notify:

image

Я рекомендую делать так для каждого домена (настройка может быть довольно утомительной, но это отличный способ управлять результатами). Скрипт monitor.py будет отправлять результаты на указанный вебхук на основе ID (который должен совпадать с именем сканируемого домена).

Допустим, скрипт работал 2 месяца, и вы хотите получить все результаты (старые поддомены и новые). С sub.Monitor это возможно с помощью флага --dump:

root@kitploit:~
python3 monitor.py -D ibm.com --dump

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

Subdomains for ibm.com:
subdomain1.ibm.com
subdomain2.ibm.com
...

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

root@kitploit:~
python3 monitor.py -D ibm.com --dump --info

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

Subdomains for ibm.com:
test.ibm.com [discovered on 06/08/2023]
test2.ibm.com [discovered on 08/08/2023] [Out of scope]

Поскольку вполне вероятно, что некоторые домены помечены как вне зоны, при использовании команды python3 monitor.py -d ibm.com --dump --info, чтобы показать только домены в зоне, можно использовать флаг --inscope:

root@kitploit:~
python3 monitor.py -D ibm.com --dump --info --inscope

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

Subdomains for ibm.com:
test.ibm.com [discovered on 06/08/2023]
test3.ibm.com [discovered on 08/08/2023]

Благодарности

Спасибо:

  • Projectdiscovery за создание subfinder и notify!.
  • OWASP за их потрясающий проект amass!.
  • Tomnomnom за создание assetfinder!.

TODO

  • Реализовать мониторинг более одного поддомена. [DONE]
  • Непрерывное чтение файлов доменов, чтобы новые домены можно было сканировать без остановки программы. [DONE]
  • Реализовать фильтрацию out of scope [DONE]

Если у вас есть идея какой-либо новой функциональности, откройте PR на https://github.com/e1abrador/sub.Monitor/pulls.

Удачи и успешной охоты! Если вам действительно нравится инструмент (или любые другие), или они помогли вам найти отличный баунти, подумайте о ПОКУПКЕ МНЕ КОФЕ! ☕ (Кофеин мне бы не помешал!)

⚪ e1abrador

Twitter: https://twitter.com/e1abrador

Buy Me a Coffee at ko-fi.com

Скачать инструмент