Jakiś czas temu pisałem o , 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ę za rady) i wysłałem go na konkurs w SekLab (i opublikowałem , 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:
- Skanery sieciowe
- Skanery luk w skryptach internetowych
- Eksploatacja
- Automatyzacja iniekcji
- 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.
Nmap
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 "" (wspomniano wcześniej ). 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. , jeśli postanowiliście zgłębić temat, a także polecam tłumaczenie artykułu .
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 .
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 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.
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.
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.
skipfish
— skaner luk w zabezpieczeniach webowych od (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, .
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 .
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 Framework
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 
— 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.

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
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:

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 , , 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.
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:

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 — 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
— zestaw narzędzi, które pomagają podczas testów penetracyjnych. W Internecie znajduje się 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.
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ż , potwór 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: w języku rosyjskim od zespołu «Hack4Sec» (dodał )
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 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 (, ), można rabować karawany zobaczyć .
Źródło: habr.com
