Прокачуємо burp suite

Burp Suite є якщо не основним то, мабуть, одним з головних інструментів пентестера. З моменту виходу першого релізу Burp придбав безліч нових функцій, з'явилася платна і безкоштовна версії. Однак найчастіше при проведенні пентеста вбудованого функціоналу не вистачає, і в цьому випадку на допомогу приходить Burp Extender - набір інтерфейсів для розширення можливостей Burp. Сама програма написана на Java, і писати розширення пропонується також на цій мові. Проте зусиллями сторонніх розробників в даний час з'явилося кілька проектів, мета яких - дати можливість створювати розширення і на інших мовах. Серед них:



  • Buby - дозволяє писати розширення на Ruby з використанням jRuby;
  • Resty Burp - надає REST / JSON-інтерфейс для функціоналу Burp, що дозволяє писати розширення на будь-якій мові (на жаль, працює тільки з платною версією Burp).
  • Jython Burp API - відкриває доступ до інтерфейсів Burp Extender на Jython (реалізація Python на Java);

Нещодавно попався сайт, який блокував IP відвідувача, якщо той здійснював підозрілі дії. Спосіб обійти такий захист був знайдений практично відразу - потрібно було лише додавати до всіх HTTP-пакетів заголовок X-Forwarded-For зі випадковим IP. Однак в Burp реалізувати таку обробку вихідних пакетів для всіх інструментів, зокрема Proxy, Spider і Repeater, виявилося неможливим. І тут на допомогу прийшов Jython Burp API, який дозволив досить швидко отримати необхідний результат. Для цього треба було встановити Java Development Kit і Jython 2.7, потім в робочій директорії Burp скомпілювати исходники Jython Burp API наступною командою:

Для обробки запитів розширення повинно реалізовувати інтерфейси відповідних інструментів Burp (наприклад, IProxyRequestHandler, ISpiderRequestHandler, etc) і мати метод processRequest. У підсумку, вийшло наступне розширення:

Розширення було поміщено в папку Lib / gds / burpext разом з необхідним __init__.py:

Всі розширення реєструються в burp.ini, в моєму випадку було необхідно додати наступні рядки:

І нарешті, запуск:

У підсумку, пробіл в функціоналі Burp був усунутий. Сподіваюся, цей мануал допоможе всім, хто хоче почати писати розширення для Burp на Python.

P.S. Для тих, хто пише на Java, зазначу свіжу статтю англійською про організацію оточення для розробки під Burp на Java.