Поиск субдоменов и построение графов структуры сети с Amass

Что такое субдомены

Субдоменами называют домены третьего, четвёртого и последующих уровней. Возьмём в качестве примера сайт kali.tools. Его субдоменом (доменом третьего уровня) является en.kali.tools. Общий вид субдоменов третьего уровня этого сайта *.kali.tools. Домены могут быть четвёртого test.en.kali.tools , exp.en.kali.tools и последующих уровней.

Субдомены и подпапки это не одно и то же. Пример подпапка для kali.tools это kali.tools/all. И на субдоменах, и в подпапках могут содержаться различные файлы веб-приложения, установлены различные системы управления контентом, в конце концов, там могут быть два совершенно разных сайта.

Отличие субдомена от подпапки в том, что для субдомена сервер имён DNS может содержать запись. То есть для каждого домена DNS сервер имеет запись, в которой имя домена (kali.tools) сопоставлено с IP адресом. Так вот, DNS сервер может иметь такие записи и для субдоменов. И IP адреса для субдоменов можно указывать разные. Это означает, к примеру, что kali.tools может быть размещён на одном сервере, en.kali.tools — размещён на другом, а test.en.kali.tools опять же на другом сервере и даже в другой стране.

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

Как искать субдомены

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

При пассивном поиске данные запрашиваются на сервисах, которые собирают эту информацию — таких сервисов достаточно много. Данные также могут собираться из информации о выданных сертификатах, искаться в выдаче поисковых системам (смотрите продвинутый поиск с Гугл и Яндексом), сюда же можно отнести технику обратного DNS (определяется IP сайта, для этого сайта на сервисах ищутся списки хостов, из этих списков отфильтровываются субдомены целевого хоста) и т.д.

К активным можно отнести брут-форс. Причём это может быть как брут-форс наподобие поиска скрытых файлов — то есть делаются HTTP запросы к сайту и если возвращён код статуса 200 (допустим для en.kali.tools) значит такой субдомен есть, а если возвращён код статуса 404 (например для ch.kali.tools) значит такого хоста нет. На самом деле — такой брут-форс применяется нечасто. Намного удобнее (и быстрее) делать запросы к DNS серверам и на основе их ответов определять, существует ли субдомен. Но первый вариант иногда является единственным возможным в том случае, если субдомены размещены на одном IP адресе, а в DNS записи указан подстановочный символ.

Amass — мощная программа для поиска субдоменов

Главное назначение Amass — это поиск субдоменов. Ещё программа умеет строить графы, например:

И ещё:

Мастер импорта в Maltego:

Граф в Maltego:

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

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

Программа является кроссплатформенной — работает в том числе и на Windows, Linux.

У программы много опций и можно довольно точно настроить способы добычи доменов.

Как установить Amass в Linux

Практически в любой дистрибутив Linux Amass должна устанавливаться описанным ниже способом — я проверял на Kali Linux, там это точно работает.

Начните с «Установки Go (компилятора и инструментов) в Linux», а затем выполните команды:

go get -u github.com/OWASP/Amass/...
cd $GOPATH/src/github.com/OWASP/Amass
go install ./...
sudo mv $GOPATH/bin/amass* /usr/bin/
sudo mkdir -p /usr/share/amass/wordlists/
sudo mv $GOPATH/src/github.com/OWASP/Amass/wordlists/* /usr/share/amass/wordlists/

Как установить Amass в Windows

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

Скачайте и распакуйте архив.

Откройте командную строку, для этого нажмите Win+x, там выберите Windows PowerShell. Для перехода в командную строку выполните:

cmd

С помощью команды cd перейдите в папку с файлами программы. Например, у меня это папка C:\Users\Alex\Downloads\amass\, тогда команда следующая:

cd C:\Users\Alex\Downloads\amass\

Чтобы убедиться, что программа работает, запустим показ справки:

amass -h

Обратите внимание, что программы можно запускать как amass (то есть без расширения .exe), так и как amass.exe (то есть с расширением).

Пример запуска сканирования:

amass -d kali.org -passive

Всё остальное, что говориться в этой инструкции об Amass, в равной степени относится и Windows, и к Linux версиям.

Как искать субдомены с Amass

У программы есть одна обязательная опция -d, за ней нужно указать домен, для которого будут искаться субдомены.

Пример запуска:

amass -d kali.org

При таком запуске программа будет выполняться довольно долго (по крайней мере, с моим Интернетс-соединением это так), поскольку по умолчанию программа:

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

Для ещё большего расширения сфер поиска, обратите внимание на опции:

  • -active она означает включение активных методов разведки: попытка собрать zone transfers и имена из сертификатов
  • -whois она означает, что при поиске будет также использоваться обратная whois информация, которая может содержать домены

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

Опция -v приводит к тому, что для каждого найденного имени выводится источник получения информации, а в самом конце работы программы подводится краткий итог найденного.

Пассивный поиск субдоменов

У Amass есть опция -passive, при её использовании не выполняется брут-форс — за счёт этого значительно ускоряется поиск субдоменов — только собирается информация с других онлайн источников:

amass -d kali.org -passive

Можно добавить -v и -whois:

amass -d kali.org -passive -v -whois

Результаты:

Как ускорить работу Amass

Кроме опции -passive, которая полностью отключает поиск имён методом перебора, имеются опции:

  • -noalts она отключает генерацию новых имён, выполняемую путём изменения уже обнаруженных субдоменов
  • -norecursive - отключает рекурсивный перебор доменов более высоких уровней

Словари для брут-форса субдоменов

С Amass поставляется несколько словарей, они лежат в директории /usr/share/amass/wordlists/:

Amass использует один из них, либо в неё уже встроен словарь. При желании вы можете указать свой собственный словарь опцией -w.

Составление графов с Amass

Начать нужно с поиска с любыми опциями, но дополнительно нужно указать опцию -do после которой указать путь до файла, куда будут сохранены результаты. Также можно использовать опцию -oA префикс, которая создаст несколько файлов в разных форматах, в том числе файл вида *_data.json — который нам нужен для составления графов.

Обратите внимание, что опцию -d можно использовать несколько раз, чтобы указать несколько корневых доменов. Даже с одной опцией -d можно указать через запятую сразу несколько доменов. Или можно использовать опцию -blf после которой указать путь до файла со списком доменов.

Пример запуска сканирования сразу для двух доменов kali.org и offensive-security.com с сохранением полученных данных в data.json:

amass -d kali.org -d offensive-security.com -v -whois -do data.json

Пример быстрой команды сканирования с сохранением данных во все форматы (чтобы не тратить время на брут-форс с опцией -w указан словарь в несколько строк 1.txt):

amass -d kali.org -d offensive-security.com -v -ip -w 1.txt -noalts -norecursive -oA kali-offsec

Результаты получены и сохранены в файл kali-offsec_data.json. С помощью программы amass.viz можно конвертировать полученные данные в графы различных форматов. После опции -i нужно указать файл с исходными данными. Одновременно можно конвертировать в несколько или во все форматы:

amass.viz -i kali-offsec_data.json --maltego of1.csv --visjs of2.htm --gexf of3.gexf --d3 of4.htm --graphistry of5.json

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

Второй вариант тоже интерактивный:

Чтобы открыть файл с расширением .csv (у меня он называется of1.csv), запустите Maltego, там выберите создание нового графа:

Перейдите во вкладку Import | Export и там выберите Import Graph from table:

Там будет небольшой туториал — пролистайте его. Выберите файл:

Будут доступны дополнительные настройки — можно оставить по умолчанию.

У меня получился вот такой велосипед:

Заключение

Некоторые опции и даже команды из пакета не рассмотрены в этой инструкции по использованию Amass. Полную информацию и список опций Amass вы найдёте здесь: https://kali.tools/?p=4325

Программа Amass является достаточно мощной и достаточно простой в использовании. Хотя я не до конца понимаю логику её работы. В предыдущих версиях брут-форс был отключён по умолчанию. В последней же версии, кроме как с использованием -passive, невозможно отключить брут-форс. При этом из-за опции -passive не работают некоторые другие функции — такие как сохранение данных в файл. При этом указание словаря с -w, вроде бы, ничего не меняет — выполняется длительный брут-форсинг по какому-то большому словарю. По ощущениям, с опцией -passive программа находит больше результатов, чем без неё (хотя это совсем странно).

При первых запусках последней версии я просто думал, что программа не работает, поскольку первые 5-10 и более минут может просто ничего не выводиться. Если включить Wireshark, то видно, что программа непрерывно отправляет DNS запросы — то есть работает.

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

Поиск субдоменов онлайн

Я добавил на SuIP.biz онлайн доступ к Amass, поэтому если вы можете выполнить поиск субдоменов даже без установки программы: https://suip.biz/ru/?act=amass

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

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

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