Новости из Блогов Прокачиваем Burp Suite

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 14 Jul 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,062
    Reputations:
    693
    Прокачиваем 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 следующей командой:
    Code:
    javac -cp burpsuite_v1.4.01.jar;jython.jar java/src/*.java java/src/burp/*.java
    Для обработки запросов расширение должно реализовывать интерфейсы соответствующих инструментов Burp (например, IProxyRequestHandler, ISpiderRequestHandler, etc) и иметь метод processRequest. В итоге, получилось следующее расширение:
    Code:
    import random
    from gds.burp.api import IIntruderRequestHandler, IScannerRequestHandler, IProxyRequestHandler, \
        IRepeaterRequestHandler, ISequencerRequestHandler, ISpiderRequestHandler
    from gds.burp.core import Component, implements
     
    class RandomIP(Component):
     
        implements(IIntruderRequestHandler,
            IProxyRequestHandler,
            IRepeaterRequestHandler,
            IScannerRequestHandler,
            ISequencerRequestHandler,
            ISpiderRequestHandler)
     
        headerName = 'X-Forwarded-For'
     
        def processRequest(self, request):
            request.raw = request.raw.replace('\r\n\r\n',
                '\r\n' + self.headerName + ': ' + self.__generateRandomIP() + '\r\n\r\n',
                1)
            return request
     
        def __generateRandomIP(self):
            s = []
            for i in xrange(4):
                s.append(str(random.randint(1,254)))
            return '.'.join(s)
    Расширение было помещено в папку Lib/gds/burpext вместе с необходимым __init__.py:
    Code:
    __all__ = ('RandomIP')
    Все расширения регистрируются в burp.ini, в моем случае было необходимо добавить следующие строки:
    Code:
    [components]
    ...
    gds.burpext.randomip.RandomIP = enabled
     
    [handlers]
    intruder.request = RandomIP
    proxy.request = RandomIP
    repeater.request = RandomIP
    scanner.request = RandomIP
    sequencer.request = RandomIP
    spider.request = RandomIP
    И наконец, запуск:
    java -cp java/src/;jython.jar;burpsuite_v1.4.01.jar burp.StartBurp -i
    В итоге, пробел в функционале Burp был устранен. Надеюсь, данный мануал поможет всем, кто хочет начать писать расширения для Burp на Python.
    P.S. Для тех, кто пишет на Java, отмечу свежую статью на английском про организацию окружения для разработки под Burp на Java.


    13 Июль 2012 Raz0r
    http://raz0r.name/articles/extending-burp-suite/
    http://raz0r.name/
     
    _________________________
  2. shell_c0de

    shell_c0de Hack All World

    Joined:
    7 Jul 2009
    Messages:
    1,184
    Likes Received:
    618
    Reputations:
    690
    все бы хорошо, но было бы кульно не ручной все прокачать а просто с оффсайта дополнений инсталлить и все.
     
    _________________________