Поиск субдоменов (поддоменов) без брут-форса

Обнаружение субдоменов — это важная часть сбора информации и исследования периметра. Больше подробностей о поддоменах в статье «Поиск субдоменов и построение графов структуры сети с Amass» (правда, сама Amass обновилась до третьей версии, а примеры команд запуска в той статье даны для Amass 2.x — поэтому планируется новая статья по Amass 3.x).

Инструкция по SubFinder

Существует много инструментов для поиска субдоменов и в этой статье я хочу рассказать об ещё одном из них — SubFinder, эта программа может составить достойную конкуренцию Amass (хотя никто не запрещает использовать их вместе для максимально полного поиска и самого полного охвата функций).

Достоинства SubFinder:

  • Программа является актуальной и поддерживает большое количество источников сбора информации.
  • По умолчанию работает без брут-форса и быстро собирает большое число субдоменов.
  • При желании, можно включить перебор поддоменов по словарю.
  • Очень проста в использовании (в отличие от Amass, у которой уже несколько раз поменялись опции, поменялись даже имена исполнимых файлов, и с которой даже не всегда понятно — какой именно способ поиска мы запустили?!)

Установка SubFinder

Программа написана на Go и начать нужно с установки компилятора Go, для этого смотрите статью «Установка Go (компилятора и инструментов) в Linux». Там есть ручная установка и установка из репозитория — я использую ручную установку.

Затем выполните:

go get github.com/subfinder/subfinder
cp /home/git/go/bin/subfinder /usr/local/src/go/bin/
subfinder -h

API ключи для SubFinder

В настоящее время SubFinder извлекает информацию из 31 источника, 6 из которых работают только если вы укажите API ключи. Это:

Если вы не хотите получать API ключи (хотя это бесплатно и не требует особых усилий), то это не проблема — программа будет просто использовать остальные сервисы, которые этого не требуют.

К примеру, без установки API ключей команда

subfinder -d sberbank.ru

нашла 377 субдоменов. А с указанием трёх API ключей которые у меня были (Virustotal, SecurityTrails и Shodan) эта же самая команда нашла 386 поддоменов. То есть разница есть, хотя и не очень большая.

API ключи можно прописать в конфигурационном файле, который находится по пути $HOME/.config/subfinder/config.json. При указании API ключей с опциями (об этом ниже), они также автоматически сохраняются в указанный файл.

Как найти поддомены сайта

Для пассивного сбора информации достаточно использовать опцию -d после которой указать целевой домен:

subfinder -d САЙТ.ru

Например, найдём субдомены сайта youtube.com:

subfinder -d youtube.com

Найдено 5674 субдоменов (не все они актуальны).

Поиск субдоменов при использовании подстановочных символов в DNS записи

Иногда программа выводит примерно следующее сообщение:

Found Wildcard DNS at vk.com

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

ЧТО_УГОДНО.site.ru

всегда вернёт IP адрес.

Для исключения случайных поддоменов используется опция -nW, например:

subfinder -d vk.com -nW

Результат:

Resolving 9641 Unique Hosts found
Total 952 Unique subdomains found for vk.com

То есть всего найдено 9641 уникальных хостов, но уникальных доменов найдено только 952:

Аналогично для yandex.ru:

subfinder -d yandex.ru -nW

Сохранение результатов

Для сохранения результатов имеются следующие опции:


-o строка
      Имя файла вывода (опционально)
-oD строка
      Директория для вывода результатов
-oJ
      Записать вывод в формате JSON
-oT
      Использовать формат вывода json в стиле aquatone

К примеру, для поиска поддоменов сайта (-d yandex.com), исключить субдомены из подстановочных символов (-nW) и сохранить данные в файл (-o yandex.com.sub):

subfinder -d yandex.com -nW -o yandex.com.sub

Как использовать определённые сервера имён (DNS) для проверки субдоменов

Для проверки субдоменов используются системные настройки DNS серверов. Вы можете указать любой другой DNS сервер или сразу несколько, для этого есть опции:

-r строка
      Разделённый запятой список резолверов для использования (серверов имён — DNS серверов)
-rL строка
      Текстовый файл, содержащий список резолверов (DNS серверов) для использования

К примеру, для использования DNS серверов 8.8.8.8 и 1.1.1.1:

subfinder -d kali.org -r 8.8.8.8,1.1.1.1

Рекурсивный поиск субдоменов

Для рекурсивного поиска (когда ищутся субдомены уже найденных субдоменов) укажите флаг -recursive:

subfinder -d vasexperts.ru -recursive

Субдомены четвёртого и более высоких уровней могут быть найдены и при обычном поиске по пассивным источником. Наверное, больше всего пользы от данной опции при поиске субдоменов методом брут-форса.

Тонкая настройка некоторых источников данных

У программы есть две опции --set-settings и --set-config, в описании к которым написано, что они принимают разделённый запятой список настроек.

С помощью первой опции --set-setting можно сделать тонкую подстройку некоторых источников данных. Например, можно указать число страниц Censys для проверки, это делается следующей командой:

subfinder -d freelancer.com --sources censys --set-settings CensysPages=2 -v

Для проверки всех страниц, возвращаемых от censys, вы можете использовать опцию "all".

В настоящее время поддерживаются следующие настройки:

  • CensysPages
  • AskPages
  • BaiduPages
  • BingPages

Указание API ключей в строке команды

С помощью опции --set-config можно указать API ключи непосредственно в запускаемой команде:

subfinder -d freelancer.com --set-config VirustotalAPIKey=0x41414141,PassivetotalUsername=hacker,PassivetotalKey=supersecret

Но помните — после успешного использования API ключа он будет добавлен в конфигурационный файл и после этого будет использоваться при каждом запуске SubFinder.

Список доступных опций для использования с данной командой:

  • virustotalApikey
  • passivetotalUsername
  • passivetotalKey
  • securitytrailsKey
  • riddlerEmail
  • riddlerPassword
  • censysUsername
  • censysSecret
  • shodanApiKey

Выбор источников для поиска информации

Вы можете выбрать те источники, которые хотите использовать для сбора информации, либо наоборот, исключить один или более источников:

-sources строка
      Разделённый запятой список источников для использования (по умолчанию "all")
-exclude-sources строка
      Список источников для исключения при поиске

К примеру, для поиска поддоменов сайта sberbank.ru по таким источникам как Securitytrails, Shodan и Virustotal нужно запустить следующую команду:

subfinder -d sberbank.ru -sources securitytrails,shodan,virustotal

Обратите внимание на написание источников — они пишутся с маленькой буквы, между словами нет пробелов.

Брут-форс поддоменов

SubFinder умеет также искать поддомены методом перебора. Для использования этого режима нужно указать опцию -b, а также опцию -w после которой укажите словарь. По умолчанию будет запущен пассивный режим и брут-форс, если вы хотите использовать исключительно перебор, то укажите опцию -no-passive.

Создадим небольшой словарь:

echo -e "admin\r\nlogin\r\ndash\r\ndashboard\r\nteam\r\nadministration\r\na\r\nold\r\nback\r\nbackup\r\ntest\r\npanel" > sub.dom

Пример брут-форса поддоменов по словарю:

subfinder -d hostland.ru -no-passive -b -w sub.dom

Поиск поддоменов для большого количества сайтов

Если у вас список сайтов, то вместо опции -d используйте опцию -dL, после которой нужно указать файл со списком целевых доменов.

Справка по SubFinder

Полная справка по программе SubFinder на странице: https://kali.tools/?p=4704

Онлайн поиск поддоменов

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

Рекомендуется Вам:

Добавить комментарий

Ваш e-mail не будет опубликован.