Wprowadzenie do testów penetracyjnych: etyczni hakerzy
Pentesterzy legalnie włamują się do systemów, by jako pierwsi znaleźć podatności. Poznaj pięć etapów etycznego hakowania, kluczowe narzędzia i sposób, by zacząć.
Spis treści
Czym są testy penetracyjne — a czym nie są
Test penetracyjny (pentest) to autoryzowany, symulowany atak na system, sieć lub aplikację, którego celem jest znalezienie słabości bezpieczeństwa, zanim zrobią to prawdziwi atakujący. Kluczowe słowo to autoryzowany. Umiejętności techniczne pentestera i przestępcy są często identyczne. Różnią się zgodą prawną i intencjami.
Test penetracyjny to nie to samo co skanowanie podatności. Skaner wykrywa znane podatności, porównując systemy z bazą danych. Pentester próbuje te podatności wykorzystać, by pokazać realne skutki — łącząc słabości w łańcuchy, eskalując uprawnienia i poruszając się po systemach tak, jak zrobiłby to prawdziwy atakujący.
To także nie to samo co ćwiczenie red team. Red team symuluje pełną kampanię przeciwnika — często przez tygodnie lub miesiące — testując ludzi, procesy i technologię. Test penetracyjny ma zwykle węższy zakres i ograniczony czas.
Podstawy prawne i etyczne
Zanim rozpocznie się jakiekolwiek testowanie, pentester musi mieć wyraźną pisemną zgodę. Zwykle ma ona postać dokumentu Rules of Engagement (ROE), czyli zasad zaangażowania, oraz zakresu prac (Statement of Work), które określają:
- Zakres: które systemy, zakresy IP i aplikacje są objęte testem
- Systemy wyłączone: produkcyjne bazy danych, których nie wolno dotykać, usługi zewnętrzne
- Dozwolone techniki: czy socjotechnika jest dozwolona? A dostęp fizyczny?
- Terminy: czy są okna serwisowe, których należy unikać?
- Kontakty awaryjne: jeśli coś się zepsuje, do kogo natychmiast dzwonić?
Testowanie bez zgody jest nielegalne na mocy przepisów o przestępstwach komputerowych w praktycznie każdej jurysdykcji (w USA Computer Fraud and Abuse Act, w Wielkiej Brytanii Computer Misuse Act, w Polsce m.in. art. 267–269b Kodeksu karnego). Podczas testów, które mogą wywołać alerty bezpieczeństwa, warto mieć przy sobie pismo od klienta potwierdzające zgodę — czasem dosłownie nazywane „kartą wyjścia z więzienia”.
Pięć etapów testu penetracyjnego
Etap 1: rozpoznanie
Rozpoznanie (recon) to etap zbierania informacji. Tester dowiaduje się wszystkiego, co możliwe, o celu, zanim dotknie jakiegokolwiek systemu. Dzieli się ono na dwie kategorie:
Rozpoznanie pasywne wykorzystuje publicznie dostępne informacje bez interakcji z celem:
- Rekordy WHOIS, rekordy DNS, logi Certificate Transparency
- LinkedIn — nazwiska pracowników, stanowiska, wskazówki o stosie technologicznym
- GitHub i repozytoria kodu — wycieki danych logowania, kluczy API, wewnętrznych adresów IP
- Shodan.io i Censys — usługi wystawione do internetu
- Google dorking (site:target.com filetype:pdf, site:target.com inurl:login)
Rozpoznanie aktywne obejmuje bezpośrednią interakcję z celem:
- Wyliczanie DNS i transfery stref
- Skanowanie portów (Nmap)
- Rozpoznawanie usług
- Przeszukiwanie (crawling) aplikacji webowych
Przemyślane rozpoznanie często ujawnia problemy bez żadnego wykorzystywania podatności: publicznie dostępne katalogi .git, ujawnione pliki środowiskowe, domyślne hasła w panelach administracyjnych.
Etap 2: skanowanie i wyliczanie
Mając listę celów, tester systematycznie skanuje otwarte porty, działające usługi, wersje oprogramowania i błędy konfiguracji.
Kluczowe narzędzia:
- Nmap — standard skanowania portów i usług
- Nikto — skaner podatności serwerów WWW
- Gobuster / ffuf — wyszukiwanie katalogów i plików w aplikacjach webowych metodą słownikową
- Enum4linux — wyliczanie SMB i zasobów Windows
- Nessus / OpenVAS — zautomatyzowane skanery podatności
Wyliczanie sięga głębiej: wydobywanie nazw użytkowników z LDAP, identyfikowanie udziałów SMB, odkrywanie endpointów API, mapowanie logiki aplikacji.
Etap 3: wykorzystanie podatności
Eksploatacja to próba wykorzystania znalezionych podatności do uzyskania nieuprawnionego dostępu. Celem jest zwykle osiągnięcie jednego z:
- Zdalnego wykonania kodu (RCE) w systemie docelowym
- Obejścia uwierzytelniania, by uzyskać dostęp do chronionych zasobów
- Eskalacji uprawnień z użytkownika o niskich uprawnieniach do wysokich
- Eksfiltracji danych, by pokazać, co atakujący mógłby ukraść
Metasploit Framework to najpopularniejsze narzędzie do organizowania i uruchamiania exploitów. Zawiera bibliotekę modułów dla znanych podatności, generator ładunków i narzędzia do działań po przejęciu.
Kluczową umiejętnością jest tu łączenie podatności w łańcuchy. Błąd konfiguracji o niskiej wadze może sam w sobie nie wymagać działania, ale w połączeniu z ujawnieniem informacji i słabym hasłem staje się drogą do administratora domeny.
Etap 4: działania po przejęciu
Po uzyskaniu początkowego dostępu testerzy symulują to, co zrobiłby prawdziwy atakujący: utrzymanie dostępu, ruch boczny, eskalację uprawnień i osiągnięcie celów.
Techniki ruchu bocznego:
- Pass-the-Hash: uwierzytelnianie przechwyconymi skrótami NTLM bez znajomości hasła
- Kerberoasting: pobieranie biletów usług i łamanie ich offline, by zdobyć hasła kont usługowych
- Pivoting: wykorzystanie przejętego hosta jako mostu do systemów, które nie były bezpośrednio dostępne
Techniki utrwalania dostępu:
- Zadania harmonogramu, zadania cron
- Klucze Run w rejestrze
- Konta-furtki
- Web shelle na przejętych serwerach WWW
Głębokość działań po przejęciu jest ograniczona zasadami ROE.
Etap 5: raportowanie
Raport to główny produkt testu penetracyjnego. Dobry raport:
- Zawiera podsumowanie dla kierownictwa, zrozumiałe dla osób nietechnicznych
- Wymienia każde znalezisko z oceną wagi (wynik CVSS lub ocena jakościowa: krytyczna/wysoka/średnia/niska)
- Dokumentuje dowód koncepcji (proof of concept) dla każdego znaleziska (zrzuty ekranu, użyte polecenia)
- Wyjaśnia wpływ na biznes — nie tylko „znaleziono SQL injection”, ale „atakujący mógłby uzyskać dostęp do wszystkich danych płatniczych klientów”
- Podaje konkretne zalecenia naprawcze, a nie ogólne porady
- Zawiera plan naprawczy uszeregowany według ryzyka
Popularne metodyki i frameworki
- PTES (Penetration Testing Execution Standard) — kompleksowa metodyka obejmująca wszystkie etapy
- OWASP Testing Guide — przeznaczony specjalnie do testowania aplikacji webowych
- NIST SP 800-115 — techniczny przewodnik po testowaniu bezpieczeństwa informacji
- OSSTMM (Open Source Security Testing Methodology Manual) — szersza metodyka testowania bezpieczeństwa
Jak zacząć przygodę z testami penetracyjnymi
Dla osób, które chcą zajmować się testami penetracyjnymi zawodowo:
Środowiska do ćwiczeń:
- HackTheBox, TryHackMe, PentesterLab — celowo podatne maszyny
- DVWA (Damn Vulnerable Web Application) — lokalna aplikacja webowa do ćwiczeń
- VulnHub — podatne maszyny wirtualne do pobrania
Certyfikaty:
- OSCP (Offensive Security Certified Professional) — praktyczny, szanowany w branży, trudny
- CEH (Certified Ethical Hacker) — szeroko rozpoznawalny, bardziej teoretyczny
- eJPT (eLearnSecurity Junior Penetration Tester) — dobry punkt startowy
Kluczowe narzędzia do nauki: Nmap, Metasploit, Burp Suite, Wireshark, John the Ripper, Hashcat, Gobuster, BloodHound
Sposób myślenia pentestera to w gruncie rzeczy kreatywne rozwiązywanie problemów w ramach ograniczeń. Wiedza techniczna jest ważna, ale to umiejętność myślenia jak atakujący — dostrzegania tego, co przeoczyli obrońcy — odróżnia skutecznych testerów od operatorów narzędzi.