Przegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2

Jakiś czas temu pisałem o tym, ale nieco skromnie i chaotycznie. Później postanowiłem rozszerzyć listę narzędzi w przeglądzie, dodać strukturę artykułu, uwzględnić krytykę (bardzo dziękuję Lefty za rady) i wysłałem go na konkurs w SekLab (i opublikowałem link, ale z wielu zrozumiałych powodów nikt go nie zobaczył). Konkurs się zakończył, wyniki ogłoszono, a ja z czystym sumieniem mogę go (artykuł) opublikować na Habrze.

Darmowe narzędzia dla pentesterów aplikacji internetowych

W tym artykule opowiem o najpopularniejszych narzędziach do pentestowania (testowania penetracyjnego) aplikacji internetowych, stosując strategię 'czarnej skrzynki'.
W tym celu przyjrzymy się narzędziom, które pomogą w tym typie testowania. Rozważymy następujące kategorie produktów:

  1. Skanery sieciowe
  2. Skanery luk w skryptach internetowych
  3. Eksploatacja
  4. Automatyzacja iniekcji
  5. Debuggery (sniffery, lokalne proxy itd.)


Niektóre produkty mają uniwersalny 'charakter', dlatego będę je przypisywał do tej kategorii, w której mają bwiększąardziej zauważalne wyniki (subiektywna opinia).

Skanery sieciowe.

Główne zadanie — zidentyfikować dostępne usługi sieciowe, ustalić ich wersje, określić system operacyjny itd.

NmapPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
Nmap ('Network Mapper') to darmowe narzędzie z otwartym kodem źródłowym do analizy sieci i audytu bezpieczeństwa systemów. Zamiast konsoli, zapaleni przeciwnicy mogą używać Zenmapa, interfejsu graficznego do Nmapa.
To nie tylko 'inteligentny' skaner, to poważne, rozszerzalne narzędzie (z 'niezwykłych funkcji' — obecność skryptu do sprawdzania węzła na obecność robaka "Stuxnet" (wspomniano wcześniej tutaj). Typowy przykład użycia:

nmap -A -T4 localhost

-A do określenia wersji systemu operacyjnego, skanowania z użyciem skryptów i śledzenia
-T4 ustawienie kontroli czasu (więcej — szybciej, od 0 do 5)
localhost — docelowy host
Coś ostrzejszego?

nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost

To zestaw opcji z profilu 'wolne, kompleksowe skanowanie' w Zenmapie. Wykonuje się dosyć długo, ale daje ostatecznie bardziej szczegółowe informacje, które można uzyskać o systemie docelowym. Podręcznik referencyjny w języku polskim, jeśli postanowiliście zgłębić temat, a także polecam tłumaczenie artykułu Przewodnik dla początkujących po Nmapie.
Nmap zdobył tytuł 'Produktu Bezpieczeństwa Roku' w takich czasopismach i społecznościach jak Linux Journal, Info World, LinuxQuestions.Org i Codetalker Digest.
Ciekawy moment, Nmap można zobaczyć w filmach „Matrix: Reaktywacja”, „Szklana pułapka 4”, „Ultimatum Bourne'a”, „Chottabych” i innych.

IP-ToolsPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
IP-Tools — to zestaw różnych narzędzi sieciowych, dostarczany z interfejsem graficznym, „dedykowany” użytkownikom systemu Windows.
Skaner portów, zasobów współdzielonych (udostępniane drukarki/foldery), WhoIs/Finger/Lookup, klient telnet i wiele więcej. Po prostu wygodne, szybkie, funkcjonalne narzędzie.

Nie ma szczególnego sensu rozważać innych produktów, ponieważ w tej dziedzinie jest wiele narzędzi, a wszystkie działają na podobnej zasadzie i mają podobne funkcje. Mimo to najczęściej używany pozostaje nmap.

Skanery luk w skryptach internetowych

Próbują znaleźć popularne podatności (SQL inj, XSS, LFI/RFI itd.) lub błędy (nieusunięte pliki tymczasowe, indeksowanie katalogów itp.)

Acunetix Web Vulnerability ScannerPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
Acunetix Web Vulnerability Scanner — z linku widać, że to skaner xss, ale to nie do końca tak. Darmowa wersja dostępna pod linkiem oferuje dość dużą funkcjonalność. Zazwyczaj osobę, która uruchomiła ten skaner po raz pierwszy i otrzymała raport o swoim zasobie ogarnia mały szok, a zrozumiesz dlaczego, robiąc to. To bardzo potężny produkt do analizy wszelkich możliwych podatności na stronie i działa nie tylko z nam znanymi stronami na php, ale i w innych językach (choć różnica w języku nie jest wskaźnikiem). Nie ma sensu szczegółowo opisywać instrukcji, ponieważ skaner po prostu „przechwytuje” działania użytkownika. Coś podobnego do „dalej, dalej, dalej, gotowe” w typowej instalacji oprogramowania.

NiktoPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
Nikto to skaner internetowy Open Source (GPL). Eliminuję rutynową, ręczną pracę. Szuka na docelowej stronie niedokładnych skryptów (jakieś test.php, index_.php itp.), narzędzi do administracji bazy danych (/phpmyadmin/, /pma i podobne) itd., czyli sprawdza zasób pod kątem najczęstszych błędów, które zwykle wynikają z czynnika ludzkiego.
Ponadto, jeśli znajdzie jakiś popularny skrypt, sprawdza go pod kątem wydanych exploitów (które znajdują się w bazie).
Informuje o dostępnych „niepożądanych” metodach, typu PUT i TRACE
I tak dalej. Bardzo wygodne, jeśli jesteś audytorem i każdego dnia przeprowadzasz analizę stron internetowych.
Z negatywów chciałbym zaznaczyć wysoki odsetek fałszywych alarmów. Na przykład, jeśli Twoja strona zamiast błędu 404 (gdy powinien się pojawić) cały czas zwraca stronę główną, skaner powie, że na Twojej stronie wszystkie skrypty i wszelkie luki z jego bazy. W praktyce takie sytuacje zdarzają się niezbyt często, ale faktem jest, że wiele zależy od struktury Twojej strony.
Klasyczne użycie:

.\/nikto.pl -host localhost

Jeśli trzeba być autoryzowanym na stronie, można ustawić cookie w pliku nikto.conf, zmienna STATIC-COOKIE.

WiktoPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
Wikto — Nikto pod Windows, ale z pewnymi dodatkowymi funkcjami, takimi jak „niedokładna” logika podczas sprawdzania kodu pod kątem błędów, użycie GHDB, pozyskiwanie linków i folderów zasobów, monitorowanie na żywo zapytań/odpowiedzi HTTP. Wikto został napisany w C# i wymaga .NET framework.

skipfishPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
skipfish — skaner luk w zabezpieczeniach webowych od Michala Zalewskiego (znanego pod pseudonimem lcamtuf). Napisany w C, wieloplatformowy (dla Windows potrzebny jest Cygwin). Rekurencyjnie (i bardzo długo, około 20~40 godzin, chociaż ostatnio działał u mnie 96 godzin) przeszukuje całą stronę i znajduje wszelkie luki w bezpieczeństwie. Generuje też ogromne ilości ruchu (kilka GB przychodzącego/wychodzącego). Ale wszystkie środki są dobre, zwłaszcza jeśli masz czas i zasoby.
Typowe użycie:

./skipfish -o /home/reports www.example.com

W folderze «reports» będzie raport w HTML, przykład.

w3af Przegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
w3af — Web Application Attack and Audit Framework, open-source skaner luk w zabezpieczeniach webowych. Posiada GUI, ale można pracować z konsoli. Dokładniej, to framework z mnóstwem wtyczek.
Można długo opowiadać o jego zaletach, lepiej jest go wypróbować :]
Typowa praca z nim sprowadza się do wyboru profilu, wskazania celu i uruchomienia.

Mantra Security FrameworkPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
Mantra to marzenie, które stało się rzeczywistością. Kolekcja wolnych i otwartych narzędzi w zakresie bezpieczeństwa, zintegrowanych z przeglądarką internetową.
Bardzo przydatne przy testowaniu aplikacji webowych na każdym etapie.
Użycie sprowadza się do zainstalowania i uruchomienia przeglądarki.

W rzeczywistości istnieje bardzo dużo narzędzi w tej kategorii i dość trudno jest wyróżnić konkretną listę. Najczęściej każdy pentester samodzielnie określa zestaw potrzebnych mu narzędzi.

Eksploatacja

Aby zautomatyzować i ułatwić wykorzystanie luk w oprogramowaniu i skryptach, pisze się exploity, które wymagają jedynie przekazania parametrów, aby wykorzystać luka w bezpieczeństwie. Są też produkty, które eliminują ręczne wyszukiwanie exploitów i stosują je "w locie". O tej kategorii będzie mowa teraz.

Metasploit Framework Przegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
Framework Metasploit® — taki potwór w naszej branży. Zna tyle możliwości, że instrukcja zajmie kilka artykułów. Zajmiemy się automatycznym exploitowaniem (nmap + metasploit). Istota jest taka, że Nmap analizuje potrzebny port, ustawia serwis, a metasploit próbuje zastosować do niego exploity, w zależności od rodzaju serwisu (ftp, ssh itd.). Zamiast instrukcji tekstowej wstawiam filmik, dość popularny na temat autopwn.

Odtwarzaj wideo

Można też po prostu zautomatyzować pracę potrzebnego exploita. Na przykład:

msf > użyj auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > ustaw RHOST [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > uruchom

W rzeczywistości możliwości tego frameworka są bardzo szerokie, więc jeśli postanowiliście się zagłębić, przejdźcie do linkiem

ArmitagePrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
Armitage — OVA w stylu cyberpunk GUI dla Metasploit. Wizualizuje cel, rekomenduje exploity i zapewnia zaawansowane możliwości tego frameworka. Idealna opcja dla tych, którzy lubią, aby wszystko prezentowało się ładnie i efektownie.
Screencast:

Odtwarzaj wideo

Tenable Nessus®Przegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
skaner podatności Tenable Nessus® — ma wiele możliwości, ale potrzebujemy tylko jednej — określenia, dla jakich serwisów istnieją exploity. Darmowa wersja produktu to "home only".

Użycie:

  • Pobierz (dla swojego systemu), zainstaluj, zarejestruj się (klucz przychodzi na email).
  • Uruchom serwer, dodaj użytkownika w Nessus Server Manager (przycisk Zarządzaj użytkownikami).
  • Wchodzimy pod adres
    https://localhost:8834/

    i otrzymujemy klienta Flash w przeglądarce.

  • Skany -> Dodaj -> uzupełniamy pola (wybierając odpowiadający nam profil skanowania) i klikamy Skanuj.

Po chwili raport ze skanowania pojawi się w zakładce Raporty.
Do sprawdzania praktycznej podatności serwisów na exploity można użyć opisanego powyżej Frameworka Metasploit lub spróbować znaleźć exploit (na przykład na Explot-db, packet storm, explot search i innych) i użyć go ręcznie przeciwko swojemu systemowi.
IMHO: zbyt rozbudowany. Przytoczyłem go jako jednego z liderów w tej dziedzinie branży oprogramowania.

Automatyzacja wstrzykiwań.

Wiele skanerów zabezpieczeń aplikacji internetowych poszukuje podatności na wstrzyknięcia, ale wciąż są to tylko ogólne skanery. Istnieją narzędzia, które konkretnie zajmują się wyszukiwaniem i wykorzystaniem takich wstrzyknięć. O nich właśnie mowa.

sqlmapPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
sqlmap — narzędzie open-source do wyszukiwania i eksploatacji SQL injection. Obsługuje takie serwery baz danych jak: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Typowe użycie sprowadza się do polecenia:

python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Istnieje wiele materiałów, w tym także w języku polskim. Oprogramowanie bardzo ułatwia pracę pentestera w tej dziedzinie.
Dodam oficjalną demonstrację wideo:

Odtwarzaj wideo

bsqlbf-v2
bsqlbf-v2 — skrypt w języku Perl, brute-forcer "ślepych" SQL injection. Działa zarówno z wartościami typu integer w URL, jak i ze stringami.
Obsługuje bazy danych:

  • MS-SQL
  • MySQL
  • PostgreSQL
  • Oracle

Przykład użycia:

./bsqlbf-v2-3.pl -url www.somehost.com/blah.php?u=5 -blind u -sql "select table_name from imformation_schema.tables limit 1 offset 0" -database 1 -type 1

-url www.somehost.com/blah.php?u=5 — Link z parametrami
-blind u — parametr do iniekcji (domyślnie pobierany jako ostatni z ciągu adresowego)
-sql "select table_name from information_schema.tables limit 1 offset 0" — nasza dowolna kwerenda do bazy
-database 1 — serwer bazy danych: MSSQL
-type 1 — typ ataku, „ślepy” wstrzyknięcie, oparte na odpowiedziach True i Error (na przykład błędy składniowe)

Debuggery

Te narzędzia są używane głównie przez programistów w przypadku problemów z wynikami działania ich kodu. Jednak ten obszar jest także przydatny w pentestingu, kiedy można zastępować potrzebne dane „w locie”, analizować, co przychodzi w odpowiedzi na nasze parametry wejściowe (na przykład przy fuzzingu) itd.

Burp Suite
Burp Suite — zestaw narzędzi, które pomagają podczas testów penetracyjnych. W Internecie znajduje się dobry przegląd w języku polskim od Raz0r (wprawdzie z 2008 roku).
W darmowej wersji znajduje się:

  • Burp Proxy — lokalny proxy, pozwala na modyfikację już utworzonych zapytań z przeglądarki
  • Burp Spider — pająk, znajduje istniejące pliki i katalogi
  • Burp Repeater — ręczne wysyłanie zapytań HTTP
  • Burp Sequencer — analiza losowych wartości w formularzach
  • Burp Decoder — standardowy kodująco-dekodujący (html, base64, hex itd.), których tysiące można szybko napisać w dowolnym języku
  • Burp Comparer — komponent do porównywania ciągów

W zasadzie ten pakiet rozwiązuje prawie wszystkie problemy związane z tym obszarem.

FiddlerPrzegląd darmowych narzędzi do pentestingu zasobów webowych i nie tylko v2
Fiddler — Fiddler to debug proxy, który rejestruje cały ruch HTTP(S). Umożliwia badanie tego ruchu, ustawianie breakpointów i „zabawy” z przychodzącymi lub wychodzącymi danymi.

Są też Firesheep, potwór Wireshark i inne, wybór należy do użytkownika.

Podsumowanie

Oczywiście każdy pentester ma swój arsenał i zestaw narzędzi, ponieważ jest ich po prostu mnóstwo. Starałem się przedstawić jedne z najwygodniejszych i najpopularniejszych. Ale aby każdy chętny miał możliwość zapoznania się z innymi narzędziami w tym zakresie, podam poniżej linki.

Różne rankingi/listy skanerów i narzędzi

Dystrybucje Linuxa, które już zawierają wiele różnych narzędzi do pentestingu

upd: Dokumentacja BurpSuite w języku rosyjskim od zespołu «Hack4Sec» (dodał AntonKuzmin)

P.S. Nie można pominąć XSpider. Nie bierze udziału w przeglądzie, chociaż jest warunkowo darmowy (dowiedziałem się o tym, gdy wysłałem artykuł do SekLab, z tego powodu (brak wiedzy i brak najnowszej wersji 7.8) i nie uwzględniłem go w artykule). I pierwotnie planowałem jego przegląd (mam przygotowane trudne testy), ale nie wiem, czy świat go zobaczy.

P.P.S. Niektóre materiały z artykułu będą wykorzystane zgodnie z przeznaczeniem w nadchodzącym wykładzie na CodeFest 2012 w sekcji QA, w którym będą narzędzia nie wymienione tutaj (oczywiście darmowe), a także opowiem o algorytmie, w jakiej kolejności co używać, jakiego wyniku oczekiwać, jakie konfiguracje stosować i różne wskazówki i triki przy pracy (myślę o wykładzie prawie codziennie, postaram się przedstawić wszystkie najlepsze rzeczy na temat tematu)
Zresztą, w związku z tym artykułem odbył się wykład na Open InfoSec Days (tag na Habrze, stronę), można rabować karawany zobaczyć materiały.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster