Narzędzia do pentestów – najlepszą obroną jest atak

Jeśli chodzi o rekonesans, najlepszą opinią cieszy się obecnie recon-ng, skrypt napisany w Pythonie. Jest wiele narzędzi i stron internetowych o podobnym przeznaczeniu, ale to jest rozwijane od wielu lat i zostało solidnie dopracowane. Można korzystać z wielu aktualizacji i nowych modułów do niego (np. zbierania danych z Facebooka). Łatwo można też odnaleźć osoby związane z interesującą nas firmą, co umożliwiają moduły contacs:jigsaw oraz contacts:linkedin_auth. Są w stanie wyszukać te informacje w tych dwóch popularnych serwisach. Recon-ng działa interaktywnie, a interfejs programu nie jest oparty na systemie rozwijanych menu. Wykorzystuje wiele źródeł do zbierania danych, m.in. Google, Twittera czy Showdan. Niektóre z tych modułów wymagają płatnych interfejsów API (niektóre API są bezpłatne, a część modułów w ogóle nie korzysta z API). Porównując wyniki zwracane przez to narzędzia z efektami działania innych w tych samych sytuacjach, recon-ng z reguły gromadzi więcej przydatnych informacji. Można również skorzystać z dokumentacji dostępnej w Internecie. To wszystko sprawia, że recon-ng jest obowiązkową pozycją w ekwipunku włamywacza, jak również osoby odpowiedzialnej za bezpieczeństwo korporacyjnego środowiska IT.

Szybkie przeglądanie interfejsów WWW

Podczas fazy mapowania i wyszukiwania podatności typowym problemem jest konieczność ręcznego sprawdzenia wielu interfejsów webowych. W dużym środowisku jest to bardzo czasochłonne, jeśli trafi się na kilkadziesiąt czy nawet kilkaset serwerów HTTP. Aby przyspieszyć ten proces, można zaprząc dwa narzędzia: PeepingTom oraz Eyewitness. Potrafią one analizować wyniki skanów z Nmapa czy Nessusa, a następnie połączyć się z każdym wykrytym serwerem HTTP (lub HTTPS) i zrobić zrzut ekranu z interfejsu.

Zobacz również:

  • Testy penetracyjne systemów IT - czy warto w nie zainwestować?
  • Przeglądarka Chrome będzie jeszcze jakiś czas akceptować pliki cookie

Oba narzędzia generują raporty w formie pliku HTML, który zawiera wykonane zrzuty ekranu, nagłówki serwerów i odnośniki do stron internetowych. Jest to prosty i szybki sposób, aby sprawdzić, jak wygląda interfejs każdego serwera. Poza tym dostarcza więcej szczegółowych informacji, niż proste wyszukiwaniem nmapem.

Protokoły autowykrywania

Typową trudnością występującą niemal we wszystkich testach penetracyjnych jest brak mechanizmów kontroli związanych z WPAD (Web Proxy Autodiscovery Protocol). Jest to mechanizm wykorzystywany przez komputery do automatycznego wykrywania konfiguracji serwerów web proxy lub proxy w sieci lokalnej. Domyślnie systemy Windows są tak skonfigurowane, aby wyszukiwać maszyny o nazwie WPAD, co sprawia, że są łatwym celem ataków typu podszywanie się pod nazwę (name spoofing) czy man-in-the-middle. WPAD to odwieczne źródło frustracji dla administratorów IT, ponieważ zawsze można wykorzystać ten mechanizm, z wyjątkiem sytuacji, kiedy w danej sieci działa już serwer proxy lub mechanizm autowykrywania został wyłączony.

Można wykorzystać narzędzie Metasploit do podszywania się pod nazwę WPAD i udostępniać komputerom z systemem Windows pliki konfiguracyjne wskazujące na proxy uruchomione przez włamywacza czy testera. To z kolei umożliwia wstrzykiwanie złośliwego kodu do komunikacji HTTP przechodzącej przez fałszywy serwer proxy. Wydaje się jednak, że do tego celu lepiej nadaje się nowe narzędzie - Trustwave Spiderlab Responder . Oprócz takich funkcji, jak zbieranie hashy haseł, które można następnie próbować złamać lub wykorzystać w atakach SMS, Responder ma również wbudowane funkcje podszywania się pod nazwę WPAD, możliwość przechwytywania plików cookie i modyfikowania kodu HTML. Potrafi również podmieniać pliki EXE pobierane z Internetu.

Skrypty PowerShella

Kolejny mocnym narzędziem do wykorzystywania podatności jest zestaw skryptów do PowerShella. PowerSploit to skrypty mające ułatwiać pentesterom eskalację uprawnień, omijanie antyrisuów czy uruchamianie kodu na zaatakowanych maszynach. Nawet w dobrze monitorowanych środowiskach z wieloma warstwami ochrony – włączając w to antywirusy i białe listy aplikacji (dozwolone jest tylko uruchamianie aplikacje z listy) – te skrypty mogą być użyte, ponieważ PowerShell jest zaufanym narzędziem administracyjnym, którego uruchamianie rzadko jest ograniczane.

Poza tym zaletą PowerShella jest możliwość wykonywania wielu zadań administracyjnych, często na niskim poziomie systemu operacyjnego bez konieczność umieszczania w atakowanej maszynie własnego kodu, który może zostać łatwo wykryty przez oprogramowanie antywirusowe.

PowerSploit składa się z kilkunastu modułów, np. CodeExecution, ReverseEngineering czy AntivirusBypass. Jest to pierwsze narzędzie bezpieczeństwa wykorzystujące PowerShella, ale powstało już kilka innych, np. Nishang czy Veil-PowerView. Przed powstaniem PowerSploit stworzono PowerSyringe. Była to implementacja narzędzia Syringe (umożliwia dodawanie własnych instrukcji do niskopoziomowych programów odpowiedzialny za wywołanie powłoki systemowej) uruchamiana w PowerShellu. Takie narzędzia są często używane w ostatniej fazie ataku, ponieważ poprzez dodanie własnego kodu do procesów systemowych (shellcode injection) można wykonać wiele różnych zadań. Najczęściej służą do nawiązania zwrotnego połączenia, np. z komputerem atakującego, skąd następnie są wysyłane polecenia do wykonania.

Ponieważ użytkownicy zgłaszali potrzebę na bardziej ofensywne narzędzia, autorzy rozbudowali PowerSyringe o kolejne moduły, tworząc je zgodnie z najlepszymi praktykami PowerShella. Wraz z przybywaniem kolejnych funkcji narzędzie zaczęło przypominać takie rozwiązania, jak MetaSploit, więc sensu nabrała zmiana nazwy. Tak narodził się PowerSploit.

Testowanie bezpieczeństwa aplikacji internetowych

Dla wielu pentesterów Burp Suite (w wersji podstawowej dostępny bezpłatnie) jest podstawowym narzędziem pracy podczas analizowania aplikacji webowych. Narzędzie umożliwia kontrolowanie i analizowanie ruchu HTTP/HTTPS przesyłanego między przeglądarką testera a serwerem WWW testowanej aplikacji. Narzędzie stało się popularne jednak za sprawą rozbudowania o kilka zintegrowanych ze sobą modułów, np. Spider (mapowanie aplikacji) czy Intruder (automatyzacja ataków na aplikacje). Z kolei Repeater to moduł do ręcznego modyfikowania żądań HTTP oraz analizowania odpowiedzi na nie. Świetnie sprawdza się w połączeniu z innymi modułami Burpa. Przykładowo, można wysyłać żądania z Repeatera do analizowanych serwerów, których adresy są pobierane z historii stron modułu Burp Proxy. Taka integracja ułatwia pracę podczas testów penetracyjnych. Program uruchamia się w maszynie wirtualnej Javy, dzięki czemu działa bez problemu na różnych platformach systemowych.

Kolejnym wartym polecenia narzędziem ze względu na jego uniwersalność jest Arachni. Umożliwia korzystanie ze skanera uruchamianego z wiersza poleceń lub z bardzo wydajnej siatki skanerów, jak również z bibliotek Ruby do tworzenia skryptów. Arachni ma graficzny interfejs webowych, który umożliwia pracę wielu użytkownikom i przeprowadzanie niezależnych skanów w tym samym czasie. Użytkownicy mogą udostępniać sobie wyniki skanów czy informacje o wszelkich wykrytych lukach. Arachni potrafi również „uczyć się” na podstawie odpowiedzi HTTP odbieranych w czasie prowadzenia audytu oraz weryfikować wyniki testów, np. identyfikować fałszywe alarmy (false positive).

W testowania aplikacji webowych dobrze sprawdza się także pakiet Zed Attack Proxy (ZAP). Jest łatwy w obsłudze i mogą z niego korzystać nawet osoby mające niewielkie doświadczenie z bezpieczeństwem. Mimo to jest narzędziem przydatnym również dla doświadczonych użytkowników. Jednym z jego podstawowych zastosowań jest automatyzacja skanowania z wykorzystaniem różnych narzędzi umożliwiających ręczne wyszukiwanie podatności. Dzięki obsłudze dynamicznych certyfikatów SSL przechwytuje i analizuje zaszyfrowaną komunikację. ZAP działa jak man-in-the-middle, przekazując przeglądarce własny wygenerowany certyfikat. Warto dodać, że narzędzie jest dostępne w wielu wersjach językowych, także w języku polskim.

Korzystając z opisanych narzędzi, specjaliści od bezpieczeństwa mogą zbudować własny arsenał do identyfikowania słabo zabezpieczonych obszarów sieci i sprawdzania, jak da się wykorzystać wykryte luki. Wszystkie opisane narzędzia są bezpłatne. Można ich używać do aktywnego wyszukiwania i naprawiania podatności, zanim zostaną wykorzystane przez włamywaczy.


TOP 200