Narzędzia internetowe, czyli od czego zacząć jako pentester?

Kontynuować porozmawiajmy o przydatnych narzędziach dla pentesterów. W nowym artykule przyjrzymy się narzędziom do analizy bezpieczeństwa aplikacji internetowych.

Nasz kolega Kochaj Zrobiłem już coś takiego kompilacja jakieś siedem lat temu. Ciekawie jest zobaczyć, które narzędzia zachowały i umocniły swoją pozycję, a które zeszły na dalszy plan i są obecnie rzadko używane.
Narzędzia internetowe, czyli od czego zacząć jako pentester?

Należy pamiętać, że obejmuje to również Burp Suite, ale będzie osobna publikacja na ten temat i jego przydatnych wtyczkach.

Spis treści:

Zgromadzić

Zgromadzić - narzędzie Go do wyszukiwania i wyliczania subdomen DNS oraz mapowania sieci zewnętrznej. Amass to projekt OWASP, którego celem jest pokazanie osobom z zewnątrz, jak wyglądają organizacje w Internecie. Amass pozyskuje nazwy subdomen na różne sposoby, narzędzie wykorzystuje zarówno rekurencyjne wyliczanie subdomen, jak i wyszukiwanie open source.

Aby odkryć wzajemnie połączone segmenty sieci i numery systemów autonomicznych, Amass wykorzystuje adresy IP uzyskane podczas pracy. Wszystkie znalezione informacje służą do budowy mapy sieci.

Plusy:

  • Techniki gromadzenia informacji obejmują:
    * DNS - słownikowe wyszukiwanie subdomen, subdomen bruteforce, inteligentne wyszukiwanie z wykorzystaniem mutacji na podstawie znalezionych subdomen, odwrotne zapytania DNS i wyszukiwanie serwerów DNS, na których można wykonać żądanie przeniesienia strefy (AXFR);

    * Wyszukiwanie typu open source - Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;

    * Przeszukiwanie baz certyfikatów TLS - Censys, CertDB, CertSpotter, Crtsh, Entrust;

    * Korzystanie z interfejsów API wyszukiwarek - BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;

    * Przeszukiwanie internetowych archiwów internetowych: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;

  • Integracja z Maltego;
  • Zapewnia najpełniejsze pokrycie zadania wyszukiwania subdomen DNS.

Wady:

  • Bądź ostrożny z amass.netdomains - spróbuje skontaktować się z każdym adresem IP w zidentyfikowanej infrastrukturze i uzyskać nazwy domen z odwrotnych wyszukiwań DNS i certyfikatów TLS. Jest to technika „głośna”, która może ujawnić Twoją działalność wywiadowczą w organizacji objętej dochodzeniem.
  • Duże zużycie pamięci, przy różnych ustawieniach może pochłonąć nawet 2 GB RAM-u, co nie pozwoli na uruchomienie tego narzędzia w chmurze na tanim VDS-ie.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

Altdns

Altdns — narzędzie w języku Python służące do kompilowania słowników do wyliczania subdomen DNS. Umożliwia generowanie wielu wariantów subdomen za pomocą mutacji i permutacji. W tym celu wykorzystywane są słowa często spotykane w subdomenach (np. test, dev, staging), wszelkie mutacje i permutacje są stosowane do już znanych subdomen, które można zgłosić na wejście Altdns. Wynikiem jest lista odmian subdomen, które mogą istnieć, a lista ta może być później wykorzystana do brutalnej siły DNS.

Plusy:

  • Działa dobrze z dużymi zbiorami danych.

akwaton

akwaton - wcześniej był bardziej znany jako kolejne narzędzie do wyszukiwania subdomen, jednak sam autor porzucił to na rzecz wspomnianego Amass. Teraz aquatone został przepisany w Go i jest bardziej nastawiony na wstępny rekonesans na stronach internetowych. W tym celu aquatone przechodzi przez określone domeny i wyszukuje strony internetowe na różnych portach, po czym zbiera wszystkie informacje o witrynie i wykonuje zrzut ekranu. Wygodny do szybkiego wstępnego rozpoznania stron internetowych, po którym można wybrać priorytetowe cele ataków.

Plusy:

  • Dane wyjściowe tworzą grupę plików i folderów, które są wygodne w użyciu podczas dalszej pracy z innymi narzędziami:
    * Raport HTML zawierający zebrane zrzuty ekranu i tytuły odpowiedzi pogrupowane według podobieństwa;

    * Plik ze wszystkimi adresami URL, pod którymi odnaleziono strony internetowe;

    * Plik ze statystykami i danymi stron;

    * Folder z plikami zawierającymi nagłówki odpowiedzi od znalezionych celów;

    * Folder z plikami zawierającymi treść odpowiedzi od znalezionych celów;

    * Zrzuty ekranu znalezionych stron internetowych;

  • Obsługuje pracę z raportami XML z Nmap i Masscan;
  • Używa bezgłowego Chrome/Chromium do renderowania zrzutów ekranu.

Wady:

  • Może zwrócić uwagę systemów wykrywania włamań, dlatego wymaga konfiguracji.

Zrzut ekranu został wykonany dla jednej ze starszych wersji aquatone (v0.5.0), w której zaimplementowano wyszukiwanie subdomen DNS. Starsze wersje można znaleźć pod adresem strona z wydaniami.
Narzędzia internetowe, czyli od czego zacząć jako pentester?

Masowy DNS

Masowy DNS to kolejne narzędzie do wyszukiwania subdomen DNS. Główną różnicą jest to, że wysyła zapytania DNS bezpośrednio do wielu różnych programów rozpoznawania nazw DNS i robi to ze znaczną szybkością.

Plusy:

  • Szybki - zdolny do rozpoznawania ponad 350 tysięcy nazw na sekundę.

Wady:

  • MassDNS może powodować znaczne obciążenie używanych programów rozpoznawania nazw DNS, co może prowadzić do blokad na tych serwerach lub skarg do Twojego dostawcy usług internetowych. Ponadto spowoduje to duże obciążenie serwerów DNS firmy, jeśli je posiadają i są odpowiedzialne za domeny, które próbujesz rozwiązać.
  • Lista programów rozpoznawania nazw jest obecnie nieaktualna, ale jeśli wybierzesz uszkodzone programy rozpoznawania nazw DNS i dodasz nowe, znane, wszystko będzie dobrze.

Narzędzia internetowe, czyli od czego zacząć jako pentester?
Zrzut ekranu programu Aquatone v0.5.0

mapa nsec3

mapa nsec3 to narzędzie Pythona umożliwiające uzyskanie pełnej listy domen chronionych DNSSEC.

Plusy:

  • Szybko wykrywa hosty w strefach DNS przy minimalnej liczbie zapytań, jeśli w strefie włączona jest obsługa DNSSEC;
  • Zawiera wtyczkę do programu John the Ripper, której można użyć do złamania powstałych skrótów NSEC3.

Wady:

  • Wiele błędów DNS nie jest obsługiwanych poprawnie;
  • Nie ma automatycznej równoległości przetwarzania rekordów NSEC - trzeba ręcznie podzielić przestrzeń nazw;
  • Wysokie zużycie pamięci.

Acunetix

Acunetix — skaner podatności sieci, który automatyzuje proces sprawdzania bezpieczeństwa aplikacji internetowych. Testuje aplikację pod kątem zastrzyków SQL, XSS, XXE, SSRF i wielu innych luk w zabezpieczeniach sieciowych. Jednak, jak każdy inny skaner, różnorodne luki internetowe nie zastępują pentestera, ponieważ nie jest on w stanie znaleźć złożonych łańcuchów luk ani luk w logice. Ale obejmuje wiele różnych luk w zabezpieczeniach, w tym różne CVE, o których pentester mógł zapomnieć, więc jest to bardzo wygodne, aby uwolnić cię od rutynowych kontroli.

Plusy:

  • Niski poziom fałszywych alarmów;
  • Wyniki można eksportować w postaci raportów;
  • Wykonuje dużą liczbę kontroli pod kątem różnych luk;
  • Równoległe skanowanie wielu hostów.

Wady:

  • Nie ma algorytmu deduplikacji (Acunetix uzna strony o identycznej funkcjonalności za różne, ponieważ prowadzą do różnych adresów URL), ale programiści nad nim pracują;
  • Wymaga instalacji na osobnym serwerze WWW, co komplikuje testowanie systemów klienckich z połączeniem VPN i używanie skanera w izolowanym segmencie lokalnej sieci klienckiej;
  • Badana usługa może narobić hałasu, np. wysyłając zbyt wiele wektorów ataku na formularz kontaktowy w serwisie, co znacznie komplikuje procesy biznesowe;
  • Jest to rozwiązanie autorskie, a zatem nie bezpłatne.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

Poszukiwań

Poszukiwań — narzędzie Pythona do brutalnego wymuszania katalogów i plików na stronach internetowych.

Plusy:

  • Potrafi odróżnić prawdziwe strony „200 OK” od stron „200 OK”, ale z tekstem „strona nie odnaleziona”;
  • Zawiera poręczny słownik, który zapewnia dobrą równowagę pomiędzy rozmiarem a wydajnością wyszukiwania. Zawiera standardowe ścieżki wspólne dla wielu CMS-ów i stosów technologicznych;
  • Własny format słownika, który pozwala osiągnąć dobrą wydajność i elastyczność w wyliczaniu plików i katalogów;
  • Wygodne wyjście - zwykły tekst, JSON;
  • Może wykonywać throttling – przerwę pomiędzy żądaniami, która jest niezbędna w przypadku każdej słabej usługi.

Wady:

  • Rozszerzenia muszą być przekazywane jako ciąg znaków, co jest niewygodne, jeśli trzeba przekazać wiele rozszerzeń na raz;
  • Aby móc korzystać ze słownika, należy go nieco zmodyfikować do formatu słownika Dirsearch, aby uzyskać maksymalną wydajność.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

fuzz

fuzz - Fuzzer aplikacji internetowych w Pythonie. Prawdopodobnie jeden z najbardziej znanych fazerów sieciowych. Zasada jest prosta: wfuzz pozwala na etapowanie dowolnego miejsca w żądaniu HTTP, co umożliwia etapowanie parametrów GET/POST, nagłówków HTTP, w tym plików cookie i innych nagłówków uwierzytelniających. Jednocześnie jest to również wygodne w przypadku prostej brutalnej siły katalogów i plików, do których potrzebny jest dobry słownik. Posiada również elastyczny system filtrów, dzięki któremu możesz filtrować odpowiedzi ze strony internetowej według różnych parametrów, co pozwala na osiągnięcie skutecznych wyników.

Plusy:

  • Wielofunkcyjny – konstrukcja modułowa, montaż zajmuje kilka minut;
  • Wygodny mechanizm filtrowania i fuzzowania;
  • Można etapować dowolną metodę HTTP, a także dowolne miejsce w żądaniu HTTP.

Wady:

  • W budowie.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

ufff

ufff — fuzzer sieciowy w Go, stworzony na „obraz i podobieństwo” wfuzz, pozwala na brute-force plików, katalogów, ścieżek URL, nazw i wartości parametrów GET/POST, nagłówków HTTP, w tym nagłówka Hosta wirtualnych hostów. wfuzz różni się od swojego brata większą szybkością i kilkoma nowymi funkcjami, na przykład obsługuje słowniki w formacie Dirsearch.

Plusy:

  • Filtry są podobne do filtrów wfuzz, pozwalają elastycznie konfigurować brutalną siłę;
  • Umożliwia fuzzowanie wartości nagłówka HTTP, danych żądania POST oraz różnych części adresu URL, w tym nazw i wartości parametrów GET;
  • Można określić dowolną metodę HTTP.

Wady:

  • W budowie.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

grubasek

grubasek — narzędzie Go do rozpoznania, posiada dwa tryby pracy. Pierwszy służy do brutalnego wymuszania plików i katalogów na stronie internetowej, drugi służy do brutalnego wymuszania subdomen DNS. Narzędzie początkowo nie obsługuje rekurencyjnego wyliczania plików i katalogów, co oczywiście oszczędza czas, ale z drugiej strony brutalną siłę każdego nowego punktu końcowego na stronie trzeba uruchamiać osobno.

Plusy:

  • Wysoka prędkość działania zarówno przy przeszukiwaniu subdomen DNS metodą brute-force, jak i przy użyciu metody brute-force plików i katalogów.

Wady:

  • Obecna wersja nie obsługuje ustawiania nagłówków HTTP;
  • Domyślnie tylko niektóre kody stanu HTTP (200,204,301,302,307 XNUMX XNUMX XNUMX XNUMX) są uznawane za prawidłowe.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

Arjun

Arjun - narzędzie do brutalnej siły ukrytych parametrów HTTP w parametrach GET/POST, a także w JSON. Wbudowany słownik zawiera 25 980 słów, które Ajrun sprawdza w niemal 30 sekund. Sztuczka polega na tym, że Ajrun nie sprawdza każdego parametru osobno, ale sprawdza ~1000 parametrów na raz i sprawdza, czy odpowiedź się zmieniła. Jeżeli odpowiedź uległa zmianie, dzieli te 1000 parametrów na dwie części i sprawdza, która z nich ma wpływ na odpowiedź. Zatem za pomocą prostego wyszukiwania binarnego można znaleźć parametr lub kilka ukrytych parametrów, które wpłynęły na odpowiedź i dlatego mogą istnieć.

Plusy:

  • Wysoka prędkość dzięki wyszukiwaniu binarnemu;
  • Obsługa parametrów GET/POST, a także parametrów w postaci JSON;

Wtyczka do Burp Suite działa na podobnej zasadzie - górnik param, który jest również bardzo dobry w znajdowaniu ukrytych parametrów HTTP. Powiemy Ci więcej na ten temat w nadchodzącym artykule o Burpie i jego wtyczkach.
Narzędzia internetowe, czyli od czego zacząć jako pentester?

Wyszukiwarka łączy

Wyszukiwarka łączy — skrypt Pythona służący do wyszukiwania linków w plikach JavaScript. Przydatne do wyszukiwania ukrytych lub zapomnianych punktów końcowych/adresów URL w aplikacji internetowej.

Plusy:

  • Szybko;
  • Istnieje specjalna wtyczka do przeglądarki Chrome oparta na LinkFinder.

.

Wady:

  • Niewygodny wniosek końcowy;
  • Nie analizuje JavaScriptu w czasie;
  • Całkiem prosta logika wyszukiwania linków - jeśli JavaScript jest w jakiś sposób zaciemniony lub początkowo brakuje linków i są one generowane dynamicznie, to nie będzie w stanie niczego znaleźć.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

JSParser

JSParser to skrypt Pythona, który używa Tornado и JSBeutifier do analizowania względnych adresów URL z plików JavaScript. Bardzo przydatne do wykrywania żądań AJAX i tworzenia listy metod API, z którymi aplikacja współdziała. Działa skutecznie w połączeniu z LinkFinder.

Plusy:

  • Szybkie analizowanie plików JavaScript.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

sqlmap

sqlmap to prawdopodobnie jedno z najbardziej znanych narzędzi do analizy aplikacji internetowych. Sqlmap automatyzuje wyszukiwanie i działanie zastrzyków SQL, współpracuje z kilkoma dialektami SQL i ma w swoim arsenale ogromną liczbę różnych technik, począwszy od prostych cudzysłowów po złożone wektory do wstrzykiwań SQL opartych na czasie. Ponadto posiada wiele technik dalszej eksploatacji dla różnych systemów DBMS, dzięki czemu przydaje się nie tylko jako skaner wstrzykiwań SQL, ale także jako potężne narzędzie do wykorzystywania już znalezionych wstrzykiwań SQL.

Plusy:

  • Duża liczba różnych technik i wektorów;
  • Niska liczba fałszywych alarmów;
  • Wiele opcji dostrajania, różne techniki, docelowa baza danych, skrypty sabotażowe do omijania WAF;
  • Możliwość tworzenia zrzutu wyjściowego;
  • Wiele różnych możliwości operacyjnych, np. dla niektórych baz danych - automatyczne ładowanie/rozładowywanie plików, uzyskiwanie możliwości wykonywania poleceń (RCE) i inne;
  • Wsparcie bezpośredniego połączenia z bazą danych z wykorzystaniem danych uzyskanych podczas ataku;
  • Możesz przesłać plik tekstowy z wynikami Burp jako dane wejściowe - nie ma potrzeby ręcznego tworzenia wszystkich atrybutów wiersza poleceń.

Wady:

  • Trudno jest dostosować, na przykład, do wypisywania niektórych własnych czeków ze względu na skąpą dokumentację na ten temat;
  • Bez odpowiednich ustawień przeprowadza niekompletny zestaw kontroli, co może wprowadzać w błąd.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

Mapa NoSQL

Mapa NoSQL — narzędzie Pythona do automatyzacji wyszukiwania i wykorzystywania zastrzyków NoSQL. Jest wygodny w użyciu nie tylko w bazach danych NoSQL, ale także bezpośrednio podczas audytu aplikacji internetowych korzystających z NoSQL.

Plusy:

  • Podobnie jak sqlmap, nie tylko znajduje potencjalną lukę, ale także sprawdza możliwość jej wykorzystania dla MongoDB i CouchDB.

Wady:

  • Nie obsługuje NoSQL dla Redis, Cassandra, trwają prace w tym kierunku.

oxml_xxe

oxml_xxe — narzędzie do osadzania exploitów XXE XML w różnego rodzaju plikach, które w jakiejś formie korzystają z formatu XML.

Plusy:

  • Obsługuje wiele popularnych formatów, takich jak DOCX, ODT, SVG, XML.

Wady:

  • Obsługa plików PDF, JPEG, GIF nie jest w pełni zaimplementowana;
  • Tworzy tylko jeden plik. Aby rozwiązać ten problem, możesz użyć narzędzia doc, które mogą utworzyć dużą liczbę plików ładunku w różnych miejscach.

Powyższe narzędzia świetnie radzą sobie z testowaniem XXE podczas ładowania dokumentów zawierających XML. Pamiętaj jednak, że procedury obsługi formatu XML można znaleźć w wielu innych przypadkach, na przykład XML może być używany jako format danych zamiast JSON.

Dlatego zalecamy zwrócenie uwagi na następujące repozytorium, które zawiera dużą liczbę różnych ładunków: ŁadunkiAllTheThings.

mapa tpl

mapa tpl - narzędzie Pythona do automatycznego identyfikowania i wykorzystywania luk w zabezpieczeniach Server-Side Template Injection; ma ustawienia i flagi podobne do sqlmap. Używa kilku różnych technik i wektorów, w tym ślepego wstrzykiwania, a także posiada techniki wykonywania kodu i ładowania/przesyłania dowolnych plików. Ponadto ma w swoim arsenale techniki dla kilkunastu różnych silników szablonów oraz kilka technik wyszukiwania zastrzyków kodu typu eval() w Pythonie, Ruby, PHP, JavaScript. Jeśli się powiedzie, otworzy się interaktywna konsola.

Plusy:

  • Duża liczba różnych technik i wektorów;
  • Obsługuje wiele silników renderujących szablony;
  • Wiele technik operacyjnych.

CeWL

CeWL - generator słownika w Ruby, stworzony w celu wyodrębnienia unikalnych słów z określonej witryny, podąża za linkami w witrynie na określoną głębokość. Skompilowany słownik unikalnych słów można później wykorzystać do brutalnego wymuszania haseł w usługach lub plikach i katalogach metodą brute-force w tej samej witrynie internetowej lub do atakowania wynikowych skrótów za pomocą hashcat lub John the Ripper. Przydatne przy tworzeniu „docelowej” listy potencjalnych haseł.

Plusy:

  • Łatwy w użyciu.

Wady:

  • Trzeba uważać z głębokością wyszukiwania, aby nie przejąć dodatkowej domeny.

Słabe przejście

Słabe przejście - serwis zawierający wiele słowników z unikalnymi hasłami. Niezwykle przydatny do różnych zadań związanych z łamaniem haseł, począwszy od prostej brutalnej siły online na kontach w usługach docelowych, po brutalną siłę otrzymanych skrótów w trybie off-line przy użyciu haszysz lub John The Ripper. Zawiera około 8 miliardów haseł o długości od 4 do 25 znaków.

Plusy:

  • Zawiera zarówno słowniki szczegółowe, jak i słowniki z najpopularniejszymi hasłami - możesz wybrać konkretny słownik dla własnych potrzeb;
  • Słowniki są aktualizowane i uzupełniane o nowe hasła;
  • Słowniki są posortowane według wydajności. Możesz wybrać opcję zarówno szybkiej brutalnej siły w Internecie, jak i szczegółowego wyboru haseł z obszernego słownika z najnowszymi wyciekami;
  • Dostępny jest kalkulator pokazujący czas potrzebny na złamanie haseł na Twoim sprzęcie.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

Do osobnej grupy chcielibyśmy zaliczyć narzędzia do sprawdzania CMS: WPScan, JoomScan i AEM hacker.

AEM_haker

Haker AEM to narzędzie służące do identyfikacji podatności w aplikacjach Adobe Experience Manager (AEM).

Plusy:

  • Potrafi zidentyfikować aplikacje AEM na podstawie listy adresów URL przesłanej do jego danych wejściowych;
  • Zawiera skrypty umożliwiające uzyskanie RCE poprzez załadowanie powłoki JSP lub wykorzystanie SSRF.

JoomScan

JoomScan — narzędzie Perla służące do automatyzacji wykrywania luk podczas wdrażania Joomla CMS.

Plusy:

  • Potrafi znaleźć wady konfiguracji i problemy z ustawieniami administracyjnymi;
  • Wyświetla listę wersji Joomla i powiązanych luk, podobnie dla poszczególnych komponentów;
  • Zawiera ponad 1000 exploitów dla komponentów Joomla;
  • Wyjście raportów końcowych w formatach tekstowych i HTML.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

WPScan

WPScan - narzędzie do skanowania witryn WordPress, ma w swoim arsenale luki zarówno w samym silniku WordPress, jak i w niektórych wtyczkach.

Plusy:

  • Możliwość wyświetlania nie tylko listy niebezpiecznych wtyczek i motywów WordPress, ale także uzyskiwania listy użytkowników i plików TimThumb;
  • Może przeprowadzać ataki brute-force na witryny WordPress.

Wady:

  • Bez odpowiednich ustawień przeprowadza niekompletny zestaw kontroli, co może wprowadzać w błąd.

Narzędzia internetowe, czyli od czego zacząć jako pentester?

Ogólnie rzecz biorąc, różni ludzie preferują różne narzędzia do pracy: wszystkie są dobre na swój sposób, a to, co lubi jedna osoba, może w ogóle nie odpowiadać drugiej. Jeśli uważasz, że niesłusznie zignorowaliśmy jakieś dobre narzędzie, napisz o tym w komentarzach!

Źródło: www.habr.com

Dodaj komentarz