🔍 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
📚 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:
- Rozpoznanie
- Analizę zagrożeń
- Wykorzystanie podatności
- Eskalację uprawnień
- Przechwycenie systemu
- 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. 🔍