Podstawy testów penetracyjnych — od zera do raportu

15 września 2025 18 minut czytania Autor: Kamil
Początkujący Pentest OWASP PTES Nmap OSINT

Czym jest pentest i po co się go robi

Test penetracyjny to kontrolowany i autoryzowany proces sprawdzania bezpieczeństwa systemu, aplikacji albo infrastruktury. Jego celem nie jest samo „znalezienie błędu”, ale ocena ryzyka, wpływu i jakości zabezpieczeń w warunkach zbliżonych do realnego ataku.

W praktyce pentest pomaga:

  • odkryć luki zanim zrobi to ktoś niepowołany,
  • zweryfikować skuteczność istniejących zabezpieczeń,
  • lepiej priorytetyzować poprawki,
  • pokazać ryzyko w sposób zrozumiały dla technicznych i nietechnicznych odbiorców.

Rodzaje testów

  • Black-box — minimalna wiedza o celu, podejście zbliżone do zewnętrznego atakującego.
  • Grey-box — częściowa wiedza, np. konto testowe lub fragment dokumentacji.
  • White-box — pełniejsza wiedza o systemie, kodzie lub architekturze.

Pentest może dotyczyć aplikacji webowej, API, sieci, Active Directory, środowiska chmurowego lub konkretnego procesu biznesowego. Ważniejsze od etykiety jest to, czy zakres i zasady testów są jasno ustalone.

Metodologie i standardy

Dobra metodologia chroni przed chaosem. Pozwala zachować kompletność i powtarzalność działań.

  • OWASP WSTG — bardzo dobre źródło dla bezpieczeństwa aplikacji webowych,
  • PTES — porządkuje przebieg testu od przygotowania do raportu,
  • NIST SP 800-115 — techniczne podejście do testów bezpieczeństwa,
  • OSSTMM — bardziej formalna metodologia operacyjna.
scope: include: - app: portal.example.local type: web env: staging - net: 203.0.113.0/24 type: external exclude: - prod: "*.example.local" timeframe: start: 2025-09-20T08:00:00Z end: 2025-09-22T18:00:00Z constraints: - no_dos - maintenance_window_only contacts: incident: soc@example.local

Proces krok po kroku

1. Uzgodnienie zasad

Zanim cokolwiek zeskanujesz, musisz mieć zgodę, zakres i zasady działania. Bez tego nie ma mowy o legalnym i profesjonalnym teście.

2. Rozpoznanie

Na tym etapie zbierasz informacje o celu. Najpierw pasywnie, potem aktywnie.

whois example.com dig example.com ANY +nocmd +answer dig -t NS example.com amass enum -passive -d example.com -o subdomains.txt

3. Skanning i enumeracja

Po rozpoznaniu przychodzi czas na identyfikację hostów, portów i usług.

nmap -sn 203.0.113.0/24 -oA scans/ping_sweep nmap -sS -p- -T3 -Pn target.example.com -oA scans/full_tcp nmap -sV -sC -p 22,80,443 target.example.com -oA scans/svc_scripts nmap -sU -F target.example.com -oA scans/udp_fast

4. Analiza podatności

Wyniki skanów to jeszcze nie podatność potwierdzona. Trzeba odsiać fałszywe pozytywy, zrozumieć kontekst i ocenić ryzyko.

nmap --script vuln -p 80,443 target.example.com -oA scans/nse_vuln

5. Walidacja i testy manualne

Na tym etapie sprawdzasz, czy wykryte problemy są realne i jaki mają wpływ. To zwykle najbardziej wartościowa część testu.

Najważniejsza zasada: walidacja musi być kontrolowana, bezpieczna i zgodna z ustalonym zakresem. Produkcja nie jest miejscem na eksperymenty bez przygotowania.

6. Raportowanie

Dobry raport powinien odpowiadać na trzy pytania: co znaleziono, jaki to ma wpływ i co należy zrobić dalej.

Narzędzia bazowe

Na start nie potrzeba dziesiątek narzędzi. Dużo ważniejsze jest rozumienie procesu niż kolekcjonowanie aplikacji.

  • Nmap — skanowanie portów i enumeracja usług,
  • Burp Suite / OWASP ZAP — analiza ruchu webowego,
  • ffuf / gobuster — odkrywanie zasobów,
  • amass — rozpoznanie domen i subdomen,
  • nikto — szybki baseline dla aplikacji web.
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

Bezpieczny lab

Najlepszym sposobem nauki jest legalny i odizolowany lab. Dwa popularne środowiska startowe to DVWA i OWASP Juice Shop.

docker run --rm -it -p 8080:80 digininja/dvwa:latest docker run --rm -it -p 3000:3000 bkimminich/juice-shop

Praktyczna wskazówka: trzymaj notatki od początku. Nawet prosty plik markdown z komendami, obserwacjami i dowodami później bardzo pomaga przy raporcie.

Szybki workflow

amass enum -passive -d example.com -o out/subs.txt nmap -sS -Pn -p- target.example.com -oA out/ports_full nmap -sV -sC -p 22,80,443 target.example.com -oA out/services 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

Jak wygląda sensowny raport

Każda podatność powinna mieć przynajmniej: opis, wpływ, kroki odtworzenia, dowód i rekomendację naprawczą.

# [Tytuł podatności] Opis: - Co znaleziono i gdzie Wpływ: - Jaki jest realny skutek Dowody: - Screenshots, logi, odpowiedzi HTTP Kroki odtworzenia: 1) ... 2) ... 3) ... Rekomendacje: - Co poprawić i jak to zweryfikować

Prawo i etyka

Testuj wyłącznie to, na co masz pisemną zgodę. Zakres, harmonogram, ograniczenia i kontakt incydentowy muszą być ustalone przed rozpoczęciem działań.

Co dalej

Jeśli zaczynasz, zbuduj własny prosty playbook: lista komend, szablon notatek i szablon raportu. To daje dużo więcej niż losowe odpalanie narzędzi bez planu.