Baza Wiedzy →
Cybersecurity → Podstawy testów penetracyjnych
Podstawy testów penetracyjnych — od zera do raportu
📅 Ostatnia aktualizacja: 15 września 2025
⏱️ Czas czytania: 18 minut
👤 Autor: Kamil
Początkujący
Pentest
OWASP
PTES
Nmap
OSINT
Reporting
🔍 Czym jest pentest i po co?
Test penetracyjny to autoryzowany, kontrolowany atak symulowany na systemy, aplikacje lub sieci. Celem jest identyfikacja podatności, ocena ryzyka i przedstawienie rekomendacji naprawczych — zanim zrobi to realny napastnik.
🎯 Wartość dla biznesu:
- Proaktywne wykrycie luk i błędów konfiguracyjnych
- Weryfikacja skuteczności obecnych zabezpieczeń
- Spełnienie wymagań compliance (PCI DSS, ISO 27001, RODO)
- Lepsze decyzje oparte na ryzyku, a nie intuicji
🧭 Rodzaje i modele testów
- Zakres: sieć zewnętrzna, sieć wewnętrzna, aplikacje web/mobile/API, AD/Tożsamość, chmura, Wi‑Fi
- Dostęp do informacji: Black‑box, Grey‑box, White‑box
- Tryb pracy: Manual, wspomagany narzędziami, automatyczny (DAST/SAST)
- Cel: Pentest punktowy vs. ćwiczenie Red Team (scenariuszowe, ukryte)
⚠️ Pamiętaj: Każdy test musi mieć pisemną autoryzację, jasno zdefiniowany zakres i Rules of Engagement. Działania poza zakresem są nielegalne.
📋 Metodologie i standardy
Metodologie zapewniają powtarzalność, kompletność i jakość. Najczęściej stosowane:
- OWASP WSTG: kompleksowe testy bezpieczeństwa aplikacji web
- PTES: Penetration Testing Execution Standard — od pre‑engagement do raportu
- NIST SP 800‑115: techniczny przewodnik po testach bezpieczeństwa
- OSSTMM: metodologia testów bezpieczeństwa operacyjnego
# Fragment RoE (Rules of Engagement) - przykład
scope:
include:
- app: portal.empresa.pl
type: web
env: staging
- net: 203.0.113.0/24
type: external
exclude:
- prod: *.empresa.pl
timeframe:
start: 2025-09-20T08:00:00Z
end: 2025-09-22T18:00:00Z
constraints:
- no_dos
- no_phishing_without_prior_notice
- maintenance_window_only
contacts:
incident: soc@empresa.pl, +48-123-456-789
evidence_handling:
classification: confidential
retention_days: 90
⚡ Proces krok po kroku (z checklistą)
1) Pre‑engagement
- Ustalenie zakresu i celów, kanałów komunikacji, okien serwisowych
- Podpisanie autoryzacji, NDA, uzgodnienie RoE
- Plan reagowania na incydenty i awarie
2) Rozpoznanie (OSINT, pasywne)
Zbieranie informacji publicznych: DNS, certyfikaty, repozytoria, social media, job boardy.
# OSINT / DNS
whois example.com
dig example.com ANY +nocmd +answer
dig -t NS example.com
# Subdomeny (pasively)
amass enum -passive -d example.com -o subdomains.txt
3) Skanning i enumeracja (aktywne)
# Discovery i porty
nmap -sn 203.0.113.0/24 -oA scans/ping_sweep
nmap -sS -p- -T3 -Pn target.example.com -oA scans/full_tcp
# Wersje usług i skrypty
nmap -sV -sC -p 22,80,443 target.example.com -oA scans/svc_scripts
# UDP (ostrożnie, wolne)
nmap -sU -F target.example.com -oA scans/udp_fast
4) Analiza podatności
- Mapowanie wersji usług do znanych CVE
- Weryfikacja fałszywych pozytywów ręcznie
- Priorytetyzacja wg wpływu i prawdopodobieństwa
# Przykładowe skrypty Nmap do podatności
nmap --script vuln -p 80,443 target.example.com -oA scans/nse_vuln
5) Exploitation (tylko w zakresie!)
⚠️ Kontrola ryzyka: Najpierw uzyskaj zgodę, wykonuj na środowiskach testowych lub w oknach serwisowych, stosuj snapshoty/backupy i limity.
- Testy manualne podatności potwierdzonych w analizie
- Minimalizacja wpływu i pełna dokumentacja kroków
6) Post‑exploitation
- Ocena zasięgu i wpływu kompromitacji (dane, dostęp, lateral movement)
- Sprzątanie artefaktów i przywrócenie stanu
7) Raport i przekazanie wiedzy
- Raport techniczny + podsumowanie dla zarządu
- Rekomendacje naprawcze i priorytety działań
- Sesja Q&A, plan retestu
🛠️ Narzędzia bazowe
Dystrybucje
- Kali Linux — klasyk pentestingu
- Parrot Security — lekki, z narzędziami privacy
Sieć i skanowanie
# Nmap: skan TCP/UDP, skrypty NSE
nmap -sS -p- target -oA scans/all_tcp
nmap -sU -F target -oA scans/udp
nmap --script safe,default,vuln target -oA scans/nse_combo
# Masscan: bardzo szybki discovery (ostrożnie z rate)
masscan 203.0.113.0/24 -p1-65535 --rate=1000 -oL scans/masscan.lst
Web i API
- Burp Suite / OWASP ZAP — proxy i DAST
- ffuf, gobuster — content discovery
- nikto — szybki baseline skanu web
# Przykłady
nikto -h https://target.example.com
ffuf -u https://target.example.com/FUZZ -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -mc 200,204,301,302,307,401,403
Tożsamość / AD (wysoki poziom)
- Enumeracja LDAP, polityki haseł, nadmiarowe uprawnienia
- Modelowanie zależności i ryzyk (np. graficzne mapy zależności)
Raportowanie
- Szablony: spójne sekcje, scoring CVSS, materiały dowodowe
- Narzędzia: generowanie HTML/PDF, repo raportów i retestów
🧪 Bezpieczny lab: start w 10 minut
Najlepiej uczyć się praktycznie na środowiskach testowych. Poniżej dwa legalne, intencjonalnie podatne projekty uruchamiane w Dockerze.
# DVWA (Damn Vulnerable Web App)
docker run --rm -it -p 8080:80 digininja/dvwa:latest
# OWASP Juice Shop
docker run --rm -it -p 3000:3000 bkimminich/juice-shop
# Po uruchomieniu:
# DVWA: http://localhost:8080 (ustaw DB w setup, potem ćwiczenia)
# Juice: http://localhost:3000
✅ Pro tip: Utrzymuj lab w osobnej sieci (np. przez Docker lub VM) i loguj wszystkie komendy. To ułatwia późniejsze raportowanie i retesty.
🎯 Szybki workflow E2E (komendy)
Przykładowa ścieżka od rozpoznania do podsumowania wyników dla domeny example.com
i jednego hosta.
1) Recon + subdomeny
amass enum -passive -d example.com -o out/subs.txt
while read s; do echo "https://$s"; done < out/subs.txt > out/urls.txt
2) Skan portów i usług
nmap -sS -Pn -p- target.example.com -oA out/ports_full
nmap -sV -sC -p 22,80,443 target.example.com -oA out/services
3) Web baseline
nikto -h https://target.example.com -o out/nikto.txt
gobuster dir -u https://target.example.com -w /usr/share/wordlists/dirb/common.txt -o out/dirs.txt -k
4) Agregacja i notatki
mkdir -p evidence
cp out/* evidence/
# Zrób krótkie notatki (co znaleziono, gdzie dowód, rekomendacja)
echo "- [host] target.example.com: open 22,80,443; HSTS brak" >> notes.md
🚧 Uwaga: Powyższe kroki wykonuj tylko na środowiskach własnych lub objętych pisemną zgodą. Ustawiaj konserwatywne limity, by nie zakłócić działania systemów.
📄 Raportowanie i priorytetyzacja
Dobry raport jest zrozumiały dla technicznych i nietechnicznych odbiorców. Opiera się na faktach, dowodach i klarownych rekomendacjach.
Struktura wpisu podatności
# [Tytuł podatności] — [Wysoki/Średni/Niski]
Opis:
- Co to jest i gdzie występuje
Wpływ (Impact):
- Wpływ na poufność / integralność / dostępność
- Kontekst biznesowy
Dowody (PoC/Evidence):
- Zrzuty ekranu, fragmenty logów, nagłówki odpowiedzi itd.
Kroki odtworzenia:
1) ...
2) ...
3) ...
Rekomendacje:
- Konkretny plan naprawczy i referencje do dokumentacji
Odwołania:
- CVE/CWE/OWASP, linki do vendorów
Klasyfikacja i scoring
- Skaluj ryzyko według CVSS (v3.1/4.0) i kontekstu biznesowego
- Priorytetyzuj szybkie wygrane (quick wins) i luki wysokiego ryzyka
- Dołącz plan retestu i kryteria akceptacji
⚖️ Etyka i prawo
⚠️ Kluczowe zasady:
- Testuj wyłącznie w granicach pisemnej autoryzacji
- Minimalizuj wpływ na produkcję, zgłaszaj incydenty natychmiast
- Chroń dane (zasada najmniejszych uprawnień, szyfrowanie, retencja)
- Dokumentuj wszystkie działania i wyniki
Template zgody (skrót):
- Właściciel systemu: [nazwa]
- Zakres: [hosty / domeny / systemy]
- Dozwolone techniki: [lista], Niedozwolone: [lista]
- Okno testowe: [daty/godziny]
- Kontakt incydentowy: [email/telefon]
- Zgoda: Podpis, data
📚 Dodatkowe zasoby
Laboratoria
- DVWA, OWASP Juice Shop, WebGoat
- Hack The Box, TryHackMe, VulnHub
Metodologie i przewodniki
- OWASP Web Security Testing Guide (WSTG)
- PTES, NIST SP 800‑115, OSSTMM
Certyfikacje
- eJPT (start), OSCP, PNPT, CEH
🚀 Następne kroki: Zbuduj swój „startowy” playbook: lista komend + szablon notatek + szablon raportu. Potem iteracyjnie go udoskonalaj po każdym projekcie.
📧 Masz pytania lub chcesz audyt? Skontaktuj się ze mną — pomogę dobrać zakres, przygotować RoE i przeprowadzić testy bezpiecznie i skutecznie.