Amass


Описание Amass

Amass — это инструмент глубокого перечисления DNS и составления карты сети, написан на Go.

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

Программа OWASP Amass сфокусирована на техниках перечисления DNS и построения карты сетевой инфраструктуры. Эти техники включают: получения имён субдоменов анализируя веб-страницы, доступом к веб API, рекурсивным брут-форсом, обходом веб-архивов, пермутацией/изменением имён, обратным DNS преобразованием (everse DNS sweeping), отправка запросов к ASN и анализ IP адресов, ассоциированным с сетевыми блоками. Собранная во время перечисления информация используется для построения карты присутствия организации в Интернете.

Amass задействует более 30 пассивных источников данных для изучения о пространстве имён DNS целевого домена. По умолчанию Amass валидирует (проверяет на действительность) все имена, выполняя DNS запросы по пулу DNS преобразователей, что позволяет распределить активность, сгенерированную перечислением. Для всех IP адресов, собранных во время этого процесса, Amass делает запросы на ассоциированные сетевые блоки и ASN. По мере того, как становятся доступными дополнительные источники данных для информации об Интернет видимости, внутри Amass могут быть быстро разработаны реализации для их использования благодаря дизайну программы, основанному на простых интерфейсах.

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

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

В проекте имеется программное обеспечение, которое может быть встроено в другие программы, оно написано на языке программирования Go. Это программное обеспечение включает в себя инструменты командной строки, локальную трансформацию для Maltego и пакет Go, который можно импортировать в другие проекты программного обеспечения. Программное обеспечение переносится в популярные операционные системы, такие как Windows, Linux, MacOS, FreeBSD и т. д. Инструменты командной строки могут быть получены с помощью нескольких механизмов, описанных на странице установки, например, через среду разработки Go, Snap-менеджер пакетов для Linux-систем.

Начиная с версии 2.6.x функциональность монолитного инструмента amass стала разбиваться на более маленькие инструменты.

«Сетевая» функциональность из Amass была перемещена в инструмент amass.netdomains, который перечисляет сертификаты и выполняет обратные DNS запросы, ища уникальные доменные имена. Эти доменные имена затем могут быть предоставлены в инструмент перечисления субдоменов amass.

Также создание файлов визуализации было перемещено в инструмент amass.viz. Операции с данными, используемые для построения графов, отображающих структуру внутренней сети, выполняются и сохраняются инструментом перечисления субдоменов amass, а затем предоставляются в качестве ввода в инструмент визуализации, чтобы сгенерировать различные файловые форматы.


Домашняя страница: https://www.owasp.org/index.php/OWASP_Amass_Project

Автор: Jeff Foley

Лицензия: Apache 2.0

Справка по Amass

Инструмент amass имеет несколько подкоманд которые показаны ниже и которые будут обрабатывать данные в вашем Интернет исследовании.

Подкоманда Описание
intel Выполняет разведку по открытым источником для исследования целевой организации
enum Выполняет DNS перечисление и составление карты сети систем, доступных через Интернет
viz Генерирует визуальные представления собранных данных для исследования и анализа
track Сравнение результатов перечисления по нескольким целевым организациям
db Управление базой данных графов, хранящей полученные результаты

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

Подкоманда 'intel'

Подкоманда intel может помочь обнаружить дополнительные имена корневых доменов, связанных с исследуемой организацией. Для выполнения пассивной разведки используется раздел source конфигурационного файла, собирается информация методами обратных (reverse) запросов, whois и т.д.

Флаг Описание Пример
-active Включить активные методы разведки amass enum -active -d example.com net -p 80,443,8080
-addr IP и диапазоны (192.168.1.1-254) разделённые запятыми amass intel -addr 192.168.2.1-64
-asn ASN разделённые запятыми (можно использовать несколько раз) amass intel -asn 13374,14618
-cidr CIDR разделённые запятыми (можно использовать несколько раз) amass intel -cidr 104.154.0.0/15
-config Путь до конфигурационного файла INI amass enum -config config.ini
-d Доменные имена разделённые запятыми (можно использовать несколько раз) amass enum -d example.com
-demo Цензурированный вывод, это делает его пригодным для демонстраций amass enum -demo -d example.com
-df Путь до файла, в котором имена корневых доменов amass enum -df domains.txt
-ef Путь до файла, в котором данные источника для исключения amass enum -ef exclude.txt -d example.com
-exclude Имена разделённые запятой для исключения из исходных данных amass enum -exclude crtsh -d example.com
-if Путь до файла, в котором исходные данные для включения amass enum -if include.txt -d example.com
-include Именна разделённые запятой для включения в исходные данные amass enum -include crtsh -d example.com
-ip Показать IP адреса для обнаруженных имён amass enum -ip -d example.com
-ipv4 Показать IPv4 адреса для обнаруженных имён amass enum -ipv4 -d example.com
-ipv6 Показать IPv6 адреса для обнаруженных имён amass enum -ipv6 -d example.com
-list Напечатать имена всех доступных источников данных amass enum -list
-log Путь до лог файла, куда будут записаны ошибки amass enum -log amass.log -d example.com
-max-dns-queries Максимальное количество одновременных DNS запросов amass enum -max-dns-queries 200 -d example.com
-o Путь до файла вывода amass enum -o out.txt -d example.com
-org Строка поиска по информации описания AS amass intel -org Facebook
-p Порты, разделённые запятыми (по умолчанию: 443) amass intel -cidr 104.154.0.0/15 -p 443,8080
-r IP адреса предпочитаемых DNS преобразователей (можно использовать несколько раз) amass enum -r 8.8.8.8,1.1.1.1 -d example.com
-rf Путь до файла, в котором предпочитаемые DNS преобразователи amass enum -rf data/resolvers.txt -d example.com
-src Вывести все источники для обнаруженных имён amass enum -src -d example.com
-whois Все обнаруженные домены пропускаются через обратный whois amass intel -whois -asn 13374

Подкоманда 'enum'

Эта подкоманда выполнит DNS перечисление и составление карты сети при этом заполняя базу данных графов. Все настройки, доступные в конфигурационном файле, имеют отношение к этой подкоманде. Для настройки имеются следующие флаги:

Флаг Описание Пример
-active Включить активные методы разведки amass enum -active -d example.com net -p 80,443,8080
-aw Путь до файла с другим списком слов для создание вариантов amass enum -aw PATH -d example.com
-bl Чёрный список имён субдоменов, которые не будут исследоваться amass enum -bl blah.example.com -d example.com
-blf Путь до файла с чёрным списком субдоменов amass enum -blf data/blacklist.txt -d example.com
-brute Выполнить перебор доменов методом брутфорса (перечислением всех вариантов) amass enum -brute -d example.com
-config Путь до конфигурационного файла INI amass enum -config config.ini
-d Доменные имена, разделённые запятыми (можно использовать несколько раз) amass enum -d example.com
-demo Цензурированный вывод, это делает его пригодным для демонстраций amass enum -demo -d example.com
-df Путь до файла, в котором имена корневых доменов amass enum -df domains.txt
-do Путь до файла вывода данных операции amass enum -do data.json -d example.com
-ef Путь до файла, в котором данные источника для исключения amass enum -ef exclude.txt -d example.com
-exclude Имена разделённые запятой для исключения из исходных данных amass enum -exclude crtsh -d example.com
-if Путь до файла, в котором исходные данные для включения amass enum -if include.txt -d example.com
-include Именна разделённые запятой для включения в исходные данные amass enum -include crtsh -d example.com
-include-unresolvable Вывод DNS имён, которые не были преобразованы amass enum -include-unresolvable -d example.com
-ip Показать IP адреса для обнаруженных имён amass enum -ip -d example.com
-ipv4 Показать IPv4 адреса для обнаруженных имён amass enum -ipv4 -d example.com
-ipv6 Показать IPv6 адреса для обнаруженных имён amass enum -ipv6 -d example.com
-json Путь до файла вывода в формате JSON amass enum -json out.json -d example.com
-list Напечатать имена всех доступных источников данных amass enum -list
-log Путь до лог файла, куда будут записаны ошибки amass enum -log amass.log -d example.com
-max-dns-queries Максимальное количество одновременных DNS запросов amass enum -max-dns-queries 200 -d example.com
-min-for-recursive Количество меток в поддомене перед рекурсивным перебором amass enum -brute -min-for-recursive 3 -d example.com
-nf Путь до файла, содержащего уже известные доменные имена amass enum -nf names.txt -d example.com
-noalts Отключить генерацию альтернативных имён amass enum -noalts -d example.com
-norecursive Отключить рекурсивный брут-форсинг amass enum -brute -norecursive -d example.com
-o Путь до файла вывода в виде простого текста amass enum -o out.txt -d example.com
-oA Префикс пути, используемый в имени всех файлов вывода amass enum -oA amass_scan -d example.com
-passive Исключительно пассивный режим выполнения amass enum --passive -d example.com
-p Порты, разделённые запятыми (по умолчанию: 443) amass intel -cidr 104.154.0.0/15 -p 443,8080
-r IP адреса предпочитаемых DNS преобразователей (можно использовать несколько раз) amass enum -r 8.8.8.8,1.1.1.1 -d example.com
-rf Путь до файла, в котором предпочитаемые DNS преобразователи amass enum -rf data/resolvers.txt -d example.com
-src Вывести все источники для обнаруженных имён amass enum -src -d example.com
-w Путь до другого файла со списком слов amass enum -brute -w wordlist.txt -d example.com

Подкоманда 'viz'

Создайте информативные визуализации сетевых графов, которые помогут уяснить структуру собранной информации. Эта подкоманда из файла конфигурации использует только параметры 'output_directory' и настройки удалённой базы данных графов.

Переключатели для вывода результатов DNS и находок в инфраструктуры в виде графа сети:

Флаг Описание Пример
-config Путь до конфигурационного файла INI amass viz -config config.ini -d3 -o PATH
-d Доменные имена, разделённые запятыми (можно использовать несколько раз) amass viz -d3 -d example.com -o PATH
-d3 Принудительный вывод симуляции в формате D3.js v4 в HTML файл amass viz -d3 -o PATH
-df Путь до файла, в котором имена корневых доменов amass viz -d3 -df domains.txt -o PATH
-dir Путь до директории, содержащей базу данных графа amass viz -d3 -dir PATH -o PATH
-enum Идентификация перечисленного через индекс из листинга БД amass viz -enum 1 -d3 -o PATH
-gexf Вывод в формат Graph Exchange XML (GEXF) amass viz -gephi -o PATH
-graphistry Вывод Graphistry JSON amass viz -graphistry -o PATH
-i Путь до файла вывода JSON с результатами работы Amass amass viz -d3 -o PATH
-maltego Вывод в файл Maltego Graph Table CSV amass viz -maltego -o PATH
-o Путь до директории куда поместить сгенерированный файл(ы) вывода amass viz -d3 -o PATH
-visjs Вывод HTML который использует VisJS amass viz -visjs -o PATH

Подкоманда 'track'

Показывает различия между перечислениями, 


Показывает различия между перечислениями, которые включает одинаковую цель (или цели) для мониторинга поверхности атаки цели. Эта субкоманда из конфигурационного файла использует только 'output_directory' и настройки удалённой базы данных графов. Доступные флаги во время поиска изменений в видимости цели в Интернете путём перечисления в базе данных графов:

Флаг Описание Пример
-config Путь до конфигурационного файла INI amass track -config config.ini
-d Доменные имена, разделённые запятыми (можно использовать несколько раз) amass track -d example.com
-df Путь до файла, в котором имена корневых доменов amass track -df domains.txt
-dir Путь до директории, содержащей базу данных графов amass track -dir PATH
-history Показывает различия между всеми перечисленными парами amass track -history
-last Число недавних перечислений для включения в отслеживание amass track -last NUM
-since Исключить все перечисления до определённой даты (формат: 01/02 15:04:05 2006 MST) amass track -since DATE

Подкоманда 'db'

Выполняет просмотр и управление базой данных графов. Эта субкоманда из конфигурационного файла использует только 'output_directory' и настройки удалённой базы данных графов. Флаги для взаимодействия с найденными результатами в базе данных графов включают:

Флаг Описание Пример
-config Путь до конфигурационного файла INI amass db -config config.ini
-d Доменные имена, разделённые запятыми (можно использовать несколько раз) amass db -d example.com
-demo Цензурированный вывод, это делает его пригодным для демонстраций amass db -demo -d example.com
-df Путь до файла, в котором имена корневых доменов amass db -df domains.txt
-dir Путь до директории, содержащей базу данных графов amass db -dir PATH
-enum Идентификация перечисленного через индекс из листинга БД amass db -enum 1 -show
-import Импорт файла JSON с результатами работы Amass в базу данных графов amass db -import PATH
-ip Показать IP адреса для обнаруженных имён amass db -show -ip -d example.com
-ipv4 Показать IPv4 адреса для обнаруженных имён amass db -show -ipv4 -d example.com
-ipv6 Показать IPv6 адреса для обнаруженных имён amass db -show -ipv6 -d example.com
-list Вывести всё находки из баз данных и отфильтровать по указанному домену amass db -list
-show Напечатать результаты индекса перечисления + домены amass db -show
-src Вывести все источники для обнаруженных имён amass db -show -src -d example.com

Директория вывода

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

По умолчанию директория вывода создаётся в вашей домашней директории и называется amass. Если это вам не подходит, тогда можно проинструктировать субкоманды создать директорию вывода в альтернативном расположении, для этого используется флаг '-dir'.

Если вы решили использовать конфигурационный файл Amass, то он будет обнаружен автоматически, если его положить в директорию вывода и назвать config.ini.

Руководство по Amass

Страница man отсутствует.

Файл

Для использования с Amass ключей API вам будет нужен конфигурационный файл. Для дополнительных подробностей смотрите пример конфигурационного файла.

Раздел с настройками по умолчанию (Default)

Опция Описание
mode Определяет, какой режим перечисления используется: default (по умолчанию), passive (пассивный) или active (активный)
output_directory Директория, которая хранит базу данных графов и другие файлы вывода
maximum_dns_queries Максимальное число выполняемых одновременных DNS запросов
include_unresolvable Когда установлено на true, приводит к тому, что DNS имена, которые не были преобразованы, печатаются

Раздел network_settings (сетевые настройки)

Опция Описание
address IP или диапазон (к примеру. a.b.c.10-245) которые находятся в области видимости
asn ASN который в области видимости
cidr CIDR (к примеру, 192.168.1.0/24) в области видимости
port Указывает порт, который будет использоваться при активном извлечении сертификатов TLS

Раздел domains (домены)

Опция Описание
domain Корневое доменное имя DNS для добавления в область видимости перечисления

Раздел resolvers (преобразователи)

Опция Описание
resolver IP адрес DNS преобразователя и глобально используемого пакетом amass

Раздел blacklisted (чёрные списки)

Опция Описание
subdomain Субдоменное имя DNS которое во время перечисления будет расцениваться как за пределами области видимости

Раздел disabled_data_sources (отключённые источники данных)

Опция Описание
data_source Один из источников данных Amass который не используется во время перечисления

Раздел gremlin

Опция Описание
url URL в форме "ws://host:port" куда Amass подключится к базе данных TinkerPop
username Пользователь базы данных сервера TinkerPop который может иметь доступ к базе данных графов Amass
password Действительный пароль для пользователя, идентифицируемого опцией 'username'

Раздел bruteforce (полный перебор)

Опция Описание
enabled Когда установлено на true, во время перечисления делается брут-форсинг (полный перебор)
recursive Когда установлено на true, полный перебор выполняется также на найденных субдоменах
minimum_for_recursive Число сделанных обнаружений на субдомене перед выполнением рекурсивного брут-форсинга
wordlist_file Путь до пользовательского файла словаря для использования во время брут-форсинга

Раздел alterations (создание новых субдоменов путём модификаций)

Опция Описание
enabled Когда установлено на true, во время перечисления выполняется пермутация преобразованных DNS имён
minimum_for_word_flip Число раз, которое слово должно встретиться, чтобы использовать его в будущих преобразованиях и добавлениях слов
edit_distance Число раз, которое будет выполнена операция редактирования образца имени во время поиска фазингом ярлыков
flip_words Когда установлена на true, приводит к тому, что слова в именах DNS обмениваются на другие из списка слов для модификации
flip_numbers Когда установлена на true, приводит к тому, что числа в именах DNS меняются на другие числа
add_words Когда установлена на true, приводит к тому, что другие слова из списка слов для модификации добавляются к преобразованным именам DNS
add_numbers Когда установлена на true, приводит к тому, что числа добавляются и удаляются из преобразованных DNS имён
wordlist_file Путь до файла с пользовательским набором слов, который предоставляет дополнительные слова в список слов для модификации

Разделы Data Source (источники данных)

Каждая служба источника данных Amass имеет выделенный раздел в конфигурационном файле. Здесь говориться о том, как настроить источники данных, которые требуют аутентификации.

Опция Описание
apikey Ключ API для использования во время доступа к источнику данных
secret Дополнительная секретная строка для использования с API ключом
username Пользователь аккаунта источника данных
password Действительный пароль для пользователя, указанного опцией 'username'

База данных графов

Все результаты перечисления Amass хранятся в базе данных графов. Эта база данных либо находится в одном файле в каталоге вывода, либо удалённо подключена с использованием настроек, предоставленных файлом конфигурации.

Когда начинается новое перечисление и база данных графа уже существует с предыдущими результатами для той же цели, имена поддоменов из этих предыдущих перечислений используются в новом перечислении. Новые DNS-запросы выполняются к этим именам поддоменов, чтобы гарантировать их легитимность и получить текущие IP-адреса.

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

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

Примеры запуска Amass

Самое базовое использование инструмента, которое включает обратные DNS поиски и альтерацию имён для поиска субдоменов:

amass enum -d example.com

В следующем примере для исследуемого домена (-d example.com) будет выполнен поиск субдоменов, для найденных субдоменов будет показан IP адрес (-ip), для каждой находки будет показан источник, а также в конце будет выведена обобщающая информация (-v), количество требуемых обнаруженных субдоменов, после которого запускается рекурсивный брут-форсинг установлено на 3 ( -min-for-recursive 3):

amass enum -v -ip -brute -min-for-recursive 3 -d example.com
[Google] www.example.com
[VirusTotal] ns.example.com
...
13139 names discovered - archive: 171, cert: 2671, scrape: 6290, brute: 991, dns: 250, alt: 2766

Одновременный поиск по нескольким доменом (опцию -d можно использовать многократно, при каждой опции можно указать несколько доменов через запятую):


amass enum -d example1.com,example2.com -d example3.com

Установка Amass

Установка в Kali Linux

Автор предлагает несколько вариантов установки, в том числе имеются уже собранные пакеты. Но эти пакеты по какой-то причине собираются не для каждого вышедшего релиза. Поэтому самым простым способом получить последнюю версию является сборка из исходного кода. Программа написана на Go и для её сборки нужен компилятор Go. Как его получить с помощью нескольких команд смотрите в заметке «Установка Go (компилятора и инструментов) в Linux».

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

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/

Словари будут находиться в папке /usr/share/amass/wordlists/.

Установка в BlackArch

Программа предустановлена в BlackArch.

sudo pacman -S amass

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты Amass

Инструкции по Amass


Близкие программы:

  • XRay (95.6%)
  • FinalRecon (93.9%)
  • Sublist3r (90.1%)
  • Findomain (78.3%)
  • CloudFail (75.9%)
  • Invoke-TheHash (RANDOM - 1.7%)
  • Рекомендуется Вам:

    Comments are Closed