Przejdź do głównej zawartości

Metodologia testów penetracyjnych

Testy penetracyjne to kontrolowane ataki symulujące działania rzeczywistych napastników w celu wykrycia luk w zabezpieczeniach. Proces pentestingu składa się z kilku kluczowych etapów oraz bazuje na uznanych standardach branżowych.

📌 Etapy testów penetracyjnych

1️⃣ Rozpoznanie (Reconnaissance)

Celem tego etapu jest zebranie jak największej ilości informacji o celu ataku. Może być ono pasywne (OSINT, Google Dorking) lub aktywne (skanowanie sieci, fingerprinting aplikacji).

Przykładowe techniki:

  • Google Dorking – wyszukiwanie wrażliwych informacji w Google
  • WHOIS Lookup – uzyskanie danych o domenie
  • Shodan – wyszukiwanie podatnych systemów
  • theHarvester – zbieranie e-maili i metadanych

Przykład użycia theHarvester:

theHarvester -d example.com -b google

2️⃣ Skanowanie (Scanning & Enumeration)

Po zebraniu informacji następuje analiza infrastruktury sieciowej i aplikacji w poszukiwaniu podatności.

Narzędzia:

  • Nmap – skanowanie portów i usług
  • Gobuster – fuzzing katalogów i plików
  • Nikto – skanowanie podatności serwerów WWW

Przykład skanowania Nmap:

nmap -A -p- example.com

3️⃣ Eksploatacja (Exploitation)

Na tym etapie wykorzystujemy znalezione podatności do przejęcia kontroli nad systemem.

Typowe ataki:

  • SQL Injection (sqlmap)
  • Cross-Site Scripting (XSS)
  • Remote Code Execution (RCE)
  • Brute-force haseł (Hydra)

Przykład ataku SQL Injection:

sqlmap -u "http://example.com/login.php?id=1" --dump

4️⃣ Eskalacja uprawnień (Privilege Escalation)

Po uzyskaniu dostępu do systemu atakujący dąży do przejęcia pełnej kontroli. Można to osiągnąć poprzez:

  • Eksploatację podatnych uprawnień użytkowników
  • Wykorzystanie błędnych konfiguracji systemu
  • Przejmowanie haseł i tokenów

Przykładowa eksploitacja SUID w Linuksie:

find / -perm -4000 -type f 2>/dev/null

5️⃣ Raportowanie (Reporting)

Każdy profesjonalny pentest kończy się raportem opisującym:

  • Znalezione podatności
  • Wykorzystane techniki
  • Zalecenia dotyczące poprawy bezpieczeństwa

Dobre raportowanie jest kluczowe dla zespołów bezpieczeństwa, które na podstawie analizy wdrażają poprawki.

Przykładowe narzędzia do generowania raportów:

  • Dradis – współpraca i raportowanie
  • Faraday – framework do pentestów
  • Metasploit Pro – automatyczne raporty

Modelowanie zagrożeń (Threat Modeling)

Modelowanie zagrożeń to formalna technika identyfikacji tego, co może pójść źle zanim zaczniemy testować — pozwala skupić wysiłek na obszarach o największym ryzyku.

Data Flow Diagrams (DFD)

Diagram przepływu danych pokazuje jak dane przechodzą między komponentami systemu:

[Użytkownik] → HTTP → [Load Balancer] → [App Server] → [Baza danych]

[API trzecia strona]

Dla każdego przepływu zadaj: „co atakujący może tutaj przechwycić lub zmanipulować?"

Punkty wejścia (Entry Points)

Lista powierzchni ataku aplikacji:

  • Formularze logowania i rejestracji
  • Parametry URL i ciało żądań POST/PUT
  • Nagłówki HTTP (User-Agent, Referer, X-Forwarded-For)
  • Pliki uploadowane przez użytkowników
  • Endpointy API (REST, GraphQL, WebSocket)
  • Tokeny JWT i cookies

Poziomy zaufania (Trust Levels)

Każda część systemu ma inny poziom zaufania:

PoziomPrzykład
0 – Brak zaufaniaAnonimowy użytkownik z internetu
1 – NiskiZalogowany użytkownik
2 – ŚredniPracownik wewnętrzny
3 – WysokiAdministrator aplikacji
4 – PełnySerwer/baza danych

Podatności zwykle polegają na przeskoku między poziomami bez autoryzacji (privilege escalation, IDOR, injection).


Rules of Engagement (ROE) – zakres i zasady testu

Przed każdym testem klient i pentester ustalają zakres na piśmie. Checklist ROE:

  • Adresy IP i domeny w scope — tylko te systemy można testować
  • Weryfikacja własności zasobów — klient potwierdza, że bloki IP są jego (AWS, Cloudflare, CDN często mają własne zasady)
  • Okno czasowe testu — kiedy można testować (poza godzinami szczytu?)
  • Metody wykluczone — np. zakaz DoS, zakaz testów socjotechnicznych
  • Kontakt awaryjny — kto odbiera, gdy test nieumyślnie wywoła incident
  • Typ testu — Black Box (brak wiedzy), Grey Box (częściowa wiedza), White Box (pełna dokumentacja)
  • Przechowywanie danych — jak chronić i kiedy usunąć zebrane dane wrażliwe

Brak pisemnego ROE = brak autoryzacji = nielegalne działanie, nawet jeśli klient ustnie wyraził zgodę.


Standardy w testach penetracyjnych

OWASP (Open Web Application Security Project)

OWASP to najbardziej znany standard testowania bezpieczeństwa aplikacji webowych. Lista OWASP Top 10 opisuje najczęściej wykorzystywane podatności, np.:

  • Injection (SQL, Command, LDAP)
  • Broken Authentication
  • Security Misconfiguration

OWASP oferuje także zestaw narzędzi, np. OWASP ZAP, do automatycznej analizy podatności.


PTES (Penetration Testing Execution Standard)

Jest to szczegółowa metodologia pentestingu, obejmująca:

  1. Rozpoznanie
  2. Analizę zagrożeń
  3. Wykorzystanie podatności
  4. Eskalację uprawnień
  5. Przechwycenie systemu
  6. Raportowanie

Więcej na: https://www.pentest-standard.org/


NIST SP 800-115

NIST to standard rządowy USA określający procedury testów penetracyjnych:

  • Planowanie testów
  • Zbieranie informacji
  • Ataki na systemy i aplikacje
  • Dokumentacja wyników

Dokumentacja dostępna: https://csrc.nist.gov/


Po opanowaniu metodologii pentestów możemy przejść do kolejnego kroku – rekonesansu i skanowania systemów.