Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ilya Rusanen - Burp Suite + Python = <3

Ilya Rusanen - Burp Suite + Python = <3

Moscow 2600

October 07, 2016
Tweet

More Decks by Moscow 2600

Other Decks in Programming

Transcript

  1. Burp Suite + Python = <3
    f1nnix, @IlyaRusanen, f1nn.com, 2600, 2k16
    Делаем кастомный процессинг HTTP-ответов в Burp Suite для брутфорса Skype

    View Slide

  2. Burp Intruder — лучший друг вебхакера
    • позволяет перехватывать
    запросы прямо из браузера (в
    т.ч. и SSL если установлен
    rootCA)

    • позволяет задать параметры
    запроса

    • query-параметры

    • GET/POST-параметры

    • модифицировать запросы
    заданным набором пейлоадов

    • выводить все в
    результирующую таблицу для
    дальнейшего анализа

    View Slide

  3. Результаты пентеста в сводной таблице
    Intruder подставляет указанный
    payload set и реплеит запрос с
    каждым его элементом.

    Результаты выводятся в
    таблицу.

    Один ряд — один запрос с
    уникальным набором
    пейлоадов.

    View Slide

  4. Grep/Match и больше ничего
    Возможности анализа ответа
    нет.

    Единственное, что можно
    сделать — это грепнуть ответ
    по регулярке.

    Грепнутое значение будет
    выведено отдельным столбцом
    в результаирующей таблице.

    View Slide

  5. А если надо больше?
    1.Процессинг данных локальным
    софтом
    2.Анализ DOM-дерева
    3.Получение данных из внешних
    источников
    4.Проведение комплементарных (ну и
    словечко!) атак с вычленением
    промежуточных результатов

    View Slide

  6. Суппорт 80лвл. Исправим?

    View Slide

  7. View Slide

  8. Skype Number — настоящий номер
    Можно получить настоящий
    телефонный номер в
    любой стране мира.
    На него можно позвонить.
    С него можно позвонить.
    И стоит всего 18 евро.

    View Slide

  9. Выбираем страну, штат и local area
    1 2 3

    View Slide

  10. Пробуем искать по паттерну
    1. Ставим rootCA
    для поддержки
    SSL
    2. Вводим паттерн
    3. Начинаем искать
    4. Proxy
    перехыватвает
    запрос.
    5. Посылаем его в
    Intruder и…

    View Slide

  11. Получаем данные для скана
    1. Ставим rootCA
    для поддержки
    SSL
    2. Вводим паттерн
    3. Начинаем искать
    4. Proxy
    перехыватвает
    запрос.
    5. Посылаем его в
    Intruder и…

    View Slide

  12. Запускаем скан
    В первый пейлоад кидаем
    список local areas,
    выдернутый их DOM-дерева
    регуляркой.
    Во второй — список крутых
    комбинаций

    View Slide

  13. PROFIT!
    Мы достали кучу номеров с 4444, 6666, 1337,
    2600
    Отфитровано
    просто по длине
    ответа серера

    View Slide

  14. Но как выдернуть и показать

    в таблице сами номера?
    Идея состоит в том, чтобы:
    1. Похукать момент получения ответа сервера
    2. Обработать его своим кодом
    3. Добавить результат вычислений в тот же самый ответ в специальном
    формате и отправить "дальше»
    4. Дальше грепнуть это значение по регулярке штатными средствами
    Burp Intruder
    Чтобы реализовать этот трюк, нужно написать расширение для Burp Suite.
    Расширения для Burp пишутся на Java, Ruby или Python. Мы напишем на
    Python.

    View Slide

  15. У Burp Suite есть маленький
    App Store,

    а также возможность
    писать свои расширения
    Напишем и мы
    свое!

    View Slide

  16. Ставим Jython http://www.jython.org/
    Учти, что нужно
    пользоваться не
    системным PIP-ом, а
    jython'овским, который
    лежит в директории
    бинарника jython (см.
    предыдущий скрин):

    View Slide

  17. Пишем

    расширение
    Суть: 20-36 строка

    View Slide

  18. Тестим, что приходит в body
    То, что нужно! В конце
    уже дописывается строка
    с доступными номерами
    для этого региона.
    Оно пригодно для GREP!

    View Slide

  19. Добавялем новый GREP из body…
    По предпросмотру
    регулярок уже видно что
    работает!
    …И

    View Slide

  20. Успех!
    И это мы
    отпроцессили тольо
    1(!) штат в 1(!)
    стране.
    В USA 52 штата.
    В каждом по 10-50
    local areas.
    Скайп предоставляет
    ~25 стран.

    View Slide

  21. Спасибо за внимание!
    f1nnix, @IlyaRusanen, f1nn.com, 2600, 2k16

    View Slide