В этой статье пойдет речь о том, как провести пентестинг с помощью программы Burp Suite. Пользователи узнают все особенности и характерные черты данного инструмента.
Введение
Если человек впервые использует Burp Suite, то на YouTube можно найти подобное видео, чтобы ознакомиться с пользовательским интерфейсом программы.
Помимо этого, есть плейлист под названием «Burp Suite Essentials», видео в котором помогут разобраться с функционалом инструмента.
Чтобы осуществить тестирование на проникновение с помощью Burp, следует сделать следующее:
- Использовать встроенный браузер Burp, который не требует дополнительной настройки. Нужно перейти по следующему пути: «Proxy» > «Intercept» и выбрать параметр «Open Browser». Откроется новый сеанс браузера, в котором весь трафик будет автоматически проксироваться через Burp. Пользователь может использовать это для тестирования по протоколу HTTPS без необходимости установки сертификата из центра сертификации Burp.
- Использовать другой браузер по своему выбору. По разным причинам пользователь может не захотеть использовать встроенный браузер Burp. В этом случае ему необходимо выполнить некоторые дополнительные настройки, чтобы подготовить свой браузер для работы с Burp. Кроме того, необходимо не забыть загрузить сертификат из центра сертификации Burp.
Как только пользователь открывает Burp и либо встроенный браузер, либо какой-то другой, он переходит по пути: «Proxy» > «Intercept», чтобы убедитесь, что перехват включен (если на кнопке написано «Intercept is off», следует нажать на нее, чтобы изменить статус перехвата). Затем пользователь переходит по любой ссылке в выбранном браузере.
Каждый HTTP-запрос, осуществленный браузером, отображается на вкладке «Intercept». Пользователь может просматривать каждое сообщение и при необходимости редактировать его. Когда он закончит вносить изменения, то нажмет на кнопку «Forward», чтобы отправить запрос на целевой веб-сервер. Если в какой-либо момент будут перехвачены ожидающие отправки сообщения, нужно будет переслать их все, чтобы браузер завершил загрузку страниц.
Пользователь может изменить состояние параметра «Intercept is on / off», чтобы просматривать веб-страницы без перехвата, если ему это требуется.
При просмотре приложения с запущенной программой Burp вкладка «HTTP history» будет вести запись всех запросов и ответов, даже если функция перехвата отключена. Здесь также можно просмотреть серию сделанных пользователем запросов.
Следует всего лишь выбрать элемент из таблицы, чтобы просмотреть полный запрос и ответ на панели редактора сообщений.
Пользователь также может использовать Inspector для получения быстрого доступа к различным функциям, которые помогают анализировать потенциально интересные элементы, найденные в сообщениях. Например, если человек углубится в закодированный элемент в Inspector, инструмент применит соответствующую последовательность шагов декодирования, чтобы можно было изучить его в более удобочитаемой форме.
Если говорить о сообщениях, таких как в Burp Repeater, то стоит отметить, что пользователь может внести изменения в это декодированное значение в Inspector. Они будут автоматически применены к значению по мере ввода.
Во время просмотра веб-страниц Burp также по умолчанию создает карту сайта целевого приложения. Пользователь может просмотреть ее по пути: «Target» > «Site map».
Раздел «Site map» содержит все URL-адреса, которые пользователь открывал в своем браузере, а также весь контент, который Burp получил из ответов на запросы (например, путем анализа ссылок из HTML-ответов). Запрошенные элементы отображаются черным цветом, а все иные – серым. Можно развернуть все дерево элементов, выбрать отдельные из них и просмотреть полные запросы и ответы (если они доступны).
Burp Suite был разработан как практический инструмент, при использовании которого пользователь контролирует все его действия. В основе рабочего процесса во время тестирования на проникновение в Burp есть возможность передачи HTTP-запросов между инструментами программы для выполнения определенных задач.
Пользователь может отправлять сообщения с вкладок «Intercept», «HTTP history» или «Site map», а также в любом другом месте Burp, где будет доступна опция отправки HTTP-сообщения. Для этого человек выбирает одно или несколько сообщений и с помощью контекстного меню отправляет запрос другому инструменту.
Инструменты Burp Suite, которые пользователь будет использовать для конкретных задач:
- Scanner – используется для автоматического сканирования веб-сайтов на наличие контента и уязвимостей в системе безопасности.
- Intruder – позволяет выполнять индивидуальные автоматические атаки и все виды тестовых задач.
- Repeater – используется для ручного изменения и повторного выполнения отдельных HTTP-запросов.
- Collaborator client – используется для создания полезных нагрузок Burp и мониторинга результатов внеполосных взаимодействий.
- Clickbandit – используется для создания эксплойтов для взлома уязвимых приложений.
- Sequencer – используется для анализа качества случайности в токенах сеанса приложения.
- Decoder – позволяет преобразовывать биты прикладных данных, используя общие схемы кодирования и декодирования.
- Comparer – используется для визуального сравнения битов данных приложения и поиска интересных различий.
Пользователь может комбинировать различные инструменты Burp между собой для выполнения задач тестирования, начиная от очень простых и заканчивая сложными и специализированными.
Burp Suite для пентестинга
Burp позволяет эффективно сочетать ручные и автоматизированные методы, обеспечивает пользователю полный контроль над всеми действиями и предоставляет подробную информацию и анализ приложений, которые проходят тестирование.
На приведенной ниже диаграмме представлен подробный обзор ключевых частей рабочего процесса тестирования на проникновение от Burp Suite.
Разведка и анализ
Инструмент Proxy лежит в основе рабочего процесса Burp. Он позволяет использовать встроенный браузер Burp или собственный внешний браузер для навигации по приложению, в то время как программа собирает всю необходимую информацию и дает возможность легко инициировать дальнейшие действия. В типичном тестировании фаза разведки и анализа включает в себя задачи, описанные ниже.
Создание карты приложения вручную
Используя свой браузер при проксировании трафика через Burp, вручную нужно составить карту приложения, перейдя по ссылкам, отправив формы и пройдя многоступенчатые процессы. Это заполнит историю прокси-сервера и создаст нужную карту целевого сайта со всем запрошенным контентом и (с помощью сканирования в реальном времени) добавит на нее любой дополнительный контент, который может быть выведен из ответов приложений (через ссылки, формы и т. д.). Пользователю следует просмотреть все незапрошенные элементы (показаны серым цветом на карте сайта) и запросить их с помощью своего браузера.
Автоматическое сопоставление элементов (при необходимости)
При необходимости пользователь также может использовать Burp для автоматизации процесса сопоставления элементов различными способами:
- Выполнить автоматическое сканирование для обхода содержимого приложения.
- Использовать функцию обнаружения содержимого, чтобы найти дополнительное содержимое, не связанное с видимым, которое человек может просмотреть.
- Выполнить пользовательское обнаружение элементов с помощью Burp Intruder, чтобы просмотреть списки файлов и каталогов и выявить нужные точки.
Следует понимать, что перед выполнением любых действий для автоматизации процессов может потребоваться обновить различные настройки Burp, касающиеся, к примеру, целевой области и обработки сеанса.
Анализ поверхности атаки приложения
Процесс сопоставления элементов заполняет историю прокси-сервера и карту целевого сайта всей информацией, полученной Burp о приложении. Оба этих хранилища включают в себя функции, помогающие анализировать содержащуюся в них информацию и оценивать поверхность атаки, которую имеет тестируемое приложение. Кроме того, пользователь может использовать Target Analyzer от Burp, чтобы понимать масштабы поверхности атаки и видеть различные типы URL-адресов, применяемых приложением.
Настройка компонентов
Burp содержит множество параметров конфигурации, которые необходимо использовать на разных этапах тестирования, чтобы гарантировать, что программа работает с целевым приложением именно так, как требуется.
- Дисплей. Можно настроить шрифт и набор символов, используемых для отображения HTTP-сообщений, а также шрифт в собственном пользовательском интерфейсе Burp.
- Целевая область. Конфигурация целевой области сообщает Burp элементы, которые в данный момент интересуют пользователя и которые он готов атаковать. Ее нужно настроить на ранней стадии тестирования, так как компонент будет контролировать, какие элементы отображаются в истории прокси-сервера и на карте целевого сайта, какие сообщения перехватываются в прокси-сервере и какие элементы должны быть проверены.
- Аутентификация платформы. Если сервер приложений использует аутентификацию платформы любого уровня (HTTP), то нужно настроить Burp для ее автоматической обработки.
- Обработка сеансов. Многие приложения содержат функции, которые могут препятствовать автоматическому или ручному тестированию, такие как немедленное завершение сеанса, использование токенов для каждого запроса и многоступенчатые процессы с отслеживанием состояния. Пользователь может настроить Burp таким образом, чтобы программа легко справлялась с большинством из этих проблем, используя комбинацию правил обработки сеансов и макросов.
- Планирование задач. Есть возможность настроить Burp для выполнения задач в указанное время или с заданными интервалами.
Обнаружение и эксплуатация уязвимостей
После завершения разведки и анализа и выбора необходимой конфигурации Burp пользователь может начать проверку приложения на наличие распространенных уязвимостей. На этом этапе наиболее эффективно использовать сразу несколько инструментов Burp, пересылая отдельные запросы между ними для выполнения различных задач, а также возвращаясь в браузер для проведения дополнительных тестов. При использовании Burp пользователь может использовать контекстное меню для передачи элементов между инструментами и выполнения нужных действий.
Burp по умолчанию автоматически выполняет пассивное сканирование всех запросов и ответов, проходящих через прокси-сервер, в режиме реального времени. Поэтому, прежде чем пользователь начнет активно исследовать приложение, он может обнаружить, что сканер уже зафиксировал некоторые проблемы, требующие более тщательного анализа.
Инструменты Burp можно использовать множеством различных способов для поддержки процесса активного тестирования на наличие уязвимостей. Ниже приведены некоторые типичные примеры.
Ошибки ввода
Для решения таких проблем, как инъекции SQL, межсайтовые скрипты и атаки типа file path traversal, можно использовать Burp следующим образом:
- Выполнять сканирование с помощью сканера Burp. Пользователь выбирает элементы в любом месте программы и начинает сканирование с помощью контекстного меню. Он также может настроить Burp для выполнения сканирования всех запросов, проходящих через прокси-сервер, в режиме реального времени.
- Задействовать Burp Intruder для выполнения fuzzing, используя свои собственные скрипты и полезные нагрузки.
- Есть возможность отправлять отдельные запросы в Burp Repeater, чтобы вручную изменять их и переправлять.
- Выявив некоторые типы ошибок, пользователь будет активно исследовать их с помощью Burp Intruder. Например, часто применяется рекурсивный тип полезной нагрузки Grep для анализа уязвимостей к SQL-инъекциям.
Недостатки логики и сборки
Для решения таких проблем, как небезопасное использование элементов управления на стороне клиента, невозможность принудительной блокировки учетной записи и возможность пропуска ключевых шагов в многоступенчатых процессах, обычно требуется выполнить следующее:
- Тщательный просмотр истории прокси-сервера позволяет определить соответствующие запросы, которые следует изучить.
- Пользователь может проверить обработку приложением неожиданных запросов, отправив их по отдельности с помощью Burp Repeater или включив перехват прокси-сервера и вручную изменяя запросы в режиме реального времени во время использования браузера.
- Можно также активно пользоваться другими недостатками программы в ее логике и сборке, используя Burp Intruder. Например, злоумышленники часто занимаются перечислением допустимых имен пользователей, подбором паролей, циклическим перебором предсказуемых токенов сеанса или токенов восстановления пароля или даже повторным выполнением одного и того же запроса большое количество раз (с использованием полезных нагрузок нулевого типа).
- Многие недостатки логики и сборки могут быть проанализированы с помощью функции сопоставления/замены прокси-сервера Burp или правил обработки сеансов для систематического изменения запросов.
Проблемы с системой контроля и управления доступом
Burp содержит несколько функций, которые помогут при тестировании на наличие уязвимостей контроля и управления доступом:
- Можно использовать опцию «Compare site maps» для различных задач, в том числе: определения функций, которые видны одному пользователю, а другому — нет; проверки того, может ли пользователь с низкими привилегиями получать доступ к параметрам, которые должны быть ему не доступны; определения того, где идентификаторы конкретных пользователей применяются для разделения доступа к данным.
- Есть возможность использовать разные браузеры для доступа к приложению в вариативных пользовательских контекстах и применить отдельный листенер прокси-сервера Burp для каждого из них (задействуя разные порты). Помимо этого, есть дополнительные окна истории прокси-сервера (можно открыть через контекстное меню). Пользователь имеет возможность настроить фильтр отображения в каждом окне, чтобы показывать элементы, полученные только на определенном порту листенера. При использовании приложения в браузере в каждом окне истории будут отображаться элементы, которые соответствуют определенному пользовательскому контексту. Есть функция «Request in browser in current browser session» (выполняемая через контекстное меню) для пересылки запросов между браузерами, чтобы определить, как они обрабатываются в контексте этой программы.
- Многие уязвимости, связанные с повышением привилегий появляются, когда приложение передает идентификатор пользователя в параметре запроса и использует его для идентификации текущего пользовательского контекста. Пользователь может активно использовать этот тип уязвимости с помощью Burp Intruder для циклического перебора идентификаторов в соответствующем формате (например, с использованием чисел или пользовательских типов полезной нагрузки итератора). Он также может настроить процесс извлечения элементов Grep для получения интересных данных о других пользователях из ответов приложения.
Больше уязвимостей
Burp содержит функции, которые можно использовать для выполнения и автоматизации практически любой задачи, возникающей при поиске других типов уязвимостей:
- Пользователь может проанализировать содержимое карты целевого сайта на наличие проблем с утечкой информации, используя функции поиска комментариев.
- Выявив возможную уязвимость CSRF, следует использовать генератор CSRF для быстрого создания атаки с подтверждением концепции в HTML. После этого надо применить функцию «Test in browser» для загрузки атаки в браузер, а затем просмотреть результаты и историю прокси-сервера, чтобы проверить, была ли она успешной.
- Burp Sequencer нужен для анализа выборки токенов сеанса из приложения и оценки качества их случайности.
- Для некоторых типов зашифрованных токенов сеанса или других параметров следует использовать типы полезной нагрузки bit flipper и ECB block shuffler в Burp Intruder. Это поможет осуществить «слепое» изменение зашифрованных данных в попытке получить существенный контроль над приложением.
- Помимо этого, можно создать свои собственные расширения Burp для выполнения специализированных или индивидуальных задач.
ЧИТАТЬ ВСЕ СТАТЬИ НА САЙТЕ | ПОДПИСЫВАЙТЕСЬ НА НАШ TELEGRAM КАНАЛ