🛡️ Podstawy testów penetracyjnych

Podstawy testów penetracyjnych — od zera do raportu

🔍 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.