Главная » Пентест » Лучшие расширения для Burp Suite
Расширения для Burp Suite

Лучшие расширения для Burp Suite

Поиск веб-уязвимостей и Burp Suite — это практически синонимы. Однако мощь вашего Burp напрямую зависит от выбора плагинов к нему. В данной статье я собрал подборку лучших расширений для Burp Suite, которые лично использую в моей работе, и расскажу о том, какой вклад каждый из них вносит в облегчение и ускорение пентестерской деятельности.

Burp Vulners Scanner

Данный плагин показывает публичные уязвимости для приложений, обнаруженные в трафике, который проксирует Burp. Расширение было написано Иваном Ёлкиным, одним из сооснователей сервиса vulners.com. Представляет собой, по сути, прослойку между Burp и API этого отличного агрегатора уязвимостей.

Работает все предельно просто. Настраиваем прокси-сервер, а затем ходим по сайту или тыкаем в веб-приложение. В это время плагин анализирует трафик, находит в нем маркеры установленного на удаленной машине софта и детектирует версии. Сюда входят веб-серверы (nginx, Apache, Tomcat и так далее), всевозможные CMS (WordPress, Drupal, Joomla и другие) и прочее. Затем обнаруженная информация отправляется в виде запросов к API vulners.com, а нам в красивом окошке выводится список доступных уязвимостей.

Результат поиска уязвимостей с помощью плагина Vulners Scanner
Результат поиска уязвимостей с помощью плагина Vulners Scanner

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

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

В целом Vulners Scanner — очень удобная штука. Пока я вручную изучаю цель, сканер на автомате ищет потенциальные уязвимости.

Страница плагина на GitHub

SQLiPy

SQLiPy помогает с автоматизацией SQL-инъекций. Данный плагин также работает с API — тем, что предоставляет популярная утилита SQLMap. Думаю, что каждый, кто когда-либо возился с SQLi, слышал про эту тулзу. Однако не все знают, что она может работать в режиме REST API. Для этого ее нужно запустить таким образом:

python sqlmapapi.py -s -H <ip-адрес> -p <порт>

Хочу обратить ваше внимание, что существует возможность запуска API прямо из интерфейса расширения. Но даже сами разработчики рекомендуют запускать его из командной строки.

Настройка плагина SQLiPy
Настройка плагина SQLiPy

Затем во вкладке SQLMap Scanner в настройках плагина нужно указать адрес нашего API. Теперь все, что от вас требуется, — это выбрать подопытный запрос, кликнуть правой кнопкой мыши внутри его тела и выбрать пункт SQLiPy Scan.

Выбор запроса для отправки его в SQLMap
Выбор запроса для отправки его в SQLMap

Снова откроется вкладка SQLMap Scanner, но уже с заполненными данными по запросу. Тут вы можете указать целую вязанку параметров, которые доступны в утилите SQLMap. После настройки нажимаем Start Scan. Если атака успешна, то ее детали будут видны в панели Issues.

Найденная уязвимость типа SQL-инъекция в панели Issues
Найденная уязвимость типа SQL-инъекция в панели Issues

Если же вас интересует более подробная информация о процессе сканирования, то ее можно отыскать на закладке SQLMap Logs. Выбирайте необходимый процесс и жмите кнопку Get.

Результаты сканирования в SQLiPy
Результаты сканирования в SQLiPy

Как вы уже наверное поняли, плагин поддерживает несколько процессов сканирования. Лично у меня на выделенном сервере тусуется такой вот API, и, не отрываясь от исследования приложения, я периодически отправляю на него подозрительные запросы через SQLiPy.

Страница плагина на GitHub

ActiveScan++

Об этом расширении, я думаю, слышал каждый пользователь Burp Suite. Он написан одним из штатных разработчиков PortSwigger Джеймсом Кеттле (James Kettle), а первый коммит датирован 23 июня 2014 года. Но обновляется плагин и по сей день, что встречается нечасто.

ActiveScan++ расширяет стандартный перечень проверок, которые выполняются при работе активного и пассивного сканера. Он умеет находить такие уязвимости, как cache poisoning, DNS rebinding, различные инъекции в темплейты и экспрешены, а также делает дополнительные проверки для обнаружения XXE-инъекций и выявляет популярные баги типа shellshock, выполнение произвольного кода в Struts2 (CVE-2017-5638) и тому подобные.

Никаких настроек расширение не имеет, оно просто тихонько работает и отправляет сообщения о найденных проблемах в панель Issues.

RCE-уязвимость Struts2 CVE-2017-9805, найденная с плагином ActiveScan++
RCE-уязвимость Struts2 CVE-2017-9805, найденная с плагином ActiveScan++

Кстати, на всякий случай расскажу, что если вам нужно натравить активный сканер только на определенные места в запросе, то запрос нужно добавить в Intruder, расставить § в нужных позициях, и после чего нажать правой кнопкой мыши и выбрать Actively scan defined insertion points.

Указываем кастомные места в запросе для активного скана
Указываем кастомные места в запросе для активного скана

Страница плагина на GitHub

Backslash Powered Scanner

Еще один тихий плагин, созданный Джеймсом Кеттле. Нужен он, чтобы обнаруживать как известные, так и неизвестные типы уязвимостей. Манипулируя всевозможными параметрами из запроса, расширение пытается выявить нестандартное поведение сервера. Такие аномалии могут помочь при обнаружении как простых уязвимостей типа error-based SQL-инъекций, так и сложных XSS-инъекций с обходом встроенного WAF. Конечно же, расширение не дает полностью готовые решения, но может натолкнуть вас на правильный путь.

В отличие от плагина ActiveScan++ здесь есть некоторое количество настроек. Они расположены в пункте главного меню под названием Backslash, что нехарактерно.

Настройки плагина Backslash Powered Scanner
Настройки плагина Backslash Powered Scanner

Сканирование также идет в автоматическом режиме при работе активного сканера самого Burp. Если в процессе сканирования что-нибудь будет обнаружено, то результаты добавятся в панель Issues.

Аномалии, найденные плагином Backslash Powered Scanner
Аномалии, найденные плагином Backslash Powered Scanner

За дополнительной информацией о методике тестирования можно обратиться к посту в блоге PortSwigger.

Страница плагина на GitHub

SHELLING

Расширение SHELLING — это отличный инструмент для обнаружения уязвимостей типа RCE. Может использоваться как в автоматическом, так и в ручном режиме. Помимо простых тестов, пытается выполнить обход всевозможных фильтров пользовательских данных.

На момент написания статьи в магазине расширений Burp Suite была старая версия этого плагина. Поэтому скачивайте из репозитория актуальную и устанавливай ручками.

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

Настройки плагина SHELLING
Настройки плагина SHELLING

Здесь можно выбрать и тип атакуемой ОС, и пейлоад, который будет использоваться для получения отстука об успешно выполненной команде, переключение режима сканирования и многое-многое другое.

Также возможно выгрузить пейлоады в виде текстового файла и использовать их в Intruder или в любой другой утилите.

Вкладка с возможностью сохранения пейлоадов в плагине SHELLING
Вкладка с возможностью сохранения пейлоадов в плагине SHELLING

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

Страница плагина на GitHub

AuthMatrix и Autorize

Два плагина, которые, по сути, делают одно и то же и различаются только возможностями детальной настройки и интерфейсом. Нужны они для того, чтобы проверять корректность логики распределения прав доступа в приложении. На сегодняшний день редко можно встретить какой-нибудь сервис, в котором не используется система различных ролей пользователей. Так вот, частенько бывает, что администраторские разделы доступны и обычным пользователям. Чтобы автоматизировать такие проверки, я использую эти два плагина.

AuthMatrix можно назвать старшим братом Autorize: у него чуть больше опций и немного более гибкая настройка тестирования. Обычно мне хватает AuthMatrix.

Логика работы следующая. Логинимся в систему, например от администратора. Снифаем трафик по ходу того, как бегаем по разным разделам, доступным выбранному юзеру. Потом на вкладке Target или Proxy выбираем необходимые запросы и отправляем их в плагин через соответствующий пункт в контекстном меню.

Отправляем запросы в плагин AuthMatrix
Отправляем запросы в плагин AuthMatrix

После этого переходим на вкладку с плагином, где видим наши запросы.

Вкладка плагина AuthMatrix
Вкладка плагина AuthMatrix

Теперь нужно добавить пользователей. Это можно сделать, если нажать на кнопку New User и ввести имя пользователя. Теперь в таблице Cookies нужно заполнить соответствующие данные для каждого из созданных пользователей. Куки, которые вы здесь укажете, будут добавлены к тем, что находятся в запросе.

Настройка плагина AuthMatrix
Настройка плагина AuthMatrix

В примере я планирую проверить доступность страниц установки и настройки безопасности от админа (пользователь root) и анонима (пользователь guest). Поэтому куки для Guest пусты.

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

Теперь надо отметить чекбоксы соответствия: какие пользователи или роли какие запросы могут выполнять. В моем случае оба запроса могут выполнять только админы, что я и указал. После этой настройки остается только нажать на кнопку Run и чуток подождать.

Результаты работы плагина AuthMatrix
Результаты работы плагина AuthMatrix

Результаты тестирования отображаются в таблице в виде цветовых индикаторов. Зеленый цвет означает, что поведение нормальное, ответ от сервера был проверен с помощью регулярного выражения, указанного в Response Regex, и он соответствует ожиданию. То есть в ответе для пользователя Root (роль админа) он попадает в regex, а в ответе для пользователя Guest (роль анонима) — нет.

Детали проверки системы ролей плагином AuthMatrix. Все ОK
Детали проверки системы ролей плагином AuthMatrix. Все ОK

Красный цвет сигнализирует о том, что в этом месте, возможно, существует уязвимость (то есть ответ в обоих случаях соответствует регулярному выражению).

Детали проверки системы ролей плагином AuthMatrix. Возможная уязвимость!
Детали проверки системы ролей плагином AuthMatrix. Возможная уязвимость!

Существует еще и синий цвет, его вы увидите в том случае, когда расширение предполагает, что результат может быть ложноположительным.

Помимо куки, плагин поддерживает кастомные заголовки. Это позволяет покрыть случаи, когда авторизация выполняется при помощи различных токенов, например Bearer. Данный столбец можно добавить при помощи кнопки New Header.

Кроме этого есть возможность задать сложные цепочки действий. Например, если необходимо получать для каждого запроса валидный токен CSRF. Для добавления звена такой цепочки есть кнопка New Chain. Подробнее об этом можно прочитать в официальном репозитории плагина.

Autorize добавляет ко всему этому еще несколько интересных опций. Например, в нем можно автоматически проверять все проходящие через прокси запросы.

Автоматическая проверка всех входящих запросов в плагине Autorize
Автоматическая проверка всех входящих запросов в плагине Autorize

Оба расширения могут сохранять текущее состояние и настройки в отдельный файл, а Autorize умеет генерировать отчеты с результатами тестирования.

Страница расширения AuthMatrix на GitHub

Страница расширения Autorize на GitHub

Burp HTTP Mock

HTTPMock может эмулировать произвольные ответы от сервера. Это полезно для тестирования ошибок на стороне фронтенда. С повсеместным засильем SPA, REST API и мобильных приложений это просто штука мастхев.

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

Отправка ответа от сервера в расширение HTTPMock
Отправка ответа от сервера в расширение HTTPMock

Теперь во вкладке HTTPMock в разделе Mock rules появится ваш ответ. Столбцы Host, Port и File отвечают за адрес, к которому будет эмулироваться ответ из Response editor. Здесь можно писать регулярные выражения, что добавляет гибкости.

Я взял попавшееся под руку приложение для заказа пиццы и перехватил пакет с запросом информации о текущем пользователе. Добавил ответ на него в HTTPMock и изменил параметр count_points, который отвечает за количество бонусных баллов.

Редактирование эмулируемого ответа
Редактирование эмулируемого ответа

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

Подмена ответа от сервера через плагин HTTPMock
Подмена ответа от сервера через плагин HTTPMock

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

Страница расширения на GitHub

BypassWAF

Расширение с громким названием BypassWAF, написанное Джошем Берри (Josh Berry), позволяет пользоваться рядом трюков, которые помогут в нелегкой борьбе с навязчивым файрволом. Если этот зверь не дает вам спокойно раскручивать очередную SQL-инъекцию или вовсе режет ваши безобидные запросы, то BypassWAF — ваш выбор.

Среди трюков имеются такие штуки, как подмена популярных заголовков X-Originating-IP, X-Forwarded-For, X-Remote-IP, X-Remote-Addr (бывает, что запросы с локальной машины проходят мимо пристального взора WAF), различные манипуляции с Content-Type (случается, что под фильтрацию не попадают какие-то MIME-типы), разнообразная обфускация отправляемых параметров и все в таком духе. Настройка всего этого безобразия производится в отдельном табе Bypass WAF.

Настройка расширения BypassWAF
Настройка расширения BypassWAF

После внесения изменений нужно нажать на кнопку Set Configuration.

Чтобы расширение начало обрабатывать запросы, вам нужно перенаправить исходящий трафик в него. Для этого на вкладке Sessions в настройках проекта добавьте новое правило для обработки трафика.

Настраиваем дополнительную обработку трафика плагином BypassWAF
Настраиваем дополнительную обработку трафика плагином BypassWAF

На закладке Scope можете указать, трафик каких утилит должен проходить через BypassWAF, и дополнительно настроить фильтрацию определенных URL.

Указываем утилиты, трафик которых должен дополнительно проходить через BypassWAF
Указываем утилиты, трафик которых должен дополнительно проходить через BypassWAF

Например, я указал, чтобы весь трафик из Repeater уходил сначала в BypassWAF, а затем на сервер.

Запрос, модифицированный плагином BypassWAF
Запрос, модифицированный плагином BypassWAF

Страница расширения на GitHub

Burp SSL Scanner

Этот плагин проверит на прочность защищенное соединение с сервером. Здесь довольно внушительный список проверок, которые позволяют определить типичные слабые места в протоколах SSL и TLS. Тут вам и POODLE, и устаревшие версии SSL, и BREACH, и старинный Heartbleed (да, он еще встречается). Полный список вы можете найти на страничке репозитория на GitHub. Почти все проверки были портированы с небезызвестного скрипта testssl.sh. Теперь не нужно отрываться от Burp, чтобы выполнить эти тесты. Надо отметить, что расширение не поддерживает протокол TLS версии 1.3.

У плагина есть свой мини-интерфейс на отдельной вкладке SSL Scanner. Использовать его довольно легко. Вбиваем требуемый хост в поле Target и жмем кнопку Start Scanning.

Вкладка плагина SSL Scanner для тестирования защищенного соединения
Вкладка плагина SSL Scanner для тестирования защищенного соединения

По дефолту проверяется 443-й порт, но ничто не мешает указать кастомный порт через двоеточие.

Результаты сканирования сервера через плагин SSL Scanner
Результаты сканирования сервера через плагин SSL Scanner

Вы также можете отправлять в плагин любой URL, если из контекстного меняю выберете пункт Send URL to SSL Scanner.

Из минусов — не хватает кнопки «Остановить сканирование», так как оно имеет тенденцию затягиваться, особенно когда сервер очень хорошо отвечает на запросы.

Страница плагина на GitHub

J2EEScan

Напоследок парочка расширений для любимой Java. Первый — это очередной плагин-старичок авторства Энрико Миланезе (Enrico Milanese). Обнаруживает и тестирует различные J2EE (Java 2 Enterprise Edition) приложения на наличие известных уязвимостей. В арсенале расширения имеются такие старые добрые дыры, как JBoss SEAM Remote Command Execution (CVE-2010-1871), Expression Language Injection (CVE-2011-2730) и относительно новые вроде Apache Struts: S2-032 (CVE-2016-3081). Учитывая то, насколько сильно сопротивляются обновлениям энтерпрайз-решения, плагин бывает довольно полезен и периодически выручает интересными находками.

Плагин не требует никаких настроек, дополнительной возни не просит. Устанавливаем его, и он тихонько отрабатывает во время активного сканирования.

Информация, обнаруженная плагином J2EEScan
Информация, обнаруженная плагином J2EEScan

Страница расширения на GitHub

Freddy the Serial(isation) Killer

И последний плагин, о котором я хотел рассказать, — Freddy the Serial(isation) Killer.

В последнее время стали очень популярны всевозможные атаки на десереализацию и шаблонизаторы. Особенно отличились на этом поприще некоторые Java-проекты типа Spring, WebLogic, Apache Commons. Это расширение как раз и помогает обнаружить проблемы десериализации и демаршалинга в разных библиотеках и API.

Здесь реализована поддержка разных форматов пейлоада, в том числе YAML и AMF. За основу была взята утилита marshalsec. Полный список поддерживаемых целей вы можете посмотреть на странице репозитория. Хочу также отметить, что, помимо Java, плагин умеет атаковать десериализаторы .NET, такие как FastJson, JavascriptSerializer, XmlSerializer.

Работает «Фредди» во время автоматического сканирования. Никак дополнительно настраивать его не надо, а все найденные уязвимости можно посмотреть в панели Issues.

Страница плагина на GitHub

Итог

Разумеется, это лишь часть полезных расширений для Burp Suite, которые я использую в повседневной работе. Я не упоминал тут о небольших плагинах-хелперах типа JSONBeautifier и Swagger Parser, плагине Burp WP, который использует базу данных WPScan для определения уязвимых тем и плагинов в WordPress, и семействе плагинов Copy As, которые позволяют копировать запрос в виде кода на выбранном языке.

Я постарался рассказать о наиболее удачных, по моему мнению, плагинах для Burp Suite. Думаю, у каждого собрался такой вот списочек. Поэтому, если вам есть что добавить, пишите в комментариях.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *