Пожалуйста, обратите внимание, что пользователь заблокирован
Независимо от того, являетесь ли вы пентестером, аудитором, ресерчером в области безопасности или CISO/IT менеджером, у вас может быть несколько причин для определение (внешней) поверхности для атаки организации. Этот процесс также называют разведкой или сбором информации.
Проект OWASP Amass в значительной степени может помочь в этом в зависимости от Ваших требований. В этой статье я постараюсь продемонстировать, как можно использовать Amass для обнаружения для большинства активов организации.
Основное внимание будет уделено выполнению непрерывных тестов по обнаружению поддоменов. Пост разбит на разделы чтобы было легче разобратся в различных функциях этого инструмента. Отмечу что там могут быть активы, которые не привязаны к домену, и вам придется использовать другие методы для их обнаружения, такие как сканирование сети по диапазонам IP, принадлежащим организации. Хотя я не буду полностью демонстрировать, как использовать все функции Amass, я надеюсь, что эта статья охватит достаточно, чтобы дать вам толчок к освоению Amass.
Почему именно OWASP Amass?
Для раскрытия поддоменов, ASN и других активов, принадлежащих организации, доступно большое количество инструментов и ПО с открытым исходным кодом. Несмотря на то, что большинство из этих инструментов отлично работают с конкретными методами, они не всегда активно поддерживаются и обновляются в соответствии с новейшими методиками и приемами. Так что, по правде говоря, большинство доступных инструментов не являются полными, и полагаться только на них может дать ложное ощущение безопасности или скрыть факт наличия уязвимых активов. Реальность такова, что в настоящее время поддомены могут быть раскрыты где угодно, например, в социальных сетях, Pastebin, репозиториях исходного кода, HTTP-заголовках и так далее.
Amass поддерживается OWASP, что должно обеспечить престиж и уверенность в результатах. Он активно поддерживается и, скорее всего, будет поддерживаться в течение длительного времени, что означает, что любые будущие ошибки будут устранены. Кроме того, показатель принятия Amass высок, что потенциально означает лучшую согласованность данных и интеграцию с другими инструментами. Как таковой, он может стать лучшим и более надежным инструментом, который можно использовать в PoC и бою, и может быть легче убедить ваших клиентов или менеджера использовать его для периодического составления карты поверхности атак на организацию.
Есть ряд более технических причин, которые я объясню ниже и продемонстрирую более подробно позже:
Идёт с 5 подкомандами (функциями)
amass intel - обнаружение целей для перечисления
amass enum - перечисление и составление карты сети
amass viz - визуализация результатов
amass track – находит различия между уже найденными новыми доменами и данными
amass db - манипуляция БД графов Amass
Подкоманды Amass' могут использоваться совместно, в некоторых случаях, что позволяет создавать скрипты, выполняющие несколько операций Amass.
На момент написания статьи поддерживает 55 источников, таких как API и веб-сайты, в рамках своих методов обнаружения поддоменов и сбора информации. Их можно перечислить с помощью этой командой:
Вывод:
Он использует различные методы сбора информации для раскрытия DNS записей:
Я не буду вдаваться в подробности установки Amass в этом посте, но если вам интересно, вы можете сделать это несколькими способами. Вы можете скомпилировать из исходников, если у вас есть правильно настроенное окружение Golang (Go >= 1.13), или запустить его с помощью Docker, или установить его как пакет, если он доступен для вашего дистрибутива.
Подробные инструкции по установке: https://github.com/OWASP/Amass/blob/master/doc/install.md.
Наверное, стоит отметить, что еще одним большим преимуществом Amass является то, что все подкоманды пытаются поддерживать согласованность аргументов (большинство аргументов не конфликтуют даже в разных модулях).
Эта подкоманда будет использовать ряд техник сбора информации и источников данных по умолчанию, таких как WHOIS и IPv4Info, для получения разведданных и родительских доменов, принадлежащих организации, если только они не отключены в конфигурационном файле Amass. Пример конфигурационного файла Amass доступен в репозитории GitHub.
Вы также можете подтвердить некоторые из вышеперечисленных результатов, просмотрев источники данных вручную. На скриншоте ниже я выполнил обратный поиск Whois "OWASP Foundation" и нашел аналогичные домены на ViewDNS (один из источников Amass):
При выполнении поиска с amass intel вы всегда можете запустить его с большим количеством опций конфигурации, например, с аргументом "-active", который будет пытаться осуществить передачу зон DNS и активно сканировать, чтобы получить SSL/TLS сертификаты для извлечения информации. Как и в любом другом случае, убедитесь, что вы авторизованы на активный поиск в отношении цели в данный момент.
Стоит отметить, что некоторые флаги конфигурации не будут работать вместе с другими, и в этом случае Amass просто проигнорирует их.
Выводы Amass не всегда будут точными, это связано с несколькими причинами, например, источники данных, используемые Amass, могут быть непоследовательными или не соответствовать данным. Amass пытается в дальнейшем проверять информацию, используя DNS-запросы, и в будущем будет внедряться больше методик проверки. Несмотря на то, что Amass делает хорошую работу, пользователи все же должны проводить дальнейшую проверку результатов, которые, как кажется, не связаны с целью. Это может быть выполнено с использованием различных методов, таких как:
Пожалуйста, обратите внимание, что вышеуказанные данные являются фиктивными для демонстрационных целей. Выведенные ASN ID могут быть переданы обратно в Amass. Следующая команда пытается получить родительские домены на указанном ASN ID и вернуть их вместе с IP адресом, на который они разрешают (127.0.0.1 в данном случае в демонстрационных целях):
Пассивный режим гораздо быстрее, но Amass не будет проверять DNS информацию, например, разрешая субдомены. Вы можете запустить его в пассивном режиме с помощью флага "-пассивный", и вы не сможете включить множество техник или конфигураций, таких как получение и проверка DNS. Есть несколько причин для выбора пассивного режима над активным, например:
В примере ниже я пассивно ищу поддомены на сайте owasp.org и прошу Amass показать источники данных, где он нашел каждый из поддоменов:
На данном этапе стоит отметить, что хотя Amass intel поможет собрать диапазоны IP-адресов, ASN и родительские домены, принадлежащие организации, Amass enum будет идентифицировать все поддомены. Это перечисление поддоменов было завершено менее чем за 2 минуты на моей тестовой машине. Вот немного измененный скриншот, показывающий результаты этого перечисления:
Использование Amass в активном режиме означает, что вы будете иметь более точные результаты и больше активов может быть обнаружено, так как вы можете включить все методы перечисления DNS. Следует отметить, что под "активным режимом" я подразумеваю не только "-активный" флаг, который позволяет осуществлять передачу зон и сканирование портов сервисов SSL/TLS, а также захват их сертификатов для извлечения любых поддоменов из полей сертификатов (например, Common Name).
Приведенную ниже команду (подробное пояснение к которой приведено ниже) в целом можно считать активной, так как она выполняет перебор поддоменов различными способами (словарь, маски и т.д.) вместе с включенным флагом "-активный". Все результаты будут проверяться Amass с использованием резольверов по умолчанию или указанных резольверов:
В команде, которую я использовал выше, указано, что база данных графов Amass вместе с лог-файлами будет храниться в "./amass4owasp". Я также попросил Amass отобразить источники данных для каждого идентифицированного поддомена и IP-адрес(а), который он нашел, с флагами "-src" и "-ip" соответственно. Я снабдил Amass DNS-словарем с аргументом "-w", а также указал расположение файла config.ini с аргументом "-config" и вывод с аргументом "-o".
Хотя вышеприведенная команда, надеюсь, будет простой, я хотел бы предоставить несколько дополнительных заметок:
В результате аргумента "-public-dns" Амасс захватит DNS resolvers из https://public-dns.info. Без этого аргумента он бы проверил в моем файле config.ini или использовал резольверы по умолчанию, встроенные в Amass. Amass пытается проверить публичные DNS resolvers, как показано в фрагменте файла "amass.log" ниже:
Мы могли бы указать все эти конфигурации в файле config.ini и предоставить Amass "-config". На данный момент стоит отметить, что аргументы командной строки будут иметь приоритет над тем, что указано в файле config.ini. Таким образом, если вы отключаете перебор в файле config.ini, но указываете аргумент "-brute" в командной строке, то будут использованы методы перебора.
Команда выше, если явно не отключена с использованием "-norecursive", будет выполнять рекурсивное перечисление DNS на поддоменах, определенных по умолчанию.
Обратите внимание, что вы можете указать свои собственные DNS resolvers либо с помощью флагов "-r" и "-rf", либо в файле config.ini. С помощью флага "-r" можно указать IP-адреса DNS resolvers по команде, а с помощью флага "-rf" - файл, содержащий эти адреса.
На данном этапе вы также должны помнить, что если вы выполняете несколько операций Amass в течение короткого периода времени с одного и того же IP, этот IP может быть навсегда заблокирован из некоторых источников, которые Amass использует для работы, таких как поисковые системы Google/Yahoo.
Если вам нужно, чтобы несколько экземпляров Amass выполнялись одновременно, вы можете достичь этого на одном сервере; однако, имейте в виду, что Amass мощный и ресурсоёмкий. Кроме того, вам нужно будет использовать флаг "dir" для указания отдельных выходных каталогов и, следовательно, графических баз данных, при запуске нескольких экземпляров Amass.
Чтобы закончить этот раздел более интересным образом, предположим, что по каким-то причинам организация OWASP стремится создавать поддомены с префиксами "zzz", такие как zzz-dev.owasp.org. Вы можете использовать функцию маски словаря в стиле хэш-ката Amass для перебора всех комбинаций "zzz-[a-z][a-z][a-z].owasp.org", используя следующую команду:
Наконец, вы всегда можете проверить файл журнала Amass в папке вывода, чтобы убедиться, что ваша конфигурация работает так, как ожидается:
Для организаций и исследователей, периодически использующих Amass, Amass track может быть действительно полезен, если его использовать вместе с оповещением. Несмотря на то, что на момент написания статьи Amass ещё не поддерживал систему оповещений, реализация уведомлений об изменениях на идентифицированных треках находится в стадии разработки. До тех пор, пока это не будет реализовано, вы можете изучить возможность создания пользовательского решения, которое будет оповещать соответствующих людей в вашей организации путем фильтрации результатов работы трека Amass. Это можно сделать, например, с помощью Slack webhooks.
пасхалочка
Организации также могут использовать эту функцию для того, чтобы убедиться, что вновь развернутые службы правильно выполняют контроль качества, управления уязвимостями и инвентаризации активов.
Amass db
Вы можете использовать данную подкоманду для взаимодействия с базой данных графов Amass, либо по умолчанию, либо с той, которая указана с флагом "-dir".
Например, эта команда перечислит все различные перечисления, которые вы выполнили по заданным доменам, и будет храниться в базе данных графа "amass4owasp":
Далее, с помощью данной команды, вы можете вывести активы, полученные в этом перечислении - в данном случае перечисление 1:
Возможно вы захотите сохранить ту же самую папку вывода Amass для статистических или исторических целей, через которую вы выполняете все перечисления поддоменов. Amass track может быть использован только в отношении той же самой базы данных графов и папки вывода.
Amass Viz
Подкоманда Amass viz позволяет визуализировать всю собранную информацию (хранящуюся в базе данных графов Amass) несколькими способами. Результаты также могут быть импортированы в Maltego для дальнейшего анализа OSINT (Open-Source Intelligence).
Вот эта команда генерирует HTML-график d3-force на основе базы данных графов, хранящейся в папке "amass4owasp":
Использование Amass intel для периодического поиска ASN ID, затем используйте ASN IDs для обнаружения родительского домена, и, наконец, используйте найденные родительские домены с Amass enum, выполняющим активный поиск для выявления новых поддоменов и активов, подверженных внешним воздействиям;
Использование Amass enum с пассивным поиском для получения новых поддоменов из источников данных Amass с целью создания списка активов организации путем предоставления исходных родительских доменов. Эти данные могут быть использованы в инструментах сканирования уязвимостей (которые также будут выполнять обработку DNS) или могут быть добавлены в задачи команды безопасности вашей организации.
Если вы планируете автоматизировать тесты по обнаружению в Amass, я настоятельно рекомендую потратить время на настройку файла "config.ini". Например, у вас может быть один файл amass "config.ini" для быстрых тестов по пассивному обнаружению поддоменов, которые происходят каждые несколько часов, если вы ищете большую сеть/организацию, и один для более глубокого и специфического сканирования. В примере ниже я представляю пример сценария, написанного на GNU Bash, показывающий, как вы могли бы автоматизировать Amass:
Скрипт использует мобильное приложение, которое посылает push-уведомления на мой телефон с помощью pushover.net API. Это достигается с помощью инструмента wget для выполнения API запросов, которые отправляют уведомление на мой телефон с новыми субдоменами, как показано в строках 1,2 и 11. Подобный функционал можно реализовать с помощью веб-хуков Slack's или Discord's. Команда в строке 3 запускает тщательный поиск Amass. В четвертой строке используется Amass track для сравнения последних двух перечислений и определения новых поддоменов, а в пятой и девятой строках собраны все поддомены, идентифицированные в файле "all_domains.txt", и произведено их сравнение. Это необходимо, так как в некоторых случаях поддомены могут быть активными и/или неактивными в разные периоды времени, и сравнение только двух последних перечислений может оказаться недостаточным. Строки с 6 по 10 гарантируют, что соответствующее push-уведомление будет отправлено на мой телефон, а также сохранят все новые субдомены в локальный файл "all_domains.txt" для последующего сравнения.
Обратите внимание, что вышеприведенный скрипт был написан на скорую руку и предназначен только для примера. Он ни в коем случае не идеален и не содержит ошибок, и вам придется изменить и настроить его в соответствии с вашими требованиями и окружением.
В заключение, OWASP Amass - это инструмент, который становится все более популярным. Я настоятельно рекомендую включать Amass в рабочий процесс/процессы, если у вас есть требования к сбору информации и обнаружению поддоменов, и оставаться с нами, так как с каждым релизом будет добавляться все больше и больше функций и улучшений. Наконец, вы всегда можете обратиться к подробному руководству пользователя Amass:
github.com
Источник
От ТС :
Если есть интересный материал для перевода, для них есть тема
Перевод:
WDBlue cпециально для xss.pro
Проект OWASP Amass в значительной степени может помочь в этом в зависимости от Ваших требований. В этой статье я постараюсь продемонстировать, как можно использовать Amass для обнаружения для большинства активов организации.
Основное внимание будет уделено выполнению непрерывных тестов по обнаружению поддоменов. Пост разбит на разделы чтобы было легче разобратся в различных функциях этого инструмента. Отмечу что там могут быть активы, которые не привязаны к домену, и вам придется использовать другие методы для их обнаружения, такие как сканирование сети по диапазонам IP, принадлежащим организации. Хотя я не буду полностью демонстрировать, как использовать все функции Amass, я надеюсь, что эта статья охватит достаточно, чтобы дать вам толчок к освоению Amass.
Почему именно OWASP Amass?
Для раскрытия поддоменов, ASN и других активов, принадлежащих организации, доступно большое количество инструментов и ПО с открытым исходным кодом. Несмотря на то, что большинство из этих инструментов отлично работают с конкретными методами, они не всегда активно поддерживаются и обновляются в соответствии с новейшими методиками и приемами. Так что, по правде говоря, большинство доступных инструментов не являются полными, и полагаться только на них может дать ложное ощущение безопасности или скрыть факт наличия уязвимых активов. Реальность такова, что в настоящее время поддомены могут быть раскрыты где угодно, например, в социальных сетях, Pastebin, репозиториях исходного кода, HTTP-заголовках и так далее.
Amass поддерживается OWASP, что должно обеспечить престиж и уверенность в результатах. Он активно поддерживается и, скорее всего, будет поддерживаться в течение длительного времени, что означает, что любые будущие ошибки будут устранены. Кроме того, показатель принятия Amass высок, что потенциально означает лучшую согласованность данных и интеграцию с другими инструментами. Как таковой, он может стать лучшим и более надежным инструментом, который можно использовать в PoC и бою, и может быть легче убедить ваших клиентов или менеджера использовать его для периодического составления карты поверхности атак на организацию.
Есть ряд более технических причин, которые я объясню ниже и продемонстрирую более подробно позже:
Идёт с 5 подкомандами (функциями)
amass intel - обнаружение целей для перечисления
amass enum - перечисление и составление карты сети
amass viz - визуализация результатов
amass track – находит различия между уже найденными новыми доменами и данными
amass db - манипуляция БД графов Amass
Подкоманды Amass' могут использоваться совместно, в некоторых случаях, что позволяет создавать скрипты, выполняющие несколько операций Amass.
На момент написания статьи поддерживает 55 источников, таких как API и веб-сайты, в рамках своих методов обнаружения поддоменов и сбора информации. Их можно перечислить с помощью этой командой:
Код:
amass enum -list
Код:
AlienVault,ArchiveIt,ArchiveToday,Arquivo,Ask,Baidu,BinaryEdge,Bing,BufferOver,Censys,CertSpotter,CIRCL,CommonCrawl,Crtsh,[…],ViewDNS,VirusTotal,Wayback,WhoisXML,Yahoo (full list here)
Он использует различные методы сбора информации для раскрытия DNS записей:
- Brute-force поддоменов с помощью словарей доменных имен
- Определение поддоменов путем чтения SSL/TLS сертификатов, выполнения передачи зон DNS или проверки журналов прозрачности сертификатов (СТ).
- Обнаружение рекурсивных поддоменов на идентифицированных доменах
- Маски в стиле hashcat для брута поддоменов (это может быть очень полезно, если у вас есть внутренняя информация о конвенциях по именованию и т.д.)
Я не буду вдаваться в подробности установки Amass в этом посте, но если вам интересно, вы можете сделать это несколькими способами. Вы можете скомпилировать из исходников, если у вас есть правильно настроенное окружение Golang (Go >= 1.13), или запустить его с помощью Docker, или установить его как пакет, если он доступен для вашего дистрибутива.
Подробные инструкции по установке: https://github.com/OWASP/Amass/blob/master/doc/install.md.
Amass Intel
Подкоманда Amass intel, или модуль, если хотите, может помочь в сборе информации об организации с открытым исходным кодом и позволит вам найти дополнительные имена корневых доменов, связанных с организацией. Чтобы увидеть доступные опции этой подкоманды, просто напечатайте ее в терминале:
Код:
$ amass intel
[...]
Usage: amass intel [options] [-whois -d DOMAIN] [-addr ADDR -asn ASN -cidr CIDR]
-active
Attempt certificate name grabs
-addr value
IPs and ranges (192.168.1.1-254) separated by commas
-asn value
ASNs separated by commas (can be used multiple times)
[...]
Эта подкоманда будет использовать ряд техник сбора информации и источников данных по умолчанию, таких как WHOIS и IPv4Info, для получения разведданных и родительских доменов, принадлежащих организации, если только они не отключены в конфигурационном файле Amass. Пример конфигурационного файла Amass доступен в репозитории GitHub.
Код:
$ amass intel -d owasp.org -whois
appseceu.com
owasp.com
appsecasiapac.com
appsecnorthamerica.com
appsecus.com
[...]
owasp.org
appsecapac.com
appsecla.org
[...]
Вы также можете подтвердить некоторые из вышеперечисленных результатов, просмотрев источники данных вручную. На скриншоте ниже я выполнил обратный поиск Whois "OWASP Foundation" и нашел аналогичные домены на ViewDNS (один из источников Amass):
При выполнении поиска с amass intel вы всегда можете запустить его с большим количеством опций конфигурации, например, с аргументом "-active", который будет пытаться осуществить передачу зон DNS и активно сканировать, чтобы получить SSL/TLS сертификаты для извлечения информации. Как и в любом другом случае, убедитесь, что вы авторизованы на активный поиск в отношении цели в данный момент.
Стоит отметить, что некоторые флаги конфигурации не будут работать вместе с другими, и в этом случае Amass просто проигнорирует их.
Выводы Amass не всегда будут точными, это связано с несколькими причинами, например, источники данных, используемые Amass, могут быть непоследовательными или не соответствовать данным. Amass пытается в дальнейшем проверять информацию, используя DNS-запросы, и в будущем будет внедряться больше методик проверки. Несмотря на то, что Amass делает хорошую работу, пользователи все же должны проводить дальнейшую проверку результатов, которые, как кажется, не связаны с целью. Это может быть выполнено с использованием различных методов, таких как:
- использование утилит для выдачи доменов (например, dig, nslookup).
- выполнение поиска WHOIS для подтверждения деталий об организации.
- поиск находок, такие как родительские домены, в поисковых системах
Код:
$ amass intel -org 'Example Ltd'
111111, MAIN_PRODUCT – Example Ltd
222222, SECONDARY_PRODUCT - Example Ltd
[...]
Пожалуйста, обратите внимание, что вышеуказанные данные являются фиктивными для демонстрационных целей. Выведенные ASN ID могут быть переданы обратно в Amass. Следующая команда пытается получить родительские домены на указанном ASN ID и вернуть их вместе с IP адресом, на который они разрешают (127.0.0.1 в данном случае в демонстрационных целях):
Код:
$ amass intel -active -asn 222222 -ip
some-example-ltd-domain.com 127.0.0.1
[...]
Amass Enum
Давайте перейдем к Amass enum, где содержиться большинство мощных возможностей Амасса. Amass enum позволяет вам выполнять DNS перечисление и сопоставление цели, чтобы определить поверхность атаки. Результаты перечисления хранятся в базе данных графиков, которая будет находиться в стандартной выходной папке Amass или в указанной выходной директории с флагом "-dir". Так же обстоит дело и с другими подкомандами Amass.Запуск Amass с -Passive или -Active
Amass может быть запущен в passive и active режимахПассивный режим гораздо быстрее, но Amass не будет проверять DNS информацию, например, разрешая субдомены. Вы можете запустить его в пассивном режиме с помощью флага "-пассивный", и вы не сможете включить множество техник или конфигураций, таких как получение и проверка DNS. Есть несколько причин для выбора пассивного режима над активным, например:
- Вам нужно знать все возможные поддомены, которые были использованы и могут быть повторно использованы в будущем, возможно, потому, что вам нужно постоянно следить за поверхностью атаки цели на предмет изменений или потому, что вы работаете над фишинговым захватом и ищете поддомены.
- Процесс тестирования безопасности вашего периметра проверяет информацию DNS на более поздних стадиях, и вам нужно быстро получить результаты Amass.
- В связи с ограничениями или требованиями безопасности вы можете выполнять только пассивный сбор информации.
В примере ниже я пассивно ищу поддомены на сайте owasp.org и прошу Amass показать источники данных, где он нашел каждый из поддоменов:
Код:
$ amass enum -passive -d owasp.org -src
[...]
[ThreatCrowd] update-wiki.owasp.org
[...]
BufferOver] my.owasp.org
[Crtsh] www.lists.owasp.org
[Crtsh] www.ocms.owasp.org
[...]
Querying VirusTotal for owasp.org subdomains
Querying Yahoo for owasp.org subdomains
[...]
На данном этапе стоит отметить, что хотя Amass intel поможет собрать диапазоны IP-адресов, ASN и родительские домены, принадлежащие организации, Amass enum будет идентифицировать все поддомены. Это перечисление поддоменов было завершено менее чем за 2 минуты на моей тестовой машине. Вот немного измененный скриншот, показывающий результаты этого перечисления:
Использование Amass в активном режиме означает, что вы будете иметь более точные результаты и больше активов может быть обнаружено, так как вы можете включить все методы перечисления DNS. Следует отметить, что под "активным режимом" я подразумеваю не только "-активный" флаг, который позволяет осуществлять передачу зон и сканирование портов сервисов SSL/TLS, а также захват их сертификатов для извлечения любых поддоменов из полей сертификатов (например, Common Name).
Приведенную ниже команду (подробное пояснение к которой приведено ниже) в целом можно считать активной, так как она выполняет перебор поддоменов различными способами (словарь, маски и т.д.) вместе с включенным флагом "-активный". Все результаты будут проверяться Amass с использованием резольверов по умолчанию или указанных резольверов:
Код:
$ amass enum -active -d owasp.org -public-dns -brute -w /root/dns_lists/deepmagic.com-top50kprefixes.txt -src -ip -dir amass4owasp -config /root/amass/config.ini -o amass_results_owasp.txt
В команде, которую я использовал выше, указано, что база данных графов Amass вместе с лог-файлами будет храниться в "./amass4owasp". Я также попросил Amass отобразить источники данных для каждого идентифицированного поддомена и IP-адрес(а), который он нашел, с флагами "-src" и "-ip" соответственно. Я снабдил Amass DNS-словарем с аргументом "-w", а также указал расположение файла config.ini с аргументом "-config" и вывод с аргументом "-o".
Хотя вышеприведенная команда, надеюсь, будет простой, я хотел бы предоставить несколько дополнительных заметок:
В результате аргумента "-public-dns" Амасс захватит DNS resolvers из https://public-dns.info. Без этого аргумента он бы проверил в моем файле config.ini или использовал резольверы по умолчанию, встроенные в Amass. Amass пытается проверить публичные DNS resolvers, как показано в фрагменте файла "amass.log" ниже:
Мы могли бы указать все эти конфигурации в файле config.ini и предоставить Amass "-config". На данный момент стоит отметить, что аргументы командной строки будут иметь приоритет над тем, что указано в файле config.ini. Таким образом, если вы отключаете перебор в файле config.ini, но указываете аргумент "-brute" в командной строке, то будут использованы методы перебора.
Команда выше, если явно не отключена с использованием "-norecursive", будет выполнять рекурсивное перечисление DNS на поддоменах, определенных по умолчанию.
Обратите внимание, что вы можете указать свои собственные DNS resolvers либо с помощью флагов "-r" и "-rf", либо в файле config.ini. С помощью флага "-r" можно указать IP-адреса DNS resolvers по команде, а с помощью флага "-rf" - файл, содержащий эти адреса.
На данном этапе вы также должны помнить, что если вы выполняете несколько операций Amass в течение короткого периода времени с одного и того же IP, этот IP может быть навсегда заблокирован из некоторых источников, которые Amass использует для работы, таких как поисковые системы Google/Yahoo.
Если вам нужно, чтобы несколько экземпляров Amass выполнялись одновременно, вы можете достичь этого на одном сервере; однако, имейте в виду, что Amass мощный и ресурсоёмкий. Кроме того, вам нужно будет использовать флаг "dir" для указания отдельных выходных каталогов и, следовательно, графических баз данных, при запуске нескольких экземпляров Amass.
Чтобы закончить этот раздел более интересным образом, предположим, что по каким-то причинам организация OWASP стремится создавать поддомены с префиксами "zzz", такие как zzz-dev.owasp.org. Вы можете использовать функцию маски словаря в стиле хэш-ката Amass для перебора всех комбинаций "zzz-[a-z][a-z][a-z].owasp.org", используя следующую команду:
Код:
$ amass enum -d owasp.org -norecursive -noalts -wm "zzz-?l?l?l" -dir amass4owasp
Наконец, вы всегда можете проверить файл журнала Amass в папке вывода, чтобы убедиться, что ваша конфигурация работает так, как ожидается:
Amass Track
Amass track это вторая по полезности подкоманда, на мой взгляд. Он помогает сравнивать результаты по перечислениям, выполненным с одной и той же целью и с одними и теми же доменами. Примером может служить команда ниже, которая сравнивает последние 2 перечисления с "owasp.org". Это делается путем указания той же самой папки вывода Amass и базы данных, которую мы уже использовали. Наиболее интересные строки начинаются с ключевого слова "Found", а это значит, что в предыдущих перечислениях субдомен не был идентифицирован.
Код:
$ amass track -config /root/amass/config.ini -dir amass4owasp -d owasp.org -last 2
Для организаций и исследователей, периодически использующих Amass, Amass track может быть действительно полезен, если его использовать вместе с оповещением. Несмотря на то, что на момент написания статьи Amass ещё не поддерживал систему оповещений, реализация уведомлений об изменениях на идентифицированных треках находится в стадии разработки. До тех пор, пока это не будет реализовано, вы можете изучить возможность создания пользовательского решения, которое будет оповещать соответствующих людей в вашей организации путем фильтрации результатов работы трека Amass. Это можно сделать, например, с помощью Slack webhooks.
пасхалочка
Организации также могут использовать эту функцию для того, чтобы убедиться, что вновь развернутые службы правильно выполняют контроль качества, управления уязвимостями и инвентаризации активов.
Amass Viz и Amass DB
Я также хотел бы вкратце упомянуть о двух других подкомандах Amass:Amass db
Вы можете использовать данную подкоманду для взаимодействия с базой данных графов Amass, либо по умолчанию, либо с той, которая указана с флагом "-dir".
Например, эта команда перечислит все различные перечисления, которые вы выполнили по заданным доменам, и будет храниться в базе данных графа "amass4owasp":
Код:
$ amass db -dir amass4owasp -list
Далее, с помощью данной команды, вы можете вывести активы, полученные в этом перечислении - в данном случае перечисление 1:
Код:
$ amass db -dir amass4owasp -d owasp.org -enum 1 -show
Возможно вы захотите сохранить ту же самую папку вывода Amass для статистических или исторических целей, через которую вы выполняете все перечисления поддоменов. Amass track может быть использован только в отношении той же самой базы данных графов и папки вывода.
Amass Viz
Подкоманда Amass viz позволяет визуализировать всю собранную информацию (хранящуюся в базе данных графов Amass) несколькими способами. Результаты также могут быть импортированы в Maltego для дальнейшего анализа OSINT (Open-Source Intelligence).
Вот эта команда генерирует HTML-график d3-force на основе базы данных графов, хранящейся в папке "amass4owasp":
Код:
$ amass viz -d3 -dir amass4owasp
Автоматизация поиска OWASP Amass
Обсуждаемые методы можно было бы использовать в сочетании с периодическим сбором информации и поиском поддоменов. Затем можно написать скрипт для отправки оповещений при обнаружении нового актива. В зависимости от ваших нужд, вот некоторые идеи:Использование Amass intel для периодического поиска ASN ID, затем используйте ASN IDs для обнаружения родительского домена, и, наконец, используйте найденные родительские домены с Amass enum, выполняющим активный поиск для выявления новых поддоменов и активов, подверженных внешним воздействиям;
Использование Amass enum с пассивным поиском для получения новых поддоменов из источников данных Amass с целью создания списка активов организации путем предоставления исходных родительских доменов. Эти данные могут быть использованы в инструментах сканирования уязвимостей (которые также будут выполнять обработку DNS) или могут быть добавлены в задачи команды безопасности вашей организации.
Если вы планируете автоматизировать тесты по обнаружению в Amass, я настоятельно рекомендую потратить время на настройку файла "config.ini". Например, у вас может быть один файл amass "config.ini" для быстрых тестов по пассивному обнаружению поддоменов, которые происходят каждые несколько часов, если вы ищете большую сеть/организацию, и один для более глубокого и специфического сканирования. В примере ниже я представляю пример сценария, написанного на GNU Bash, показывающий, как вы могли бы автоматизировать Amass:
Код:
APP_TOKEN="$1"
USER_TOKEN="$2"
amass enum -src -active -df ./domains_to_monitor.txt -config ./regular_scan.ini -o ./amass_results.txt -dir ./regular_amass_scan -brute -norecursive
RESULT=$(amass track -df ./domains_to_monitor.txt -config ./regular_scan.ini -last 2 -dir ./regular_amass_scan | grep Found | awk '{print $2}')
FINAL_RESULT=$(while read -r d; do if grep --quiet "$d" ./all_domains.txt; then continue; else echo "$d"; fi; done <<< $RESULT)
if [[ -z "$FINAL_RESULT" ]];
FINAL_RESULT="No new subdomains were found"
else
echo "$FINAL_RESULT" >> ./all_domains.txt
fi
wget https://api.pushover.net/1/messages.json --post-data="token=$APP_TOKEN&user=$USER_TOKEN&message=$FINAL_RESULT&title=$TITLE" -qO- > /dev/null 2>&1 &
Обратите внимание, что вышеприведенный скрипт был написан на скорую руку и предназначен только для примера. Он ни в коем случае не идеален и не содержит ошибок, и вам придется изменить и настроить его в соответствии с вашими требованиями и окружением.
В заключение, OWASP Amass - это инструмент, который становится все более популярным. Я настоятельно рекомендую включать Amass в рабочий процесс/процессы, если у вас есть требования к сбору информации и обнаружению поддоменов, и оставаться с нами, так как с каждым релизом будет добавляться все больше и больше функций и улучшений. Наконец, вы всегда можете обратиться к подробному руководству пользователя Amass:
amass/doc/user_guide.md at master · owasp-amass/amass
In-depth attack surface mapping and asset discovery - owasp-amass/amass
Источник
От ТС :
Если есть интересный материал для перевода, для них есть тема
Перевод:
WDBlue cпециально для xss.pro