W poprzednim artykule omówiliśmy teoretyczne podstawy oraz metodykę testów penetracyjnych. Teraz pora przejść do warstwy czysto inżynieryjnej. Jako administrator sieci lub początkujący pentester musisz wiedzieć, jak w kontrolowany sposób badać podatności, posługiwać się podstawowymi narzędziami rekonesansu oraz weryfikować odporność systemów na łamanie haseł.
W tej części skupimy się na trzech filarach praktycznego audytu: mapowaniu usług za pomocą Nmapa, przeszukiwaniu baz exploitów oraz testowaniu poświadczeń (password cracking).
Ważna uwaga etyczna: Wszystkie testy penetracyjne, skanowania i próby łamania haseł należy przeprowadzać wyłącznie w ściśle kontrolowanych środowiskach (np. własne laboratoria wirtualne, maszyny testowe lub platformy typu TryHackMe / HackTheBox). Skanowanie obcych systemów bez pisemnej zgody jest niezgodne z prawem.
1. Mapowanie sieci i wykrywanie usług (Nmap)
Zanim cokolwiek przetestujesz, musisz poznać powierzchnię ataku. Podstawowym i niezastąpionym narzędziem do skanowania sieci jest Nmap (Network Mapper).
Aby przeskanować wybrany host testowy w poszukiwaniu otwartych portów, identyfikacji działających usług oraz ich wersji, stosuje się flagę wykrywania wersji -sV oraz skrypty domyślne -sC:
nmap -sV -sC 192.168.1.100
Dzięki temu dowiadujesz się nie tylko, które porty są otwarte (np. SSH na porcie 22, HTTP na 80), ale również z jakich dokładnych wersji oprogramowania korzysta serwer. Starsze, nieaktualizowane demona sieciowe to najczęstsze źródło krytycznych luk.
2. Wyszukiwanie podatności i baza Exploit-DB
Gdy w wyniku skanowania uzyskasz wersje usług, kolejnym krokiem jest sprawdzenie, czy istnieją dla nich publiczne luki. Do tego celu służy narzędzie konsolowe searchsploit, które przeszukuje lokalną kopię bazy Exploit-DB bezpośrednio z terminala:
searchsploit apache struts 2.3
W środowisku pentestowym pozwala to szybko ocenić ryzyko biznesowe – wykazanie zarządowi, że posiadana wersja oprogramowania posiada znany exploit umożliwiający zdalne wykonanie kodu (RCE), stanowi najsilniejszy argument za wdrożeniem natychmiastowych aktualizacji.
3. Testowanie odporności haseł (Password Cracking)
Słabe hasła użytkowników oraz domyślne poświadczenia administracyjne to jeden z najczęstszych wektorów udanych włamań. W pentestach testujemy je dwoma metodami:
Atak słownikowy na usługi sieciowe (Hydra)
Jeśli podczas rekonesansu odkryjesz aktywny panel logowania lub usługę (np. SSH, FTP) i chcesz sprawdzić podatność na ataki słownikowe, niezastąpiona jest THC Hydra:
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.100
Narzędzie testuje kombinacje podanego użytkownika z najpopularniejszymi hasłami ze słownika (takimi jak kultowa baza rockyou.txt). To doskonały test pokazujący, dlaczego polityka złożoności haseł oraz mechanizmy blokowania kont po kilku błędnych próbach są kluczowe.
Łamanie zrzutów haseł (Hashcat)
Jeżeli w wyniku audytu bazy danych uzyskasz plik zawierający zahashowane hasła (np. MD5, SHA-256), testy przeprowadza się offline, wykorzystując moc procesora lub karty graficznej (GPU) za pomocą potężnego Hashcata:
hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
Podsumowanie
Praktyczne testy penetracyjne łączą precyzyjny rekonesans sieciowy, analizę podatności oraz testy uwierzytelniania. Zrozumienie tych mechanizmów od strony ofensywnej pozwala skuteczniej budować wielowarstwowe linie obrony we własnej infrastrukturze.