Narzędzia Pentestera – Burp Suite – Wprowadzenie

Witam Was w pierwszym artykule z cyklu “Narzędzia Pentestera”. W dzisiejszym odcinku opowiem Wam o aplikacji, która bardzo często, o ile nie najczęściej, jest używana w pracy pentestera. Mowa tutaj o narzędziu Burp Suite.

Czym jest BURP? Do czego służy i jak pomaga w pracy pentestera?

Burp jest narzędziem do przechwytywania requestów HTTP oraz ich modyfikacji w trakcie przesyłania do serwera. Oczywiście posiada więcej funkcjonalności, ale nimi zajmiemy się w kolejnych odcinkach.

Ta aplikacja tworzy na naszym komputerze lokalny serwer proxy, przez który przechodzi cały ruch HTTP wychodzący z naszej przeglądarki.

Normalny ruch HTTP wygląda następująco:

Mamy Aplikację Webowa uruchomioną w przeglądarce oraz Serwer, na którym hostowana jest nasza aplikacja.

Aplikacja wysyła Request do serwera, a w odpowiedzi Serwer odsyła Response. (Więcej o komunikacji HTTP możecie dowiedzieć się z tego artykułu: link)

Burp działając jako Serwer Proxy przechwytuje Request HTTP zaraz po tym jak “opuści” on naszą przeglądarkę i przed tym jak dotrze do serwera.

Pojawia się pytanie:

Po co w ogóle chcemy przechwytywać ten ruch?

Podczas testowania aplikacji pod kątem bezpieczeństwa, wpisując złośliwy kod w formularzu w oknie przeglądarki, często widzimy, że interfejs zwraca błąd wprowadzonych danych. Można by było pomyśleć, że aplikacja jest bezpieczna, ale czy na pewno?

Co gdybyśmy pominęli warstwę Front-End’u i spróbowali złośliwy kod przesłać bezpośrednio do serwera pomijając walidację po stronie klienta? Jak zachowa się Back-End, gdy otrzyma zmodyfikowany request ze złośliwym kodem?


W analizie tych scenariuszy pomoże nam właśnie Burp Suite.


Jak wcześniej wspomniałem, Burp tworzy na naszym komputerze lokalny serwer Proxy. Naszym zadaniem będzie skonfigurowanie przeglądarki tak, aby kierowała cały ruch wychodzący do tego serwera.

Serwer Proxy, jak każdy inny serwer, posiada swój adres oraz port, na którym działa. Domyślnie Burp działa na adresie 127.0.0.1 i porcie 8080. Te ustawienia jesteśmy w stanie zmienić w zakładce Proxy, a dalej w podzakładce Options.

Teraz pozostaje nam wprowadzenie tego adresu w ustawieniach przeglądarki. W tym artykule będziemy korzystać z przeglądarki Firefox zainstalowanej w systemie Kali Linux. (Jeżeli nie wiesz jak zainstalować system Kali na własnym komputerze, to zapraszam do tego video: link)

W oknie przeglądarki wchodzimy w Preferences, następnie wpisujemy w pole tekstowe “proxy” i klikamy w Settings.

Wybieramy opcję “Manual proxy configuration”.

W pole HTTP Proxy wpisujemy “127.0.0.1”, a w pole Port “8080”

Zaznaczamy również opcję “Use this proxy server for all protocols” (dzięki tej opcji będziemy mogli przechwytywać requesty wysyłane przez HTTPS).

Zatwierdzamy przyciskiem “OK”.

Ustawienie tego parametru może się różnić w zależności od przeglądarki systemu. Linki do konkretnych systemów i przeglądarek możecie zobaczyć w dokumentacji Burpa. Linki poniżej

Konfiguracja – Chrome

Konfiguracja – IE

Konfiguracja – Safari

Pierwsze uruchomienie

Uruchamiamy ściągniętą aplikacje Burp. W wersji 1.7.36 dostępnej w Kali (wersja 2019.1) Burp wita nas komunikatem o wersji Javy zainstalowanej na systemie oraz tym, że aktualna wersja Burpa nie została przetestowana dokładnie na tej wersji Javy. Jak zoabaczymy później, jest to dość istotny komunikat, ale nim zajmiemy się za chwilę. Klikamy “OK”.

Pierwsze okno pyta nas czy chcemy zapisać projekt.

Projekt to zbiór wszystkich naszych działań, które wykonujemy podczas pentestu webaplikacji. Jest to dość przydatne, gdy chcemy mieć zapisaną historię naszych działań. Zdarza się także, że klient/osoba zlecająca nam pentest oddzywa się po pewnym czasie z pytaniem czy dana funkcjonalność/podstrona była przetestowana. Mając zapisany projekt możemy to w łatwy sposób zweryfikować. Oczywiście robiąc szybkie testy nie jest konieczne zapisywanie pliku projektu, stąd opcja “Temporary Project”.

Ta opcja jest niedostępna w wersji Community, więc klikamy przycisk “Next”.

W kolejnym oknie mamy możliwość wczytania specyficznych ustawień. Gdybyśmy podczas jakiegoś pentestu potrzebowali konkretnych ustawień np. inny serwer proxy, inny port, takie ustawienia możemy zapisać i ponownie je wczytać w tym oknie.

Na ten moment wybierzmy opcję “Use Burp Defaults” i kliknijmy przycisk “Start Burp”.

Główne okno Burpa może wyglądać przytłaczająco na początku, ale bez obaw, dzisiaj skupimy się na poprawnej konfiguracji, a w kolejnych artykułach przeprowadzę Was przez wszystkie zakładki.

Żeby sprawdzić czy wszystko działa, spróbójmy wejść na stronę google.com w naszej przeglądarce.

Wpisujemy adres naciskamy Enter i widzimy że strona się ładuje a w bocznej belce podkreśliła nam się ikona uruchomionego Burp’a

Klikamy w ikonę Burpa i widzimy, że zakładka Proxy też się podświetliła. Przechodzimy więc w zakładkę proxy i widzimy nasz Request, który chcieliśmy wykonać. Został on przechwycony zaraz po tym jak nacisnęliśmy Enter po wpisaniu adresu google.com w przeglądarce.

Kliknijmy parę razy na Forward, żeby strona mogła się załadować. W oknie przeglądarki widzimy, że połączenie nie jest bezpieczne. Dzieje się tak dlatego, że przeglądarka chcąc otworzyć stronę po HTTPS rozpoznaje, że nasz ruch został przechwycony przez serwer proxy i nie jest to zaufane źródło. Żeby pozbyć się tego komunikatu musimy wgrać certyfikat, który będzie określał Burpa jako zaufane źródło.

Wgrywamy certyfikat

W naszej przeglądarce wchodzimy na adres 127.0.0.1:8080

Klikamy w CA Certificate i ściągamy certyfikat, który potem zaimportujemy w naszej przeglądarce. Aby to zrobić, wchodzimy w Preferences, a następnie w polu tekstowym wpisujemy “certificate” i klikamy w “View Certificate…”, a dalej w “Import”.

Wybieramy plik z naszym certyfikatem i w kolejnym oknie zaznaczamy opcje “Trust this CA to identify websites”. Klikamy “OK”, w kolejnym oknie znów “OK” i od tej pory możemy przechwytywać Requesty przesyłane przez HTTPS…

SSL_ERROR_RX_RECORD_TOO_LONG

Niestety nie do końca jest tak różowo. Próbując wejść znów na google.com przeglądarka odpowiada błędem “Secure Connection Failed”. Ten błąd wynika z wersji JAVY, którą mamy zainstalowaną na Kali. Jest to błąd znany twórcom Burp’a, ale na ten moment (Burp wersja 1.7.36 i Kali wersja 2019.1) rozwiązaniem jest downgrade Javy (wybór poprzedniej wersji).

Żeby to zrobić musimy uruchomić terminal z menu bocznego:

wpisać komendę:

update-alternatives –config java

oraz wybrać opcję nr 2 gdzie wybieramy Javę w wersji 8.

Teraz wystarczy uruchomić ponownie Burp’a (zauważcie, że komunikat o wersji Javy zniknął) i już możemy otwierać strony po HTTPS przez naszego Burp’a.

W kolejnym artykule omówimy dokładnie co znajduje się w zakładce Proxy i Target. Zapraszam.

Spodobał Ci się artykuł? Zalinkuj proszę: