Услуги
Аудит информационной безопасности

Аудит информационной безопасности компании – многоплановая задача, в
которую входит несколько направлений анализа
ИТ-инфраструктуры и оценки защищенности приложений и устройств

Подробнее
Решения
Решения

Аккумулировав весь опыт Digital Security, мы подготовили отдельные решения по аудиту безопасности. Каждое решение объединяет специализированные услуги для конкретной отрасли бизнеса или сферы исследования. Вы можете выбрать любую из них или несколько — в комплексе

О нас
Digital Security

Практическая информационная безопасность – наша специализация и любимое дело. Уже 18 лет мы помогаем нашим клиентам уберечь сервисы и системы от киберугроз, а также активно участвуем в развитии мирового ИБ-сообщества

Подробнее
Экспертиза
Экспертиза

Для клиентов Digital Security работает команда экспертов ИБ мирового уровня. Мы получаем благодарности за вклад в обеспечение безопасности от лидеров ИТ-индустрии, а также подтверждаем свои навыки международными сертификатами в области ИБ

Подробнее
Ресурсы
Ресурсы

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

Подробнее

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

Посмотреть раздел

Масштабные исследования и аналитические обзоры. Описания хакерских инструментов и техник

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

Видеоархив наших вебинаров и конференций. А также анонсы предстоящих мероприятий

Руководства, презентации, чек-листы. Гайды для повышения уровня осведомленности в вопросах ИБ

Наверх

Burp и его друзья

25.11.2020 /
Прочитать позже

    Отправим материал на:

    Burp и его друзья

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

    Кратко о Burp Suite

    Burp Suite предназначен для анализа и поиска уязвимостей в веб-приложениях, а также последующего проведения атак. Благодаря богатому набору инструментов, входящих в него, Burp позволяет работать с HTTP-запросами и ответами, вмешиваться в механизм аутентификации, фаззить параметры в запросах, составлять карту веб-приложения и многое-многое другое.

    Удобство Burp Suite заключается в том, что все утилиты и плагины, которые дополняют его, могут взаимодействовать друг с другом. В настройках браузера вы можете установить в качестве прокси Burp Suite (для сайтов, работающих по HTTPS, также будет нужно установить сгенерированный TLS-сертификат Burp). В этом случае все ваши действия в браузере, а именно отправленные запросы и полученные ответы, будут сохраняться в Burp Proxy. Кроме браузера, на десктопе можно попробовать перенаправить в Burp HTTP-трафик из мобильных приложений, да и вообще любой HTTP-трафик, будь то десктопное приложение или какое-нибудь IoT устройство. HTTP-запросы из истории Proxy можно пересылать в другие инструменты и работать с ними.

    Например, вам нужно проверить, можно ли устроить bruteforce-атаку на подбор OTP-кода. Для этого вам нужно перехватить запрос на проверку OTP…

    … и отправить этот запрос в инструмент Intruder.
    После этого нам достаточно будет выделить место в HTTP-запросе, которое нужно атаковать, и настроить значения, которые будут применяться, – в данном случае у нас перебор чисел от 0000 до 9999.

    Либо можно воспользоваться инструментом Repeater для того, чтобы вручную выполнять какие-либо проверки, тесты или атаковать веб-приложение. Например, можно легко проэксплуатировать SQL-инъекцию в случае, если какие-нибудь иные инструменты вроде sqlmap не могут с ней справиться.

    Этим инструментарий Burp Suite не ограничивается. Приведем список стандартных инструментов Burp Suite “из коробки”:

    • Proxy — прокси-сервер, позволяющий перехватывать весь HTTP- и WebSocket-трафик между браузером и веб-приложением, а также просматривать историю прошедших через него запросов. Кроме того, Proxy имеет ряд настроек, позволяющих перенаправлять трафик или модифицировать его “на лету”.
    • Scanner — инструмент для сканирования веб-приложения на уязвимости. С версии Burp 2.0 также включает crawler для сбора доступных страниц и endpoint в веб-приложении.
    • Intruder — инструмент для проведения автоматизированных атак и фаззинга веб-приложений.
    • Repeater — инструмент для ручного изменения и повторной отправки конкретных HTTP-запросов, а также для анализа ответов приложения.
    • Sequencer — инструмент для автоматизированного анализа энтропии в ответах от сервера. Это могут быть сессионные идентификаторы или токены. Представьте: у вас есть тысяча псевдослучайных токенов, и нужно узнать, есть ли закономерность в их генерации. В этом случае и пригодится Sequencer. Однако на практике этот инструмент бывает полезен очень редко.
    • Infiltrator — инструмент, который помогает проводить аудит приложений, добавляя в них хуки для потенциально уязвимых мест. Для его использования необходимо, чтобы разработчик установил генерируемый инструментом файл на машину, где запущено приложение. В работе инструмент применяется крайне редко.
    • Clickbandit — инструмент для генерации clickjacking атак. На практике пригождается редко.
    • Decoder — инструмент для кодирования и декодирования данных.
    • Comparer — работает почти как diff, поможет найти различия между двумя большими запросами.
    • Collaborator — внешний сервер, который позволяет проверить различные blind-вектора, когда нужен “отстук” на какой-то публично доступный IP-адрес в интернете.
    • Extender — “волшебная палочка” для добавления расширений.

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

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

     

    Param-miner

    Про param-miner мы упоминали, когда обсуждали Arjun. Этот инструмент аналогичен Arjun, но работает в Burp и, кроме параметров, может находить еще скрытые заголовки и Cookie. Изначально разрабатывался как средство для поиска скрытых параметров, которые могут быть полезны при поиске уязвимостей типа Web Cache Poisoning.

    Плюсы:

    • Плагин помогает находить скрытые GET/POST-параметры, параметры JSON-запроса, HTTP-заголовки, Cookie.
    • Позволяет запускать как анализ нескольких запросов, так и всего трафика.

     

    Минусы:

    • Требует внимания и настройки, чтобы избегать проблем с производительностью и случайным DoS на веб-приложения.
    • В случае если вы решите остановить запущенный процесс поиска параметров, вам придется удалить или отключить плагин — иначе никак.
    • Крайне неудобный UI: настройка плагина производится в отдельном окне, а результаты отображаются только в списке всех уязвимостей и могут легко затеряться или забыться.

     

    Stepper

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

    Самый простой способ использования следующий. Допустим, для каждого нового запроса вам нужно получить новый CSRF-токен. Делать это вручную крайне неудобно. Вместо этого вы можете сделать последовательность в Stepper, которая будет сначала получать CSRF-токен, после чего выполнять нужный вам запрос. Для этого вам нужно будет в первом запросе указать, что является параметром, и добавить его как переменную (csrf_token в примере).

    А затем в следующем запросе указать, куда этот параметр подставить, используя название переменной ($VAR:csrf_token$). В итоге Stepper сможет выполнить корректную последовательность запросов. Результаты подстановки можно будет увидеть во вкладке Stepper Replacements.

    Кроме того, этот параметр можно использовать в другом инструменте, например в Repeater, указав в запросе переменную как $VAR:Test:csrf_token$:

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

    Плюсы:

    • Существует возможность создавать произвольные последовательности HTTP-запросов.
    • Для извлечения интересующих параметров из запросов и ответов используются регулярные выражения, что дает определенную гибкость в конфигурировании последовательности.
    • Есть глобальные переменные, которые можно использовать в Repeater.

     

    Минус:

    • Отсутствует режим для фаззинга последовательности запросов, аналогичный Intruder.

     

    Turbo intruder

    Turbo Intruder — более быстрый аналог Intruder, оснащенный скриптовым движком для отправки большого количества HTTP-запросов и анализа результатов. Полезен, если ВАМ НУЖНА СКОРОСТЬ! Очень эффективен при поиске уязвимостей, связанных с «состоянием гонки» (Race Condition), поскольку имеет внутри небольшой скриптовый движок на Python, в котором есть специальные функции для тестирования Race Condition (например, одномоментная отправка запросов). Возможности расширения позволяют заскриптовать различную логику, например многоступенчатую аутентификацию.
    Пример простой bruteforce-атаки с использованием Turbo Intruder:

    Для сравнения устроим с помощью Intruder и Turbo Intruder bruteforce-атаку для подбора OTP, состоящего из 4-х цифр от 0000 до 9999. Будем использовать 50 потоков. В нашем эксперименте Turbo Intruder справился всего за 18 секунд, в то время как Intruder за 18 секунд совершил лишь примерно 1000 запросов!

     

    Плюсы:

    • Быстрый. По словам разработчиков, опережает даже скрипты на Go.
    • Может быть запущен автономно через командную строку.
    • Скриптовый движок на Python позволяет обеспечить гибкость, а значит может работать с многоступенчатыми последовательностями атак и отправлять запросы любого вида (может быть полезно при попытке эксплуатации атак HTTP Request Smuggling).
    • Собственный стек HTTP позволяет отправлять запросы, которые нарушают корректную работу некоторых библиотек, а также позволяет добиться хорошей скорости отправки запросов.
    • Удобная система фильтров анализа отправленных запросов и полученных ответов.
    • Существуют различные шаблоны скриптов.

     

    Минусы:

    • Сложнее использовать, чем стандартный Intruder.
    • Написание скриптов в окне без подсветки синтаксиса и мощи современных IDE довольно неудобно, кроме того эти скрипты сложно отлаживать.
    • Интерфейс в отдельном от Burp окне.
    • По словам разработчиков, сетевой стек не так надежен, как ядро ​​Burp.
    • Может стать причиной DoS, поэтому рекомендуется отслеживать производительность приложений во время атак.

     

    Freddy

    Freddy — плагин, который позволяет проверить уязвимости, связанные с Java и .NET десериализацией в веб-приложениях. Может работать в нескольких режимах, а также добавляет дополнительные проверки при использовании стандартного Burp-сканирования. Имеет под капотом довольно большую библиотеку различных эксплоитов и проверок для десериализации.

    Примеры уязвимостей, которые может обнаруживать Freddy:

    Плюсы:

    • Пассивный режим сканирования может обнаруживать использование потенциально опасных библиотек сериализации и API-интерфейсов, анализируя сигнатуры в HTTP-запросах и HTTP-ответы для поиска исключений, выдаваемые целевыми библиотеками.
    • Активный режим сканирования добавляет проверки в стандартный Burp Scanner, для обнаружения уязвимостей используются различные методы.
    • Добавляет в Intruder словарь с различными проверками для поиска баг десериализации.

     

    Backslash Powered Scanner

    Backslash Scanner — еще один плагин, который неплохо дополняет стандартные проверки Active Scanner. Внутри плагина используются специальные техники, позволяющие обнаружить нестандартное поведение веб-приложений при обработке запросов с различными последовательностями спецсимволов. Это бывает очень полезно в случае, если на стороне веб-приложения используется фильтрация/WAF или сама уязвимость нетривиальная и сложно эксплуатируемая. В этом случае Backslash Scanner укажет вам на те места в запросе, которые требуют пристального внимания, что будет хорошим стартом для анализа уязвимости.

    Пример репорта Backslash Scanner:

    Плюсы:

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

     

    Минус:

    • Может давать false-positive и потому требует некоторой настройки для конкретных веб-приложений.

     

    Active Scan ++

    Active Scan ++ также дополняет стандартный сканер Burp Suite некоторыми проверками, которые не входят в стандартный комплект поставки Burp.

    Плюсы:

    • Не требует никаких дополнительных настроек.
    • Периодически обновляется, добавляются новые техники, основанные на новых исследованиях.

     

    J2EEScan

    J2EEScan — плагин, заточенный для атак на J2EE (Java 2 Enterprise Edition) приложения. «Под капотом» имеет большое количество проверок, связанных с Java-приложениям, в том числе проверки на известные уязвимости вроде “Apache Struts”. Проверки также добавляются в стандартный Burp Scanner. На практике этот сканер далеко не часто что-либо находит, но иметь его под рукой точно стоит.

    Плюс:

    • Не требует никаких дополнительных настроек.

    Минус:

    • Плагин давно не обновлялся.

     

    Upload Scanner

    Upload Scanner — еще один плагин для дополнения проверок Active Scanner. Поможет проверить точки загрузки файлов на такие известные уязвимости, как ImageTragic, инъекции PHP в метадату изображения, загрузку файла htaccess и т.д.

    Плюсы:

    • Имеет гибкие настройки, позволяющие указать форматы файлов, используемые модули, что позволяет уменьшить количество отправляемых плагинов запросов.
    • Кроме проверки уязвимостей, связанных с обработкой изображений, плагин умеет искать Code Injection, XSS, обход CSP и т.д.

     

    Error Message Checks

    Error Message Checks — плагин, который пассивно обнаруживает различные stacktrace и вывод ошибок в веб-приложении, которые могут появиться при сканировании или crawling’е. Это очень полезно, поскольку не все сканеры могут обнаружить сообщения об ошибках сервера и оповестить о них, потому это часто остается незамеченным для аудитора, который смотрит на приложение со стороны пользователя.

    Плюсы:

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

     

    Decoder Improved

    Decoder Improved — по сути, улучшенный стандартный Decoder. Встроенный Decoder в Burp не так уж и хорош и имеет свои недостатки: в нём нет вкладок, неудобно использовать Hex-редактор, к тому же имеет довольно скудное количество возможных форматов данных. С этими проблемами и помогает справится Decoder Improved.

    Плюсы:

    • Поддерживает всё, что есть в Decoder, а также позволяет использовать алгоритмы сжатия (Gzip, Zlib), хешировать данные, а также меняет систему счисления (от base 2 до base 32).
    • Поддерживает функциональность вкладок.
    • Имеет улучшенный Hex-редактор.
    • Предлагает функциональность регулярных выражений, что позволяет в процессе кодирования/декодирования легко подменять данные.
    • Поддерживает режим замены только спецсимволов HTML/URL, в то время как буквенно-цифровые символы остаются без изменений.

     

    Hackvertor

    Hackvertor — плагин, который также поможет преобразовать данные в запросах и ответах. Только для этого не придется переключаться между вкладками. При работе с ним в Repeater или Intruder появляется возможность оборачивать пейлоады в специальные теги, с помощью которых задаются правила кодирования или декодирования данных. А все преобразования происходят “на лету” во время отправки запроса. А еще у него есть форк, который работает с pareq. Он пригодится при тестировании 3D Secure от нашего коллеги web_rock.

    Плюсы:

    • Позволяет кодировать и декодировать данные на лету.
    • «Под капотом» содержится огромное количество различных правил преобразования, которые также можно сочетать друг с другом.
    • Шаблоны XSS-пейлоадов “из коробки”.
    • Возможность создания своих правил.
    • Возможность использования прямо из Repeater или Intruder.

     

    Logger++

    Logger++ плагин, главная задача которого — тщательно логировать все запросы, происходящие внутри Burp Suite. Как те, что просто “летят” из браузера, так и те, что генерируются плагинами и сканером. Плагин устраняет основной недостаток встроенного Proxy History — логирование запросов только из браузера и отсутствие прочих запросов из “недр” Burp, например запросов конкретного плагина, запросов из других инструментов (например, Repeater) или сканера в текущий момент. Плагин поддерживает фильтрацию логов. Так, вы можете найти все POST-запросы без CSRF-токена. Для этого нужно, побродив по ресурсу, отфильтровать историю запросов по методу запроса и интересующему параметру.

    Плюсы:

    • Логирование всех запросов из инструментов и плагинов.
    • Наличие фильтрации для быстрого поиска по логу запросов.
    • Конфигурация плагина позволяет выбирать необходимые для логирования инструменты.
    • Существует возможность импортировать запросы из OWASP ZAP, Proxy History и WStalker.
    • Существует возможность экспорта логов в формате JSON и CSV.

     

    Минусы:

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

     

    HTTP Mock

    HTTP Mock — плагин, который будет полезен, если вам надо подменять не просто кусочек ответа (тогда вам поможет Match&Replace в настройках Proxy Intercept), а целиком весь ответ для определенных URL.

    Плюсы:

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

     

    Request highlighter

    Request highlighter — плагин для подсветки HTTP-запросов на основе содержимого заголовков. Удобно для выделения уникальных Cookies, хостов, токенов аутентификации, пользовательских заголовков. С помощью плагина во вкладке Proxy History можно помечать запросы, относящиеся к различным сессиям, хостам, браузерам или устройствам. Данная функциональность может быть очень полезна, если нужно протестировать сайт с нескольких браузеров с разными пользовательскими сессиями — плагин будет подсвечивать запросы соответствующими цветами.

    Плюс:

    • Удобная подсветка.

    Минус:

    • Поиск и выделение осуществляется только по заголовкам запроса — создать выделения на основе заголовков ответа не удастся.

     

    Autorize

    Autorize — плагин для проверки уязвимостей, связанных с разграничением прав доступа в веб-приложении. Удобен и прост в работе. По большей части всё, что нужно, — это просто указать, где в запросе места, по которым определяется сессия пользователя, и подставить нужные значения. Далее плагин будет повторять все запросы, которые вы делаете в браузер, но уже с другими сессионными идентификаторами, что позволяет очень быстро проверить IDOR’ы в приложении.

    Плюсы:

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

     

    HTTP Request Smuggler

    HTTP Request Smuggler — плагин для проверки недавно заново открытых атак типа HTTP Request Smuggling. Несмотря на то, что стандартный сканер Burp Suite также выполняет проверки на данную уязвимость. Этот плагин обновляется чаще, и его можно запускать отдельно от остального сканирования, что бывает удобно, если нужно проверить только эту уязвимость.

     

    PHP Object Injection Check / PHP Object Injection Slinger

    PHP Object Injection Check и PHP Object Injection Slinger — плагины, которые позволяют проверить уязвимости в десериализации PHP-объектов. Первый просто добавляет несколько проверок в стандартный Burp Scanner, а второй представляет собой незасимый сканер, в который отдельно нужно добавлять запросы. PHP Object Injection Slinger содержит в себе множество различных проверок из PHPGGC — инструмента для создания payload’ов для десериализации в PHP.

     

    CSP Auditor

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

    Плюс:

    • Удобный вид для чтения CSP.

    Минус:

    • Редко обновляется.

     

    Заключение

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

    Больше интересных статей

    Подпишитесь на наши обновления

    Узнавайте все новости первыми

      Мы используем куки. Никогда такого не было, объясните

      ОК