Керівництво по Burp Suite

Burp Suite для пентестера: повне керівництво по практичному застосуванню

Burp Suite вже давно став галузевим стандартом у сфері кібербезпеки. З його допомогою можна досить швидко та якісно протестувати безпеку або провести аудит будь-якого веб-додатка. І головне, для цього не потрібно нікого наймати – опанувати Burp Suite самотужки не складніше, аніж, скажімо, опанувати Office365. При цьому це один з найпрогресивніших додатків з цифрової безпеки. У цьому матеріалі представлене повне керівництво по практичному застосуванню проксі Burp Suite. Фреймворк знадобиться і пентестерами, і QA-тестувальникам, і веб-майстрам.

Що таке Burp Suite і чим він корисний?

Burp Suite  – це  багатофункціональний кросплатформний проксі-сканер, який містить інструменти для тестування електронних ресурсів, зокрема мобільних і веб-додатків. Розроблений британцем Даффідом Шуттардом у 2003 році на Java. Пізніше ним була створена компанія PortSwigger, яка сьогодні розробляє й підтримує додаток. З детальною історією Burp Suite можна ознайомитись тут.

Burp Suite logo

Burp Suite дозволяє “прослухати” абсолютно все, що проходить через конкретний мережевий порт чи веб-браузер. Таким чином можна виявляти приховані з’єднання, шпигунські скрипти, шкідливі редиректи, витоки даних, баги, вразливості. Аналізувати трафік – перехоплювати, переглядати та змінювати веб-запити.

Також додаток містить інструменти для проведення тестування на проникнення, дозволяє працювати зі словниками, здійснювати брутфорс, фаззінг, енумерацію тощо. Інтегрується з іншими додатками/інструментами та підтримує додаткові плагіни-розширення – BApps. Сумісний з Java/Python(Jython) / Ruby скриптами. Має підтримку API і навіть AI-модуль.

Кожен рядок коду, кожен запит і HTTP-заголовок в Burp Suite можна проаналізувати у режимі реального часу – в візуальному Render або “сирому” RAW/HEX вигляді. Проінспектувати та протестувати будь-який електронний ресурс, відшукати на вкладці Issues потенційні вразливості та багато-багато іншого. В Burp присутній також вбудований шифрувальник даних Decoder/Encoder.

Це далеко не увесь перелік функціоналу та можливостей Burp Suite. І все це подається у надзвичайно елегантному та відформатованому, стильному веб-інтерфейсі. Будь-які інформація доступна для експорту. Для тестувальника і дослідника безпеки Burp Suite – це інструмент №1. Ви можете сконструювати власні шаблони і правила, відпрацьовувати різні сценарії і гіпотези, моделювати кіберзагрози та експлуатувати вразливості, поєднуючи різні техніки, засоби, методики хакерського ремесла.

Також веб-академія PortSwigger пропонує безкоштовні курси, після проходження яких можна пройти іспит на отримання сертифікат майстра BurpSuite Burp Suite Certified Ptactitioner (BSCP).

На навчальній CTF-платформі TryHackMe є чудовий модуль по вивченню BurpSuite: https://tryhackme.com/module/learn-burp-suite

Встановлення і налаштування Burp Suite

BurpSuite надається у 3-х версіях:

  • Community Edition – безкоштовна некомерційна версія Burp Suite, надається безкоштовно, входить до складу дистрибутиву Kali Linux. Містить базовий функціонал: Repeater, Decoder, Sequencer і Comparer.
  • Professional Edition – професійна комерційна версія Burp Suite, містить повністю увесь функціонал Burp Suite, включно з Веб-сканером, сервером для перехоплення (Burp Suite Collaborator) та можливістю зберігати проєкти. Доступ надається по ліцензії, яка коштує ~500$. Можна також протестувати додаток на безкоштовній основі в рамках випробовувального Trial-періоду. Для цього слід написати в технічну підтримку PortSwigger.
  • Enterprise Edition – розширена комерційна версія Burp Suite. На даний момент, доступна у вигляді динамічного DAST-сканера (Dynamic Application Security Testing) для тестування безпеки додатків – Burp Suite DAST. Вартість уточнюється за запитом.

Завантажити будь-який з цих інсталяційних пакетів можна на офіційному сайті PortSwigger. Підтримуються усі популярні платформи: Linux, Windows, MacOS.

Веб-інтерфейс Burp Suite

У даному мануалі ми розглядатимемо повнофункціональну версію Burp Suite PRO.

Burp Suite PRO

Запуск здійснюється командою:

java -jar </path/to/burpsuite.jar>

При першому запуску з’явиться діалогове вікно, де користувачу запропонують створити постійний або тимчасовий проєкт та налаштування. Виконайте дію слідуючи інструкціям та натисніть “Next”.

Після цього завантажиться вікно з веб-інтерфейсом BurpSuite. Він має розгорнуту систему керування й складається з наступних вкладок:

  1. Dashboard — головний робочий стіл Burp Suite, містить виконання задач, результати, журнали подій (панелі Tasks, Event log, Issue Activity, Advistory).
  2. Target — краулер Burp Suite, тут показуються усі ресурси і їх адреси, які сканує та перехоплює проксі. Інструмент дозволяє комплексно проаналізувати досліджуваний веб-ресурс та вибудувати деревовидну структуру з файлів і директорій. Корисний інструмент для аудиту. Для того, щоби результати не губилися в загальному потоці, існує підкатегорія Scope. У ній можна додати адресу конкретного ресурсу, який потрібно проксувати. Або ж додати його через контекстне меню Add to Scope в підкатегорії Site map. Потім треба знайти налаштування “Request Interception Rules” та “Response Interception Rules” й відмітити галочкою опцію And URL Is in target scope. Таким чином проксі буде “слухати” конкретно задану ціль.
  3. Proxy — проксі-сканер Burp Suite, сніффер HTTP-трафіка, працює в режимі MITM (man-in-the-middle). З його допомогою можна перехоплювати та аналізувати веб-трафік. Містить також підкатегорії HTTP History і WebSocket History.
  4. Intruder — інструмент для тестування на проникнення, моделювання і проведення атак. Функціонально схожий на такі інструменти командного рядка як Wfuzz та ffuf. В Intruder доступні таки типи атак як: Sniper (почергове надсилання одного списку слів), Battery ram (одночасне таранне надсилання одного списку в різні значення), Pitchfork (робота з різними списками слів), Cluster bomb (комбінований метод Sniper і Pitchfork).
  5. Repeater — обробник HTTP-запитів, дозволяє модифікувати HTTP-заголовки і повторно відправляти їх. Функція корисна для тестування методом проб і помилок.
  6. Sequencer — інструмент аналізу токенів, оцінює їх випадковість/ентропію, перевіряє значення сесійних cookie.
  7. Decoder — спеціальний інструмент декодування/шифрування даних з застосуванням різноманітних алгоритмів: ASCII, BASE64, HEX, SHA и т.д. Також в Decoder можна генерувати хеші.
  8. Comparser — інструмент для аналізу та порівняння даних, пошуку відмінностей.
  9. Logger – історія і логи трафіку.
  10. Organizer – додатковий інструмент для організації роботи в Burp Suite. З допомогою Organizer можна зберегти деякі HTTP-запити на “потім”. Вони зберігаються в таблиці включно з усіма даними.
  11. Extensions — робота з плагінами і розширеннями Burp Suite. Тут можна додавати, вилучати, сортувати, налаштовувати додатки. Присутній каталог плагінів BApp Store та API-модулів.
  12. Learn – панель навчання.
  13. Search – вбудований пошук по проєктам Burp Suite.
  14. Settings — окрема вкладка з налаштуваннями Burp Suite. Містить глобальні налаштування Global Settings (на рівні додатку) і проєктні Project Settings. Для переходу у потрібні налаштування можна також скористатись пошуком, який тут присутній.

Між деякими вкладками можна перемикатися з допомогою “гарячих” клавіш:

  • Ctrl + Shift + D – перейти до робочого стола Dashboard;
  • Ctrl + Shift + T – перейти на вкладку цілі Target;
  • Ctrl + Shift + P – перейти на вкладку проксі Proxy;
  • Ctrl + Shift + I– перейти на вкладку експлуатації Intruder;
  • Ctrl + Shift + R – перейти на вкладку повторювача Repeater;
  • Ctrl + O – відправити запит в Organizer.

Налаштування Burp Suite

Щоб BurpSuite почав працювати в ролі проксі-сканера, необхідно спершу його налаштувати. Найперше слід визначити локальний порт (localhost), на якому працюватиме Burp Suite.

Для цього необхідно перейти в меню Proxy -> Proxy Settings -> Proxy Listeners й задати відповідний номер порту. Можна також прив’язати проксі до конкретного мережевого інтерфейсу: Loopback, All interfaces (0.0.0.0), Specific address. По замовчуванню там вказано: 127.0.0.1:8080 для Loopback (тобто локальний хост). Ви можете змінити порт 8080 на будь-який інший, особливо якщо він зайнятий іншим додатком.

Проведемо ряд інших налаштувань:

  • Proxy Interception — увімкнути режим «Always disable», щоб включати режим перхоплення “Intercept on” вручну.
  • Perfomance Feedback — вимикаємо відправку статистичних і технічних даних на сервери BurpSuite.
  • Updates — вимикаємо автоматичне оновлення.
  • SOCKS Proxy — переводимо за необхідності роботу BurpSuite через проксі-сервер.
ЧИТАЙТЕ ТАКОЖ:  Історія шифропанків та їх роль в становленні криптотехнологій. Загадка Сатоші Накамото.

Для подальшого використання налаштувань їх можна зберегти в окремий файл через вкладку Settings і далі Manage global settings -> Project settings -> Save project settings:

Burp Suite project settings

Примітка: В нових версія Burp Suite ці опції можна знайти через вбудований пошук на вкладці Settings.

Не зайвим буде перейти в налаштування Proxy Settings і відрегулювати правила перехоплення, наприклад додати правило для POST-запитів. Для цього необхідно в блоці “Request Interception Rules” (повинна бути включена галочка) натиснути Add й додати нове правило з такими налаштуваннями:

  • Boolean operator: Or
  • Match type: HTTP method
  • Match relationshiop: Matches
  • Match condition: POST

Як встановити сертифікат BurpSuite SSL та зв’язати його з браузером?

Burp Suite містить вбудований Chromium-браузер (Target -> Open browser), через який можна проводити тестування веб-додатків. Але для зручності бажано зв’язати проксі з десктопним браузером. Нижче детально описано як це зробити для різних браузерів, а також як вирішити будь-які проблеми з SSL-сертифікатом Burp Suite.

Firefox

Необхідно перейти в мережеві налаштування браузера Network Settings й вписати в полі Manual Proxy Configurtation мережевий порт, який прослуховує проксі Burp Suite, включивши галочку “Also use this proxy for HTTPS”:

Також у браузері необхідно відкрити налаштування about:preferences#privacy й відключити будь-які зайві опції, зокрема блокування, щоби браузер не заважав роботі проксі.

Для коректної роботи залишилось встановити BurpSuite SSL-сертифікат. Його можна експортувати з Burp Suite Proxy Settings або завантажити напряму за посиланням http://burp (відкрити у тому ж браузері, до якого прив’язали Burp):

Далі натиснути на напис CA Certificate й зберегти отриманий файл у форматі .der:

Після цього перейти у налаштування браузера і в менеджері сертифікатів Security -> Certificates -> Authorities імпортувати файл сертифікату cacert.der, відзначивши дозвіл “Trust this CA to identity websites”:

Firefox certificates settings
Налаштування браузера Firefox
Adding Burp Suite certificate in Firefox
Додавання сертифікату Burp Suite в Firefox
Install Burp Suite certificate in Firefox
Встановлення сертифікату BurpSuite в Firefox

Додатково рекомендую зайти в налаштування Firefox – about:config і перевести опцію network.captive-portal-service.enabled в режим false. Це дозволить позбутись нав’язливих запитів зі сторони Mozilla з підключенням до службового ресурсу detectportal.firefox.com. Загалом, рекомендую ознайомитись з матеріалом Silencing Firefox’s Chattiness for Web App Testing. Можна також скористатись готовим шаблоном блокування від FoxyProxy, або плагіном AutoDrop в BurpSuite.

Chrome

В браузері Chrome налаштовуємо сертифікат по тій самі схемі. Скачуємо і зберігаємо за URL-адресою http://burp сертифікат. Переходимо у налаштування Settings -> Security -> Manange certificates -> Authorities й імпортуємо сертифікт, відзначивши дозвіл “Trust this certificate for identyfying websites”:

Найпростіше налагодити проксі BurpSuite для обох браузер через розширення – FoxyProxy. Для цього достатньо виставити наступні налаштування:

Setup Burp Suite with FoxyProxy

Перевірити роботу проксі BurpSuite дуже просто. Відкриваємо у браузері будь-який сайт і йдемо в меню Target -> Site map –  там повинна з’явитися структура каталогів досліджуваного веб-сайту. Ми побачимо кожне з’єднання, яке пройшло через проксі Burp Suite.

Як вирішити проблеми з Burp Suite SSL?

Іноді можуть виникати помилки в роботі сертифікату Burp Suite. Найчастіше це відбувається після перенесення додатку на новий комп’ютер, або оновлення. В такому випадку необхідно спершу перевірити налаштування генерації SSL в налаштуваннях Proxy -> Proxy settings -> Certificate. Перевірте, щоб була увімкнена опція “Generate CA-signed per-host certificates”:

Тоді в налаштуваннях Proxy -> Proxy settings перегенеруйте сертифікат і експортуйте його в .DER форматі:

 

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

Як додати сертифікат Burp Suite на рівні OS Linux?

Додатково можна додати сертифікат Burp Suite в системне середовище Linux (попередньо конвертувавши його з der в pem формат). Це може усунути помилки SSL, а також позбавить необхідності щоразу додавати сертифікат Burp в новий браузер.

Приклад автоматичного виявлення сертифікату Burp Suite в браузері Chrome на рівні операційної системи Linux

Команди для додавання сертифікату Burp Suite SSL в локальну систему Arch Linux:

  • openssl x509 -inform der -in burp_cert -out burp_cert.pem
  • sudo cp burp_cert.pem /etc/ca-certificates/trust-source/anchors/
  • sudo update-ca-trust
  • sudo trust extract-compat

Для Kali Linux:

  • openssl x509 -inform der -in burp_cert -out burp_cert.pem
  • openssl x509 -in burp_cert.pem -text -noout
  • sudo cp burp_cert.pem /usr/local/share/ca-certificates/burp_cert.crt
  • sudo update-ca-certificates

Пентестинг з Burp Suite

Bruteforce з допомогою Burp Suite

Брутфорс (від англ. bruteforce – груба сила) — це метод перебору даних на базі різноманітних комбінацій літер і символів, з метою підібрати правильне значення, яке прийме система. Для автоматизації атаки усі комбінації попередньо записуються в окремий файл і потім використовуються як словник. Таким чином можна підібрати слабкі логіни та паролі. Захистись від брутфорсу легко — встановити обмеження на кількість запитів в режимі реального часу і неправильних спроб входу (Login Limit Attempts), а також включити капчу і 2FA-авторизацію.

Спробуємо провести найпростішу атаку методом брутфорс-перебору з допомогою Burp Suite. Однак, відразу зазначу — виконувати його слід тільки на власних електронних ресмурсах, а ще краще встановити окрему віртуальну машину Virtual Box, наприклад OWASP Broken Web Application Project.

Спробуємо провести брутфорс-атаку на сторінку входу (login page), дотримуючись офіційної документації BurpSuite. Прикладом послужить свіжовстановлений сайт WordPress з захистом по-замовчуванню та примітивною парою логін/пароль, наприклад admin:qwerty.

Алгоритм дій (Steps to Reproduce):

  1. Відкрити Burp Suite і перейти на вкладку Proxy
  2. Відкрити браузер і перейти на сторінку входу, наприклад /wp-login.php
  3. Натиснути в Burp Suite -> Proxy на Intercept On
  4. Ввести будь-який логін і пароль — вас автоматично відкине назад в Burp Suite і покаже HTTP-заголовки
  5. Викликати контексте меню і натиснути Send to Intruder
  6. Перейти на вкладку Intruder -> Positions і натиснути кнопку Clear $
  7. Виділити у HTTP-заголовках значення параметрів (напр., ‘log=’, ‘pwd=’), які відповідають за логін і пароль (або тільки пароль), й додати їх в систему — натиснувши кнопку Add $
  8. Далі у цій же вкладці зверху в блоці Choose an attack type обрати тип атаки — Cluster bomb.
  9. Перейти на вкладку Payloads і виставити для кожного параметру (вони пронумеровані тут 1,2,3, в залежності від кількості параметрів) тип і опції перебору (Payload type, Payload Options)
  10. Натиснути кнопку Start Attack.

Примітка: деякі форми авторизації захищені CSRF-токенами безпеки і присвоюють кожному запиту користувача окрему сесію Cookie. В такому випадку стандартний автопідбір не спрацює. Необхідно додатково, перед початком атаки, перейти в налаштування Settings -> Sessions -> Macro додати новий макрос, який відповідатиме URL-адресі, яку потрібно збрутфорсити Далі потрібно проскролити вище і у блок Session Rules додати правила макросу, наприклад визначати параметри loginToken і Cookie. Тільки після цього можна починати атаку, включивши при потребі в опціях Intruder -> Options – Follows redirect (слідувати редиректам).

В результаті виконаної операції запуститься потік енумерації і розпочнеться автоматичний перебір пари “логін-пароль”. Усе відбуватиметься в режимі реального часу. Біля кожної комбінації з’явиться інформація по статусу: код відповіді, помилки, довжина переданих даних і т.д. Нижче з’явиться блок з HTTP-заголовками Request/Response (запит/відповідь).

Після того як сканування завершиться, по коду відповіді й заголовкам визначаємо, яка комбінація була вдалою. У моєму випадку, це код 302 (тимчасовий редирект) — він означає, що після підбору логін-пароль система автоматично переспрямувала користувача в адмін-панель WordPress. Решта відповідей з кодом 200 — означають, що користувач після введеної комбінації залишався на тій же сторінці з можливістю спробувати ще раз.

Таким чином, брут спрацював і нам вдалося підібрати вдалу комбінацію та увійту в систему. Типи і налаштування атаки можна змінювати як завгодно. Наприклад, на вкладці Intruder -> Options задати затримку виконання запитів, кількість повторів, задати фільтр по повідомленням і помилкам тощо.

Однак, подібне не пройде на сайті де стоїть WAF, Captcha, 2FA. Тож ніколи не ігноруйте ними.

Фаззінг з допомогою Burp Suite

Фаззінг (від англ. fuzzying) — це техніка автоматизації процесу виявлення помилок, слабких місць або вразливостей системи шляхом надсилання безлічі запитів до електронного ресурсу з різними корисними навантаженнями (payloads), в очікуванні того, що веб-додаток ініціює дію.

Фаззінг можна використовувати як та де завгодно. Ним можна перебирати логіни і паролі, виявляти XSS/SQL/xPath-ін’єкції, LFI/RFI шелли, приховані директорії, файли, URL-адреси та інші вразливості.

ЧИТАЙТЕ ТАКОЖ:  Proxychains - інструмент для анонімізації трафіку і мережевої розвідки

У якості експерименту знову використаємо вразливий сайт WordPress.

Алгоритм дій (Steps to Reproduce):

  1. Відкрити Burp Suite і перейти на вкладку Proxy
  2. Відкрити браузер і перейти на сторінку входу, наприклад mysite.com/page.php
  3. Натиснути в Burp Suite ->Proxy на Intercept On
  4. Мають з’явитися HTTP-заголовки сторінки. Викликати контекстне меню і натиснути Send to Intruder
  5. Перейти на вкладку Intruder -> Positions і натиснути кнопку Clear $
  6. Виділити у HTTP-заголовках значення вразливих параметрів й додати їх в систему — натиснувши кнопку Add $
  7. Далі у цій же вкладці в блоці Choose an attack type обрати тип атаки — Sniper
  8. Перейти на вкладку Payloads і виставити для параметру (для Sniper він тільки 1) тип пейлоаду — Sample List і опцію перебору — Add from list — тут додаємо з списку потрібні види переборів Fuzzying.
  9. Натиснути кнопку Start Attack

Знову спостерігаємо за рядком статусу виконання і сортуємо код відповіді сервера та довжину байтів. У висновку, знайдемо навантаження, яке змогло проексплуатувати вразливість та викликати помилку сервера.

Енумерація з допомогою Burp Suite

Енумерація — це процес перебору значень, мета якого отримати співпадіння в системі, наприклад отримання імен користувачів або назви компонентів. По-суті, це той самий брутфорс, але з іншими функціями. Маючи точний логін користувача, можна спробувати підібрати пароль до нього.

Проведемо енумерацію користувачів на прикладі WordPress-сайту. Вона є доступною завдяки публічності URL-адрес типуexample.com/?author=n, де кожному автору відповідає певний ідентифікатор. Наприклад, якщо ввести example.com/?author=1 відкриється сторінка одного автора, author=2 — сторінка іншого, і так далі. Таким чином, можна дізнатись конкретні логіни користувачів для входу в систему. Запобігти цьому можна заборонивши доступ до URL-адрес через файл functions.php.

Алгоритм дій (Steps to Reproduce):

  1. Відкрити Burp Suite і перейти на вкладку Proxy
  2. Відкрити браузер і перейти на сторінку mysite.com/?author=0
  3. Перейти в Burp Suite ->Proxy й натиснути Intercept On
  4. Оновити в браузері веб-сторінку — спрацює проксі й вас відправить назад в BurpSuite. Мають з’явитися HTTP-заголовки сторінки. Викликати контекстне меню і натиснути Send to Intruder
  5. Перейти на вкладку Intruder -> Positions і натиснути кнопку Clear $
  6. Виділити у HTTP-заголовках значення параметру ‘author=’ (тобто, цифру) й додати в систему — натиснувши кнопку Add $
  7. Далі у цій же вкладці в блоці Choose an attack type обрати тип атаки — Sniper
  8. Перейти на вкладку Payloads і виставити для параметру відповідний тип пейлоаду, у нашому випадку — Numbers і опцію перебору Payload Options -> Number Range — від 1 до 200 з кроком 1; Number Format — 1, 3, 0, 0.
  9. На вкладці Options скролимо сторінку донизу і знаходимо пункт Redirections -> Follow Redirects— вмикаємо. Це означає, що у випадку редиректу сканер піде за ним і буде сканувати далі.
  10. Натиснути кнопку Start Attack.

Сортуємо коди відповідей й у висновку бачимо кількість знайдених користувачів. Залишається подивитись в HTTP-заголовках URL-адресу, щоби дізнатись їхні логіни:

Enumeration in Burpsuite

XSS-ін’єкція з допомогою Burp Suite

XSS-ін’єкція (XSSi) – це атака з допомогою міжсайтового скриптингу Cross-Site Scripting. Коли ті чи інші вхідні запити не перевіряються на стороні сервера, що дає хакеру виконати довільний JavaScript код чи сценарій.

Алгоритм дій (Steps to Reproduce):

  1. Проксуємо цільовий веб-сайт BurpSuite (попередньо додавши його адресу в Scope)
  2. Аналізуємо на вкладці Site Map його структуру і знаходимо потенційно вразливі сторінки. Для XSS точкою входу можуть бути: форми відправки, текстові поля, будь-які динамічні об’єкти, де не перевіряються дані.
  3. Відкриваємо знайдену вразливу веб-сторінку, наприклад форму зворотного зв’язку /ticket. Заповнюємо її будь-яким текстом. Перед тим як натиснути кнопку “Відправити”, вмикаємо “Inercept on” в Burp Suite, щоб перехопити запит. Тепер натискаємо.
  4. У вікні Burp Suite бачимо HTTP-заголовки перехопленого Request-запиту, відправляємо його через контекстне меню в Repeater (повторювач).
  5. Уважно вивчаємо заноловки і знаходимо поля, які відповідають за відправку інформації, у нашому випадку це email та message. Вставляємо в значення поля email корисне навантаження (payload) і кодуємо його: Ctrl + U.
  6. Відпраляємо запит натиснувши “Send” і спостерігаємо за виконанням на сайті (можна скористатись контекстним меню “Show response in browser”). Код JavaScript має спрацювати на сайті й викликати діалогове вікно Alert (або будь-який інший сценарій, який ви вказали).

Відмова в обслуговуванні (DoS) з допомогою Burp Suite

Відмова в обслуговуванні (Denial of Service)  — це атака, яка має завдання викликати на стороні сервера критичну помилку (наприклад, 500), що через перенавантаження або порушення логіки/конфігурації спричинить відмову в обслуговуванні сервера або взагалі приведе до падіння.

Алгоритм дій (Steps to Reproduce):

  1. Проксуємо цільовий веб-сайт BurpSuite (попередньо додавши його в Scope)
  2. Аналізуємо на вкладці Site Map структуру і знаходимо потенційно вразливі сторінки. Для DoS-атак точкою входу можуть бути різноманітні сторінки з динамічними параметрами, порушення логіки роботи, неправильна конфігурація.
  3. Відкриваємо знайдену вразливу веб-сторінку, наприклад сторінки пагінації /products/1.
  4. У вікні Burp Suite бачимо HTTP-заголовки перехопленого Request-запиту, відправляємо його через контекстне меню в Repeater (повторювач).
  5. Звертаємо увагу на значення GET – змінюємо його на таке, щоб порушити логіку роботи сервера і він не зміг обробити запит. Наприлклад: /products/-10000000000000000000000000.
  6. Відпраляємо запит і аналізуємо відповідь Response. Сервер має віддати помилку “500 Internal Server Error”. Таким чином сервер вразливий до атаки і якщо скористатися брутфорсером та запустити не 1, а десятки тисяч таких запитів це може привести до падіння й тривалого простою сервера.

Dos Attack in Burp Suite example

SQL-ін’єкція з BurpSuite

SQL-ін’єкція (XSSi) – це атака шляхом маніпуляції SQL-виразами. Подібно XSS-ін’єкціям, SQLi можливий тоді, коли вхідні запити не перевіряються і виконуються на стороні сервера. Хакер може надсилати запити до MySQL і виконувати їх, що може мати критичні наслідки.

Алгоритм дій (Steps to Reproduce):

  1. Проксуємо цільовий веб-сайт BurpSuite (попередньо додавши його адресу в Scope)
  2. Аналізуємо на вкладці Site Map його структуру і знаходимо сторінки з вразливими параметрами, які можна використати для здійснення SQL-запитів. Це можуть бути динамічні сторінки, галереї, таблиці, сторінки авторизації тощо.
  3. Відкриваємо знайдену вразливу веб-сторінку, наприклад /about/2. Перехоплюємо Request-запит до неї.
  4. У вікні Burp Suite бачимо HTTP-заголовки запиту, відправляємо в Repeater.
  5. Аналізуємо значення заголовків, знаходимо параметр GET і змінюємо його на: /about/2 '.
  6. Відпраляємо запит натиснувши “Send” і аналізуємо заголовки відповіді Response. Сервер відповість “500 Internal Server Error”. Також у тілі можуть бути інші цікаві повідомлення, включно з відповідями від самої MySQL-бази даних. Отже, є вразливість на цій кінцевій точці. Можна спробувати більш просунуті пейлоади SQLi, наприклад UNION вирази. В результаті це приведе до можливості маніпулювати базою даних, отримувати дані з неї і навіть (за певним умов) вносити несанкціоновані зміни.

SQL injection in Burp Suite

IDOR атака з допомогою Burp Suite

IDOR (Insecure Direct Object References) -  це тип вразливості контролю доступу, яка виникає, коли користувач без особливих привілеїв може маніпулювати ідентифікаторами в URL-адресах або параметрах в коді й отримати доступ до конфіденційних сторінок системи. Вразливість була вперше включена до списку ТОП-10 вразливостей веб-додатків в стандарті OWASP 2007.

Алгоритм дій (Steps to Reproduce):

  1. Авторизуємося на цільовому веб-сайті і проксуємо його (попередньо додавши в Scope).
  2. Аналізуємо на вкладці Site Map структуру і знаходимо потенційно вразливі сторінки до IDOR.
  3. Відкриваємо знайдену вразливу веб-сторінку, наприклад тікет /support/ticket/78. Перехоплюємо Request-запит до неї.
  4. Відправляємо його в Intruder: Ctrl + I
  5. Обираємо параметр, який треба перебрати. У даному випадку, ми перебиратимемо номер сторінки – 78. Обираємо його і тиснемо на $Add.
  6. Обираємо тип атаки Sniper.
  7. Переходимо на вкладку Payloads і додаємо тип перебору цифрами (Numbers), вказуючи від 1 до 100.
  8. Запускаємо атаку.
  9. Аналізуємо Response-запити, щоб знайти конфіденційну інформацію в тікетах користувачів цільової системи. Можемо також скористатися фільтром результатів “Shows only item matching”.

IDOR attack example

Аудит безпеки в Burp Suite

BurpSuite PRO може бути ще й чудовим веб-сканером для пошуку вразливостей.

Щоб розпочати сканування необхідно перейти на Dashboard і натиснути кнопку “New Scan”:

Burp Suite start new scan

З’явиться діалогове вікно з налаштуваннями сканування:

BurpSuite scan options

Вам запропонують вказати тип і цілі сканування. Тип — обираємо “Crawl and audit” (Сканування і аудит). В полі “URLs to Scan” можна вказати домен — тоді сканування буде проходити у межах усього сайту по всім файлам та каталогам. Або вказати список URL-адрес, які потрібно просканувати. У разі необхідності, можна також змінити тип протоколу, по якому буде проводитися сканування.

ЧИТАЙТЕ ТАКОЖ:  Автоматизація пошуку вразливих URL

Переходимо на наступний крок — вкладка “Scan configuration”. Тиснемо на кнопку знизу “Select from library” – з’явиться діалогове вікно з можливістю вибору різних конфігурацій та стратегій сканування та аудиту. Можна задати потрібну частоту, глибину перевірки, сценарії тощо.

Audit settings in Burpsuite

Переходимо на наступну вкладку – “Application login”. Якщо сайт чи сторінка захищені формою авторизації, то тут можна задати дані авторизації й BurpSuite успішно проведе сканування. Є можливість застосувати макрос Chrome-браузера (через плагін BurpSuite Navigation Recorder).

Переходимо до останньої вкладки — “Resource pool”. Тут можна налаштувати інтенсивність сканування — кількість запитів в секунду. Можемо залишити по замовчуванню, хоча для деяких сайтів це критично важливо, адже сканування може навантажити сервер. У такому випадку необхідно зменшити агресивність сканування.

Resource pool in Burpsuite

Натискаємо ОК і запускаємо сканування. На дашборді з’явиться нова панель з назвою “Crawl and audit of …” з перебігом подій виконання аудиту:

На ній відображений рядок статусу, статистика кількості виконаних запитів, помилок (errors) і знайдених вразливостей — “Issues”, позначених різними кольорами за ступенем критичності. Якщо натиснути на кнопку “View details>>” – відкриється нове вікно з деталізацією представлення даних:

Issue activity in BurpSuite

Обсяги інформації, якою оперує BurpSuite вражають. Він просканує сайт, як кажуть, до самих “кісточок”. До всіх знайдених вразливостей показує HTTP-заголовки (Request/Reponse) і приклади експлуатації, що є надзвичайно корисним:

Мушу зазначити, що глибоке сканування сайту з розгорнутою структурою може зайняти достатньо часу і суттєво навантажити його, тому рекомендую запускати сканер у вибрані години, або використати конфігурацію  “Faster scan” (швидкий аудит, див. вище).

По закінченню сканування отримуємо не просто “сухий звіт” з набором даних, а структурований документ з детальним описом знайдених вразливостей, посиланнями на джерела (references) та класифікацією згідно CVE/CWE. Таке ТЗ можна експортувати в HTML (включивши в нього усі або лише вибрані вразливості) і передати спеціалісту для подальшої роботи.

Burp Suite reporting wizard

Для того, аби згенерувати звіт в BurpSuite, треба перейти на екран “Issue activity”, виділити курсором вразливості і з допомогою контекстного меню обрати пункт “Report Selected Issues”. З’явиться Майстер створення звітів (Burpsuite Wizard Reporting), який здійснить експорт даних у формат HTML або XML:BurpSuite audit report

Підсумовуючи скажу, що проксі BurpSuite — надзвичайно простий в опануванні, швидкий в роботі, корисний і важливий з точки зору кібербезпеки. Інформація, яку він надає — надзвичайно цінна. В ідеалі цей інструмент повинен бути “під рукою” у кожного вебмайстра та власника сайту. Це чудовий інструмент для перевірки електронних ресурсів на технічні помилки і вразливості.

Ротація IP-адрес в Burp Suite

Часто в проведеннях аудитів і пентестів, виникає необхідність протестувати різні види атак, які використовують не одну статичну, а цілий пул IP-адрес. Це також дозволить обійти правила блокування WAF, яке може бути застосоване по відношенню IP-адреси “атакуючого”.

Існує кілька варіантів, як це зробити в Burp Suite. Перший варіант передбачає зв’язку плагіну “IP rotate” та сервісу AWS “API Gateway”. Другий – використання вбудованої опції “Upstream proxy” або “SOCKS proxy”. Розглянемо кожен випадок окремо.

Burp Suite IP Rotate і AWS API Gateway

Плагін IP Rotate доступний в репозиторії у вкладці BApp Store. Необхідно просто обрати в переліку необхідний плагін і натискнути кнопку “Install“. Але деякі плагіни працюють на основі Java/Python, тому попередньо необхідно встановити бібліотеку Jython: перейти в Settings -> Extensions і в полі Jython вибрати бібліотеку .jar (скачати можна тут).

BApp Store IP Rotate

Jython install Burp Suite

Після встановлення плагіну на панелі меню Burp Suite з’явиться додаткова вкладка “IP Rotate”. Якщо перейти в неї, то побачимо поля для введення API ключів  – Acces/Secret keys від інфраструктури AWS. Також тут необхідно вказати цільовий хост, який будете сканувати з ротацією IP:

IP Rotate plugin Burp Suite

Для цього реєструємося на офіційному сайті Amazon Web Services і створюємо новий акаунт. Далі переходимо в розділ “IAM” і створюємо нового користувача. В налаштуваннях користувача, на вкладці “Specify user details” призначаємо користувачу дозвіл – “AmazonAPIGatewayAdministrator”. Тепер створюємо ключ доступу знайшовши пункт “Access Key” в сайдбар-меню. Отримуємо API-ключі і вписуємио їх в плагін IP Rotate на панелі Burp Suite.

API Gateway AWS

Permissions user IAM AWS Gateway

Access key API Gateway AWS

Тепер потрібно протестувати роботу API Gateway. Для цього просто перехопимо запит до URL-адреси, наприклад: https://ifconfig.co/ip?ref=p1val і перенаправимо до Intruder, де оберемо параметр $p1val$ і проведемо атаку типу Sniper -> Numbers від 1 до 5, але в налаштуваннях Settings додамо ще умову “Grep Extract” для отримання перших рядків з IP-адресами:

  • \r\n\r\n
  • \r\n

Тепер тиснемо Fetch Response – і маємо отримати відповідь. Якщо так, тоді залишилось натиснути “Start Attack” й в результатах побачимо IP-адреси усіх п’яти запитів. Вони будуть однакові. Значить все працює і можна включати IP-ротацію.

Переходимо на вкладку IP Rotate, вказавши ціль, у нашому випадку це ifconfig.co. Й натискаємо на кнопку Enable. Треба зачекати 2-3 хвилини, щоби загорівся зеленим напис Enabled (відбудеться підключення до шлюзу API AWS і запустяться кілька екземлярів VPS в різних зонах, які і будуть джерело IP-адрес).

Тепер повертаємося до Intruder і просто повторюємо атаку. Маємо побачити, що усі IP-адреси п’ятьох запитів – різні. Отже, все працює.

Після завершення роботи, бажано відключити плагін IP Rotate – перевівши його у стан Disabled й дочекатися виключення екземплярів, аби не вичерпувалися ліміти. AWS безкоштовно надає до 1 мільйона запитів. Далі – стандартна тарифікація.

Burp Suite with AWS API Gateway

Upstream / SOCKS proxy

Для того, щоб налаштувати роботу Burp Suite через проксі необхідно перейти у налаштування “Settings” і налаштувати відповідну конфігурацію – Upstream або SOCKS5 проксі:

В якості Upstream можна використовувати резидентні проксі від таких сервісів як ProxyScrape, ProxyMesh, BrightData та їм подібні.

Для їх запуску необхідно натиснути на кнопку “Add” й додати дані авторизації у форму конфігурації:

Для запуску SOCKS5 аналогічно необхідно заповнити дані авторизації, а також додатково увімкнути галочку “Override options for this project only”:

Попередньо перевірити роботу проксі можна з допомогою команди Curl:

  • curl -x "https://X.X.X.X:XXXX" "https://ipinfo.io/"
  • curl -x "protocol://user:password@host:port" "https://ipinfo.io/"

Burp Suite як проксі-сервер

Burp Suite також можна використовувати себе як звичайний проксі-сервер при виконанні різноманітних утиліт, наприклад:

  • gobuster dir -u https://example.com -w wordlist.txt --proxy http://127.0.0.1:8085 -v --random-agent
  • curl --proxy http://127.0.0.1:8085 https://example.com

Якщо в Burp Suite перейти на вкладку Proxy -> HTTP History, то можна побачити список усіх запитів, які надсилаються через його проксі:

Можна також вказати проксі BurpSuite в налаштуваннях сторонніх додатків, наприклад сканерах вразливостей Acunetix та OWASP Zap. Таке поєднання дає чимало переваг, адже дозволяє не тільки контролювати HTTP-запити (GET/POST), їх статуси, довжину, MIME-тип в режимі реального часу, а й аналізувати та одразу експлуатувати їх в Burp Repeater/Intruder. Причому, це чудово поєднується з плагіном ротації IP Rotate або будь-якими іншими налаштуваннями Burp Suite.

Acunetix with proxy Burp Suite
Приклад налаштування скану Acunetix з проксі Burp Suite

Корисні плагіни Burp Suite

При регулярному використанні проксі Burp Suite рано чи пізно виникає потреба розширити його функціонал. Нижче список корисних плагінів, які полегшують роботу:

  • Auto-Drop Requests – автоматично відхиляє (блокує) зайві, “сміттєві” запити, які перехоплює проксі Burp Suite. Плагін містить текстове поле, у яке необхідно просто вписати регулярний вираз зі словами для блокування. Наприклад: .*firefox|google.* – заблокує усі запити, які надсилають ресурси зі згаданими доменами.

Джерела і посилання

  1. XSS Атака в BurpSuite з допомогою плагіну XSSValidator
  2. Dana Epp. Bypassing API rate limiting using IP rotation in Burp Suite
  3. Dana Epp. Evade IP blocking by using residential proxies (ProxyScrape proxy)
  4. Medium. How to Rotate IP ADDRESS For Each Request in Burp Suite (BrightData proxy)
  5. Medium. Integrating IP Rotation with Burp Suite to Bypass IP-Based Blocking in Security Perimeters during Security Testing
  6. GitHub — XSS Validator
  7. GitHub — BurpGPT
  8. Github — Nuclei Burp Extension
  9. GitHub — Nuclei Template Generator for Burpsuite

Автор: © Konrad Ravenstone, KR. Laboratories Research

Konrad Ravenstone// про автора

Кібермольфар, хакер, лінуксоїд, дослідник безпеки в KR. Labs Research

Сподобалася стаття? Поділитися в соцмережах:
KR. Labs Research
Рекомендоване:
Уміло підібраний та впорядкований інструментарій в рази збільшує ефективність роботи.…