Close

Основи пентестингу з BurpSuite

Пропоную ознайомлювальну статтю з BurpSuite — багатофункціональним кросплатформним проксі-сканером, інструментом тестування веб-сайтів і додатків. У попередній статті я вже розповідав про можливості BurpSuite як інструменту для проведення аудитів кібербезпеки. У цьому матеріалі розгляну базові можливості цього інструменту для тестування на проникнення (pentesting).

Зміст статті

Встановлення BurpSuite

BurpSuite існує у 3-х версіях: Community Edition, Professional Edition та Enterprise Edition.

Перша надається безкоштовно і входить у склад ОС Kali Linux. Дві останні  версії —  платні, надають розширений функціонал, для них необхідно придбати ліцензію.

BurpSuite Professional можна спробувати також на безкоштовній основі в рамках випробовувального Trial-періоду. Для цього слід написати в технічну підтримку PortSwigger.

Завантажити BurpSuite можна з офіційного сайту. Підтримуються усі платформи: Linux, Windows, MacOS.

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

Веб-інтерфейс BurpSuite

Веб-інтерфейс BurpSuite

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

  1. Dashboard — головний робочий стіл, аналіз і огляд виконання задач;
  2. Target — краулер, тут показуються усі URL-адреси, які сканує проксі. Інструмент дозволяє комплексно просканувати увесь сайт — директорії і файли та вибудувати деревовидну структуру. Корисний інструмент для аудиту;
  3. Proxy — проксі-сканер, сніффер HTTP-трафіка, працює в режимі MITM (man-in-the-middle);
  4. Intruder — інструмент для тестування, моделювання атак, проведення пентестів;
  5. Repeater — обробник HTTP-запитів, дозволяє модифікувати HTTP-заголовки і повторно їх відправляти;
  6. Sequencer — інструмент аналізу токенів;
  7. Decoder — спеціальний інструмент декодування/шифрування даних з застосуванням різноманітних алгоритмів: ASCII, BASE64, HEX, SHA и т.д.;
  8. Comparser — інструмент для аналізу та порівняння даних, пошуку відмінностей;
  9. Extender — робота з плагінами, розширеннями, додатками BurpSuite;
  10. Project options —налаштування програми на рівні проєкту (цели, задания);
  11. User options — налаштування користувача, дозволяэ змінити тип з’єднання, кодування, тему інтерфейсу (light/dark), розмір шрифтів, hot keys та таке інше.

Налаштування BurpSuite

Щоб BurpSuite почав працювати в ролі проксі-сканера, необхідно його налаштувати.

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

Для цього перейти в меню Proxy -> Proxy Settings ->Proxy Listeners й виставити відповідний номер порту. Режим роботи — Loopback.

Перейдемо в загальні налаштування й проведемо ряд інших опцій:

  • Proxy Interception — увімкнути режим «Always disable».
  • Perfomance Feedback — вимикаємо відправку статистичних і технічних даних на сервери BurpSuite.
  • Updates — вимикаємо автоматичне оновлення.
  • SOCKS Proxy — переводимо за необхідності роботу BurpSuite через проксі-сервер.

Примітка: В нових версія Burpsuite знати ці опції можна через пошук.

Як зв’язати BurpSuite з браузером?

Burpsuite має вбудований Chromium-браузер (Target -> Open browser), через який можна проводити тестування з допомогою проксі-сканера. Але для зручності ми можемо зв’язати його безпосередньо з десктопним браузером, наприклад Mozilla Firefox.

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

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

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

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

Після цього перейти у налаштування браузера і в менеджері сертифікатів Security -> Certificates -> Authorities імпортувати сертифікат, відзначивши дозвола:

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

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

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

Яка особливість BurpSuite як проксі?

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

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

Причому усе це подається у надзвичайно елегантному, відформатованому веб-інтерфейсі. Вся інформація доступна для експорту. Є величезна кількість додаткових плагінів. Для дослідника BurpSuite – це інструмент №1!

Щоб вимкнути у браузері режим Burp-проксі — достатньо у мережевих налаштуваннях браузера зняти відповідну опцію. Можна також встановити спеціальний додаток — FoxyProxy для Firefox або Proxy SwitchyOmega для Chrome.

Повністю вимкнути проксі в браузері можна в BurpSuite на вкладці Proxy -> Options знявши галочку Running.

Bruteforce атака з допомогою BurpSuite

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

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

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

Отже, алгоритм дій наступний:

  1. Відкрити Burp Suite і перейти на вкладку Proxy
  2. Відкрити браузер і перейти на сторінку входу, наприклад mysite.com/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

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

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

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

Однак, подібне ніколи не пройде на будь-якому сайті з увімкненими модулями безпеки: WAF, Google reCaptcha, 2FA. Тож ніколи не ігноруйте ними.

Фаззінг з допомогою BurpSuite

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

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

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

Отже, алгоритм дій наступний:

  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

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

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

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

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

Алгоритм дій:

  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

Висновки

Це далеко не увесь перелік пентестів, які дозволяє проводити Burp Suite. Насправді, їх безліч. Усі вони — цікаві та різноманітні. BurpSuite — це такий-собі конструктор “LEGO”, який дозволяє на базі величезної кількості опцій і шаблонів, а також бездоганної бази знань Portswigger, конструювати власні техніки і методики хакерського ремесла, моделювати кіберзагрози, експлуатувати вразливості, створювати й тестувати кібербезпеку на професійному рівні, поєднуючи різні інструменти.

Рекомендую не полінуватися і пройти безкоштовні курси від PortSwigger Web Academy та отримати сертифікат майстра BurpSuite — BSCP: https://portswigger.net/web-security

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

Корисні посилання

ПОДІЛИТИСЬ У СОЦМЕРЕЖАХ:

0 0 голосів
Рейтинг статті
Підписатися
Сповістити про
guest
0 Коментарі
Старіші
Новіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
0
Поставте запитання й отримайте відповідь!x
Отримати комерційну пропозицію
Оформити заявку
Замовити консультацію
Замовити дзвінок

Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!