Zapraszam do przeczytania cyklu tekstów, opisujących podstawową funkcjonalność oprogramowania Burp Suite Professional - jednego z komercyjnych narzędzi, wspierających wykonywanie testów penetracyjnych aplikacji webowych.
W tekstach w subiektywny sposób zaprezentuję funkcjonalności oferowane przez narzędzie. Postaram się również dokonać niezależnej oceny możliwości oferowanej przez poszczególne moduły, jak i cały Suite.
Zaznaczam, że celem cyklu nie jest systematyczne przedstawienie funkcjonalności narzędzia, a raczej wskazanie ogólnych możliwości oferowanych przez aplikację oraz pokazanie sposobu pracy z Burp-em.
W pierwszej części tekstu przedstawię moduł proxy, a w kolejnych odsłonach artykułu, scharakteryzuję moduły: intruder, scanner i sequencer.
Jest jest to zestaw wielu współpracujących narzędzi, wspierających wykonanie testów penetracyjnych aplikacji webowych. Można powiedzieć, że zestaw ten umożliwia wykonanie testów półautomatycznych. Z jednej strony posiada on wbudowane pewne automatyzmy usprawniające powtarzalne prace, z drugiej pozostawia dość dużą swobodę działania pentesterowi.
Całość składa się z następujących modułów:
Zrzut ekranowy interface narzędzia (okna: repeater, scanner, intruder) prezentuję poniżej:

Moduł ten najczęściej wykorzystany jest do celów przechwycenia komunikacji z przeglądarki internetowej. W następnym kroku komunikacja ta może być przekierowana do innego modułu (np. intruder czy scanner) w celu wykonania testów penetracyjnych (tj. symulowanych ataków na aplikację).
Aby uruchomić moduł należy:

Po pomyślnej konfiguracji zarówno komponentu Burp proxy jak i przeglądarki internetowej, w momencie odwołania się tej ostatniej do dowolnego zasobu (np. otwarcie nowej strony www) Burp notyfikuje pojawienie się nowego requestu HTTP oraz pyta jakie akcje powinny być dla niego wykonane (patrz zrzut ekranowy).

Po przechwyceniu zapytania HTTP Burp proxy oferuje nam między innymi:
Przy okazji, zwróćmy uwagę, że wskazany na powyższym zrzucie ekranowym request HTTP kierowany był do strony zabezpieczonej przez protokół HTTPS. Zatem Burp Suite umożliwia przechwycenie i tego typu szyfrowanej komunikacji. W momencie komunikacji ze stroną dostępną poprzez HTTPS, Burp proxy działa jak klasyczne narzędzie umożliwiające wykonanie ataku man-in-the-middle, to znaczy:

Kolejną interesującą funkcjonalnością, oferowaną przez moduł proxy, jest możliwość automatycznej modyfikacji komunikacji HTTP przepływającej przez Burp-a.
Zmianie mogą podlegać zarówno zapytania klienta jak i odpowiedzi serwera. Reguły definiowane są z wykorzystaniem wyrażeń regularnych. Na przykładzie poniżej prezentuję zmianę przesyłanego zazwyczaj w nagłówku HTTP request opisu wykorzystywanej przeglądarki internetowej:

Przy okazji, warto również zwrócić uwagę na kilka dodatkowych opcji, dostępnych w podmodule modyfikacji komunikacji HTTP (np.: pokazywanie na poziomie przeglądarki internetowej pól hidden w formularzach, czy usuwanie limitów rozmiarowych zaszytych w określonych polach formularzy).
Proxy loguje przechodzącą przez siebie komunikację HTTP (zapytanie oraz odpowiedź HTTP). Poniżej przedstawiam okno z zalogowanymi przez Burp-a requestami. Ważniejsze dostępne w podmodule opcje to:


Po zebraniu odpowiedniej komunikacji sieciowej możemy przejść do kolejnego, wykonywanego w trakcie testów penetracyjnych kroku: fuzzingu czy automatycznego skanowania w poszukiwaniu podatności. Służą do tego moduły: intruder oraz scanner, które opiszę w kolejnych częściach tekstu.
Burp Suite Professional to narzędzie wspierające testy penetracyjne aplikacji webowych. Zapewnia bogatą funkcjonalność zarówno jeśli chodzi o wykonywania ataków manualnych jak i zautomatyzowanych. Burp Suite Professional dostępny jest również w wersji darmowej posiadającej ograniczoną funkcjonalność.
--michal.sajdak@securitum.pl