- PVSM.RU - https://www.pvsm.ru -
Продолжаем [1] рассказывать о полезных инструментах для пентестера. В новой статье мы рассмотрим инструменты для анализа защищенности веб-приложений.
Наш коллега BeLove [2] уже делал подобную подборку [3] около семи лет назад. Интересно взглянуть, какие инструменты сохранили и укрепили свои позиции, а какие отошли на задний план и сейчас используются редко.

Отметим, что сюда же относится и Burp Suite, но про него и его полезные плагины будет отдельная публикация.
Amass [26] — инструмент на Go для поиска и перебора поддоменов DNS и составления карты внешней сети. Amass — проект OWASP, созданный, чтобы показать, как для стороннего наблюдателя выглядят организации в Интернете. Имена поддоменов Amass получает различными способами, в инструменте используется как рекурсивный перебор поддоменов, так и поиск по открытым источникам.
Для обнаружения связанных между собой сетевых сегментов и номеров автономных систем Amass использует IP-адреса, полученные во время работы. Вся найденная информация используется для построения карты сети.
* Поиск по открытым источникам — Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;
* Поиск по базам данных TLS-сертификатов — Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Использование API поисковых систем — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;
* Поиск по веб-архивам Интернета: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;

Altdns [28] — инструмент на Python для составления словарей для перебора DNS-поддоменов. Позволяет генерировать множество вариантов поддоменов с помощью мутаций и перестановок. Для этого используются слова, которые часто встречаются в поддоменах (например: test, dev, staging), все мутации и перестановки применяются к уже известным поддоменам, которые можно подать на вход Altdns. На выходе получается список вариаций поддоменов, которые могут существовать, и этот список в дальнейшем можно использовать при DNS-брутфорсе.
aquatone [29] — ранее был больше известен как еще один инструмент для поиска поддоменов, но сам автор отказался от этого в пользу вышеупомянутого Amass. Сейчас aquatone переписан на Go и больше заточен для предварительной разведки по веб-сайтам. Для этого aquatone проходит по указанным доменам и ищет на них веб-сайты на разных портах, после чего собирает всю информацию о сайте и делает скриншот. Удобен для быстрой предварительной разведки по веб-сайтам, после которой можно выбрать приоритетные цели для атак.
* Файл со всеми URL, на которых были найдены веб-сайты;
* Файл со статистикой и данными страницы;
* Папка с файлами, содержащими заголовки ответа от найденных целей;
* Папка с файлами, содержащими тело ответа от найденных целей;
* Скриншоты найденных веб-сайтов;
Скриншот сделан для одной из старых версий aquatone (v0.5.0), в которой был реализован поиск DNS-поддоменов. Старые версии можно найти на странице релизов [30].

MassDNS [31] — еще один инструмент для поиска DNS-поддоменов. Главное его отличие в том, что он делает DNS-запросы напрямую к множеству разных DNS-резолверов и делает это со значительной скоростью.

Скриншот aquatone v0.5.0
nsec3map [32] — инструмент на Python для получения полного списка доменов, защищённых DNSSEC.
Acunetix [33] — сканер веб-уязвимостей, автоматизирующий процесс проверки безопасности веб-приложений. Тестирует приложение на наличие SQL-инъекций, XSS, XXE, SSRF и многих других веб-уязвимостей. Однако, как и любой другой сканер множества веб-уязвимостей не заменяет пентестера, поскольку сложные цепочки уязвимостей или уязвимости в логике не сможет найти. Зато он покрывает очень много различных уязвимостей, в том числе разных CVE, о которых пентестер мог и забыть, поэтому очень удобен для освобождения от рутинных проверок.

Dirsearch [34] — инструмент на Python для брутфорса директорий и файлов на веб-сайтах.

wfuzz [35] — Python-фаззер веб-приложений. Наверное, один из самых известных веб-фазеров. Принцип прост: wfuzz позволяет фазить любое место в HTTP-запросе, что дает возможность фазить GET/POST-параметры, HTTP-заголовки, включая Cookie и иные аутентификационные заголовки. В тоже время удобен и для простого брутфорса директорий и файлов, для чего нужен хороший словарь. Также имеет гибкую систему фильтров, с помощью которой можно фильтровать ответы от веб-сайта по разным параметрам, что позволяет добиться эффективных результатов.

ffuf [36] — веб фаззер на Go, созданный по “образу и подобию” wfuzz, позволяет брутить файлы, директории, URL-пути, названия и значения GET/POST-параметров, HTTP-заголовки, включая заголовок Host для брутфорса виртуальных хостов. От своего собрата wfuzz отличается более высокой скоростью и некоторыми новыми фичами, например, поддерживаются словари формата Dirsearch.

gobuster [37] — инструмент на Go для разведки, имеет два режима работы. Первый используется для брутфорса файлов и директорий на веб-сайте, второй — для перебора DNS-поддоменов. Инструмент изначально не поддерживает рекурсивный перебор файлов и директорий, что, конечно, экономит время, но с другой стороны брутфорс каждого нового эндпоинта на веб-сайте нужно запускать отдельно.

Arjun [38] — инструмент для брутфорса скрытых HTTP-параметров в GET/POST-параметрах, а также в JSON. Встроенный словарь имеет 25 980 слов, которые Ajrun проверяет почти за 30 секунд. Фокус в том, что Ajrun не проверяет каждый параметр отдельно, а проверяет сразу ~1000 параметров за раз и смотрит, изменился ли ответ. Если ответ изменился, то делит эту 1000 параметров на две части и проверяет, какая из этих частей влияет на ответ. Таким образом, с помощью нехитрого бинарного поиска находится параметр или несколько скрытых параметров, которые влияли на ответ и, следовательно, могут существовать.
По схожему принципу работает и плагин для Burp Suite — param-miner [39], который тоже очень хорош в поиске скрытых HTTP-параметров. Подробнее мы о нём расскажем в грядущей статье про Burp и его плагины.

LinkFinder [40] — скрипт на Python для поиска ссылок в JavaScript-файлах. Полезен для поиска скрытых или забытых эндпоинтов/URL в веб-приложении.
.

JSParser [41] — скрипт на Python, который использует Tornado [42] и JSBeautifier [43] для анализа относительных URL-адресов из JavaScript-файлов. Очень полезен для обнаружения AJAX-запросов и составления списка API-методов, с которыми взаимодействует приложение. Эффективно работает в паре с LinkFinder.

sqlmap [44] — наверное, один из самых известных инструментов для анализа веб-приложений. Sqlmap автоматизирует поиск и эксплуатацию SQL-инъекций, работает с несколькими диалектами SQL, имеет в своем арсенале огромное количество различных техник, начиная от кавычки “в лоб” и заканчивая сложными векторами для time-based SQL-инъекций. Кроме того, имеет множество техник дальнейшей эксплуатации для различных СУБД, поэтому полезен не просто как сканер для SQL-инъекций, а еще и как мощный инструмент для эксплуатации уже найденных SQL-инъекций.

NoSQLMap [45] — инструмент на Python для автоматизации поиска и эксплуатации NoSQL-инъекций. Удобно использовать не только в базах данных NoSQL, но и непосредственно при аудите веб-приложений, использующих NoSQL.
oxml_xxe [46] — инструмент для встраивания XXE XML-эксплойтов в различные типы файлов, в которых в каком-либо виде используется XML-формат.
Вышеупомянутые утилиты отлично справляются с тестированием XXE в случае загрузки документов, содержащих XML. Но также не забывайте, что обработчики XML-форматов могут встречаться во множестве других случаев, например, XML может использоваться как формат данных вместо JSON.
Поэтому рекомендуем обратить внимание на следующий репозиторий, содержащий большое количество разнообразных пейлоадов: PayloadsAllTheThings [47].
tplmap [48] — инструмент на Python для автоматического выявления и эксплуатации уязвимостей Server-Side Template Injection, имеет схожие с sqlmap настройки и флаги. Использует несколько различных техник и векторов, включая blind-инъекции, а также имеет техники для выполнения кода и загрузки/выгрузки произвольных файлов. Кроме того, имеет в своем арсенале техники для десятка разных движков для шаблонов и некоторые техники для поиска eval()-подобных инъекций кода в Python, Ruby, PHP, JavaScript. В случае успешной эксплуатации открывает интерактивную консоль.
CeWL [49] — генератор словарей на Ruby, создан для извлечения уникальных слов с указанного веб-сайта, проходит по ссылкам на сайте на указанную глубину. Составленный словарь из уникальных слов в дальнейшем можно использовать для брутфорса паролей на сервисах или брутфорса файлов и директорий на том же веб-сайте, либо для атаки на полученные хэши с помощью hashcat или John the Ripper. Полезен при составлении “целевого” списка потенциальных паролей.
Weakpass [50] — сервис, содержащий множество словарей с уникальными паролями. Крайне полезен для различных задач, связанных с взломом паролей, начиная от простого онлайн брутфорса учетных записей на целевых сервисах, заканчивая офф-лайн брутфорсом полученных хэшей с помощью hashcat [51] или John The Ripper [52]. В составе около 8 миллиардов паролей длиной от 4 до 25 символов.

В отдельную группу мы хотели бы вынести инструменты для CMS-проверок: WPScan, JoomScan и AEM hacker.
AEM hacker [53] — инструмент для выявления уязвимостей в приложениях Adobe Experience Manager (AEM).
JoomScan [54] — инструмент на Perl для автоматизации обнаружения уязвимостей при развертывании Joomla CMS.

WPScan [55] — инструмент для сканирования сайтов на WordPress, имеет в своем арсенале уязвимости как для самого движка WordPress, так и для некоторых плагинов.

В целом разные люди предпочитают для работы разные инструменты: все они по-своему хороши, и то, что понравилось одному человеку, может совершенно не подойти другому. Если вы считаете, что мы незаслуженно обошли внимание какую-то хорошую утилиту — пишите о ней в комментариях!
Автор: forkyforky
Источник [56]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/319045
Ссылки в тексте:
[1] Продолжаем: https://habr.com/ru/company/dsec/blog/447882/
[2] BeLove: https://habr.com/ru/users/belove/
[3] подборку: https://habr.com/ru/post/125317/
[4] Amass: #Amass
[5] Altdns: #Altdns
[6] aquatone: #aquatone
[7] MassDNS: #MassDNS
[8] nsec3map: #nsec3map
[9] Acunetix: #Acunetix
[10] Dirsearch: #Dirsearch
[11] wfuzz: #wfuzz
[12] ffuf: #ffuf
[13] gobuster: #gobuster
[14] Arjun: #Arjun
[15] LinkFinder: #LinkFinder
[16] JSParser: #JSParser
[17] sqlmap: #sqlmap
[18] NoSQLMap: #NoSQLMap
[19] oxml_xxe: #oxml_xxe
[20] tplmap: #tplmap
[21] CeWL: #CeWL
[22] Weakpass: #Weakpass
[23] AEM_hacker: #AEM_hacker
[24] JoomScan: #JoomScan
[25] WPScan: #WPScan
[26] Amass: https://github.com/OWASP/Amass
[27] VDS: https://www.reg.ru/?rlink=reflink-717
[28] Altdns: https://github.com/infosec-au/altdns
[29] aquatone: https://github.com/michenriksen/aquatone
[30] странице релизов: https://github.com/michenriksen/aquatone/releases
[31] MassDNS: https://github.com/blechschmidt/massdns
[32] nsec3map: https://github.com/anonion0/nsec3map
[33] Acunetix: https://www.acunetix.com/
[34] Dirsearch: https://github.com/maurosoria/dirsearch
[35] wfuzz: https://github.com/xmendez/wfuzz
[36] ffuf: https://github.com/ffuf/ffuf
[37] gobuster: https://github.com/OJ/gobuster
[38] Arjun: https://github.com/s0md3v/Arjun
[39] param-miner: https://github.com/PortSwigger/param-miner
[40] LinkFinder: https://github.com/GerbenJavado/LinkFinder
[41] JSParser: https://github.com/nahamsec/JSParser
[42] Tornado: https://www.tornadoweb.org/en/stable/
[43] JSBeautifier: https://beautifier.io/
[44] sqlmap: https://github.com/sqlmapproject/sqlmap
[45] NoSQLMap: https://github.com/codingo/NoSQLMap
[46] oxml_xxe: https://github.com/BuffaloWill/oxml_xxe
[47] PayloadsAllTheThings: https://github.com/swisskyrepo/PayloadsAllTheThings
[48] tplmap: https://github.com/epinna/tplmap
[49] CeWL: https://github.com/digininja/CeWL
[50] Weakpass: https://weakpass.com
[51] hashcat: https://hashcat.net/hashcat/
[52] John The Ripper: https://www.openwall.com/john/
[53] AEM hacker: https://github.com/0ang3el/aem-hacker
[54] JoomScan: https://github.com/rezasp/joomscan
[55] WPScan: https://github.com/wpscanteam/wpscan
[56] Источник: https://habr.com/ru/post/452836/?utm_campaign=452836
Нажмите здесь для печати.