machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Перечень поддоменов: что такое, как это сделать, мониторинг автоматизации с помощью веб-крючков и централизация ваших выводов

Дата публикации Oct 3, 2019

Если вы читаете эту статью, возможно, что вы:

  • Заинтересованы в изучении, что такое и как делать подсчет поддоменов.
  • Хотите узнать, как автоматизировать мониторинг поддоменов.
  • Хотите централизовать свои выводы в одном месте.
  • Хотите, чтобы новые данные автоматически публиковались с помощью веб-хуков.

Наличие инструмента, который может сделать все это, непросто, но не отчаивайтесь: Findomain существует.

Прежде чем работать с Findomain, я расскажу вам основы.

Что такое процесс перечисления поддоменов?

Во-первых, я должен сказать вам, что такое поддомен. Согласно Википедии:

всистема доменных имен(DNS) иерархия, поддомен являетсядоменэто часть другого (основного) домена.

Да все верно. Когда вы видите домен, например, example.org, а затем видите в другом месте drug.example.org, вы видите поддомен. Другими словами, субдомены подобны наличию предприятия и его зависимостей, где предприятие - это домен, а зависимости - это субдомены. Более техническое объяснение можно найтиВот,

Большинство доменов имеют по крайней мере пару поддоменов, они используются для организации тем, например, имеют блог для example.org в поддомене blog.example.org, форум в forum.example.org или для других задач, таких как поддомен. называется mail.example.org для маршрутизации почтового трафика и т. д. Наличие большого количества поддоменов может привести к проблемам с безопасностью, если они недостаточно хорошо управляются, и это обычно происходит с компаниями (но не ограничиваясь ими), которые имеют десятки, сотни, или тысячи поддоменов. Нелегко отследить их один за другим, и они заканчивают тем, что запускали устаревшее программное обеспечение, имели неправильные конфигурации и плохие политики безопасности.

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

Как сделать подсчет субдомена?

Теперь, когда мы знаем, что такое перечисление поддоменов и почему это так важно, следующим шагом будет знание того, как это сделать. Существует множество инструментов для перечисления поддоменов, некоторые из которых лучше других. В этом посте я используюFindomain,инструмент, который я написал вРжавчинас нуля, не использует методы bruteforce, он является самым быстрым по сравнению с существующими инструментами перечисления поддоменов, очень легок в использовании ресурсов, может быть установлен в любой архитектуре или операционной системе (включая телефоны, планшеты и т. д.) и позволяет вам выполнять много интересного. Если вы заинтересованы в получении Findomain, он с открытым исходным кодом и может быть загружен сhttps://github.com/Edu4rdSHL/findomain, Давай сделаем это!

Если вы хотите узнать, какие субдомены имеют цель, в этом случае example.org, просто запуститеfindomain -t example.orgи вы получите через пару секунд ...

$ findomain -t example.orgTarget ==> example.orgSearching in the CertSpotter API... 🔍
Searching in the Crtsh database... 🔍
Searching in the Virustotal API... 🔍
Searching in the Sublist3r API... 🔍
Searching in the Spyse API... 🔍
Searching in the Facebook API... 🔍
Searching in the Threadcrowd API... 🔍
Searching in the Bufferover API... 🔍
Searching in the Virustotal API using apikey... 🔍morev.example.org
wpad.example.org
versus.example.org
... snipA total of 65 subdomains were found for ==> example.org 👽Good luck Hax0r 💀!

65 поддоменов было найдено для example.org!

Если вы хотите найти список доменов, вы можете поместить их в текстовый файл, каждый домен в строке и запуститьfindomain -f domains.txtи Findomain будет искать субдомены для каждого домена в файле.

Это основная часть использования Findomain. Если вы хотите, например, запустить Findomain и показывать только разрешаемые домены (имеющие публичный IP), вы должны выполнитьfindomain -t example.org -rи Findomain покажет вам только субдомены, которые имеют общедоступный IP-адрес и доступ к которым вы можете получить. Findomain распечатает все найденные субдомены на экране или в выходном файле, как описано ниже.

Если вы хотите использовать все API, вам нужно настроить некоторые вещи. Пожалуйста, посмотритеFindomain документациячтобы настроить необходимые токены доступа для некоторых API, это увеличит количество найденных поддоменов.

Если вы хотите записать в выходной файл, у вас есть два варианта:

  1. Дайте Findomain контроль имен выходных файлов, используя-oфлаг. Если вы бежитеfindomain -t example.org -oполученное имя файла будет называтьсяexample.org.txtв этом случае, но даже следует правилуdomain string+.txt, Помните, что если вы читаете поддомен из файла, у каждого домена будет свой выходной файл.
  2. Другой вариант использует-uфлаг и давая свое имяуникальный выходной файлвсе еще, если Findomain читает домены из текстового файла. Если вы бежитеfindomain -t example.org -u myfile.txtилиfindomain -f domains.txt -u myfile.txtв обоих случаях выходное имя файлаmyfile.txt, Это особенно полезно, если вы работаете со списком доменов в файле и хотите сохранить все данные в уникальный выходной файл для дальнейших тестов.

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

Субдомен Мониторинг автоматизации и публикации в webhooks

На данный момент мы знаем этот пример В org 65 поддоменов, но что произойдет, если мы захотим узнать, когда и какие новые поддомены добавляются? Ну, вы можете сохранить последние результаты в файл, а затем снова запустить инструмент и проверить разницу между двумя файлами ... не очень практично, правда? Да, делая это отстой, представьте, что мы собираемся контролировать 1000 поддоменов, выполнение этой задачи вручную для каждого домена - это действительно пустая трата времени. Но есть еще одно хорошее замечание для вас: Findomain может контролировать поддомен (используя-tили X количество поддоменов (поместив их в файл и используя-fопция). Сначала я объясню вам, как это работает.

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

  • PostgreSQLРеляционная база данных должна быть установлена ​​как минимум на одном из ваших устройств (ПК / Сервер / Телефон). Программное обеспечение PostgreSQL является мультиплатформенным и может быть установлено в GNU / Linux, Windows, Macintosh, Termux и других. Видетьhttps://www.postgresql.org/download/если вы не можете найти пакет в своем дистрибутивном репозитории для GNU / Linux или если вы находитесь в другой ОС.
  • Настроен Discord / Slack или Telegram.Заметка:Тебе необходимодиссонанс,слабинаилителеграммааккаунт для того, чтобы создавать веб-хуки. Если вы считаете, что должна поддерживаться другая платформа, откройте вопрос вhttps://github.com/Edu4rdSHL/findomain/issues,
  • Планировщик заданий, если вы хотите автоматически запустить Findomain в вашей системе.Смотри документацию,

Если вы не знаете, как создавать веб-хуки, прочитайте соответствующую документацию для каждой платформы:Slack документация,Дискретная документацияи мой собственныйТелеграмма документация,

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

Настройка Findomain для автоматизации мониторинга поддоменов.

Findomain выполняет некоторые проверки перед началом процесса мониторинга. Эти проверки:

  • Проверьте, хотя бы один изfindomain_discord_webhook,findomain_slack_webhook,findomain_telegrambot_tokenа такжеfindomain_telegrambot_chat_idсистемные переменные установлены. Они необходимы для публикации результатов задачи мониторинга.
  • Проверьте правильность подключения к базе данных PostgreSQL.

Если эти проверки пройдены, инструмент начнет работать.

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

  • GNU / Linux, Mac, Termux.
$ export findomain_discord_webhook='https://discordapp.com/api/webhooks/XXXXXXXXXXXXXXX'
$ export findomain_slack_webhook='https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'
$ export findomain_telegrambot_token="Your_Bot_Token_Here"
$ export findomain_telegrambot_chat_id="Your_Chat_ID_Here"
$ findomain -m -t example.org --postgres-host 192.168.1.73 --postgres-port 5432 --postgres-database findomain --postgres-user findomain --postgres-password postgres
  • Windows
> set findomain_discord_webhook=https://discordapp.com/api/webhooks/XXXXXXXXXXXX 
> set findomain_slack_webhook=https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
> set findomain_telegrambot_token=Your_Bot_Token_Here
> set findomain_telegrambot_chat_id=Your_Chat_ID_Here
> findomain -m -t example.org --postgres-host 192.168.1.73 --postgres-port 5432 --postgres-database findomain --postgres-user postgres --postgres-password postgres

Если вы не установите некоторые параметры, Findomain будет использовать значения по умолчанию. Видетьдокументациядля получения дополнительной информации. Кроме того, если вы собираетесь запустить инструмент на своем текущем компьютере, вам нужно только установить--postgres-passwordи—-postgres-userопция - только если пользователь отличается от postgres - пример:

$ findomain -t example.org -m --postgres-password 1234

Или, если у вас нет пароля, а пользователь postgres:

$ findomain -t example.org -m

Чтобы использовать список доменов, а не только домен, измените-tвариант для-fвариант.

Когда вы выполняете команду, внутренне происходят следующие события:

  1. Проверки, упомянутые ранее, сделаны.
  2. Подключение к базе данных PostgreSQL.
  3. Выполните поиск в API и сохраните результаты в качестве текущей переменной поддоменов.
  4. Запрос к базе данных для поиска, если существуют существующие субдомены, связанные с текущим целевым доменом, и сохранения результатов как существующей переменной субдоменов.
  5. Сравнение существующих поддоменов с текущими поддоменами и проверка того, что находится в текущих поддоменах, которых нет в существующих поддоменах, и сохранение результатов в новой переменной поддоменов.
  6. Отформатируйте данные и опубликуйте новые субдомены для веб-крючков.
  7. Если публикация прошла успешно, подготовьте транзакцию SQL и зафиксируйте новые субдомены в базе данных, в противном случае выведите сообщение об ошибке без фиксации базы данных.

Упомянутые шаги повторяются каждый раз, когда инструмент запускается для каждой цели домена.

Если были найдены новые субдомены, Findomain опубликует следующее сообщение для веб-крючков:

Данные Findomain, размещенные на сайте Discord.
Данные Findomain, опубликованные в Slack.

Если данные не найдены, Findomain отправит следующее предупреждение:

Не найдено новых поддоменов, опубликованных на Discord webhook
Не найдено новых поддоменов, опубликованных в Slack webhook

Следующим шагом для завершения автоматизации является настройка планировщика заданий. В интернете доступно множество учебников по настройке планировщиков заданий, найден один для вас или читайтеFindomain документация, Я приведу простой пример того, как настроить системный таймер в Linux, который выполняет эту работу.

  • Создать файл/usr/lib/systemd/user/findomain.serviceи поместите туда следующее содержимое:
[Unit]
Description=Monitor subdomains.
After=network-online.target[Service]
Type=simple
ExecStart=bash -c "findomain_virustotal_token='Your Virustotal token here' findomain_fb_token='Your Facebook token here' findomain_discord_webhook='Your Discord webhook URL here' findomain_slack_webhook='Your Slack webhook URL here' findomain_telegrambot_token='Your_Bot_Token_Here' findomain_telegrambot_chat_id='Your_Chat_ID_Here' findomain -f /path/to/domains.txt -m --postgres-host Host-IP-or-name-here --postgres-port Host-postgresql-port-here --postgres-user postgresql-username --postgres-password postgresql-password --postgres-database postgresql-database-name"
KillMode=process
KillSignal=SIGINT[Install]
WantedBy=default.target
  • Создать файл/usr/lib/systemd/user/findomain.timerи поместите туда следующее содержимое:
[Unit]
Description=Check for new subdomains.[Timer]
OnBootSec=10min
OnUnitActiveSec=1d
Unit=findomain.service[Install]
WantedBy=timers.target
  • Запустите команду:systemctl --user start findomain.timer && systemctl --user enable findomain.timer

Он будет запускать Findomain каждые 24 часа (1 день) и 10 минут (10 минут) до загрузки системы (в первый раз).

Вот и все, вы завершили автоматизацию мониторинга поддоменов с помощью Findomain

Централизация ваших поддоменов

Мы узнали, как перечислять субдомены, использовать файлы в виде списка доменов, отслеживать субдомены, публиковать данные в веб-зацепках, сохранять данные в базе данных и многое другое, используя наш локальный компьютер в качестве клиента / сервера ... но что если я скажу вам, что мы Можно ли использовать центральный сервер с установленным PostgreSQL и использовать телефоны, ПК, планшеты, виртуальные машины или что-либо еще в качестве клиентов для мониторинга поддоменов, но иметь все данные только в базе данных? Да, это можно сделать и с Findomain.

У вас должен быть компьютер, на котором работает PostgreSQL и который настроен на доступ из любого места (если вы хотите получить доступ с общедоступных IP-адресов) или с определенных IP-адресов. В нашем случае мы собираемся использовать компьютер в нашей локальной сети в качестве центрального сервера с IP 192.168.1.73 и следующие компьютеры в качестве клиентов: виртуальные машины Android 9 Phone, Windows 10 и BlackArch Linux.

Если вы хотите узнать, как сделать вашу базу данных доступной с внешних компьютеров, следуйтеэто ссылка,

Машина, на которой работает сервер PostgreSQL

Теперь я буду запускать клиентов, упомянутых ранее, и посмотрю, что произойдет.

Телефон Android 9.

Android 9 Телефон под управлением Findomain с использованием удаленного сервера в качестве центральной базы данных. Цель: example.com

По словам веб-хуков, в первом запуске было найдено 180 поддоменов для example.com.

Discord webhook alert для example.com

Давайте посмотрим, что находится в нашей удаленной базе данных ...

Запрос к базе данных для example.com

Итак, 180 поддоменов теперь в нашей базе данных. Давайте посмотрим, как это работает в Windows и BlackArch, но используя разные цели.

Windows 10

Машина Windows 10 под управлением Findomain, использующая удаленный сервер в качестве центральной базы данных. Цель: example.org
Discord webhook alert для example.org

BlackArch Linux

BlackArch Linux машина под управлением Findomain с использованием удаленного сервера в качестве центральной базы данных. Цель: example.net
Discord webhook alert для example.org

Согласно сообщенным данным, в нашей центральной базе данных должно быть 272 субдомена.

Общий запрос к базе данных.

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

Заключительные слова

Я надеюсь, что вам, дорогой лектор, понравилось читать эту статью, но, прежде всего, она была полезна в вашем учебном / рабочем процессе. Следуй за мной в:

Дайте хлопать статье, поделитесь ею и дайте звездуРепозиторий проекта Github,

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

  • Возможность запросить центральную базу данных и получить домены оттуда.
  • Показать IP-адрес разрешенных поддоменов (он был реализован некоторое время, а затем был удален и заменен параметром -r, теперь -i будет дополнением к нему).

До следующей возможности.

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map