nikto, dirb, gobuster, ffuf, ldapsearch
(whatweb, wappalyzer, nuclei, httpx, gau, waybackurls, burp suite, dalfox, arjun)

Enumeracja aplikacyjna (Webowa)

Szukanie ukrytych katalogów, struktur, plików, ukrytych endpointów, identyfikacja technologii, przygotowanie do exploitacji (np. XSS, SQLi, IDOR).


nikto – skanowanie aplikacji webowych pod kątem znanych błędów i podatności.
dirb – brute-force katalogów i plików. Proste, lekkie, lokalne.
gobuster – szybkie brute-force katalogów/plików (HTTP, DNS). Szybszy, wielowątkowy.
ffuf – szybki fuzzing webowy (ścieżki, pliki, parametry, nagłówki). Mega szybki, wsparcie fuzzing.
ldapsearch – eksploracja katalogów LDAP (Enumeracja sieciowa/aplikacyjnna zależnie od kontekstu)

Rozszerzenie:

whatweb, wappalyzer, httprobe – fingerprinting technologii web.
httpx – szybki skaner żywych hostów (często używany w reconie bug bounty).
feroxbuster – alternatywa dla ffuf/gobuster (w Rust, bardzo szybka).
waybackurls, gau – ekstrakcja archiwalnych endpointów z archive.org.
dalfox, kiterunner, arjun – zaawansowany fuzzing endpointów, parametrów, XSS itd.
burpsuite (i CLI: burp-rest-api, autorize, bypasswaf) – analiza manualna i półautomatyczna.
nuclei – potężne narzędzie do szablonowego skanowania podatności.
jaeles – alternatywa do nuclei.

Dodatkowo:

sqlmap – automatyczne wykrywanie i eksploatacja podatności SQL Injection (obsługa GET/POST/headers/cookies). Potrafi enumerować bazy, tabele, kolumny, dane. Wbudowane bypassy WAF.
sqlmap -u "http://target.com/page.php?id=1" --dbs



Nikto

Nikto to open-source'owy skaner podatności aplikacji webowych. Służy do wykrywania luk, błędnych konfiguracji i przestarzałych komponentów na serwerach webowych. Jego głowne cechy to:

  • Wykrywa ponad 6700 podatności – m.in. błędy konfiguracji, niebezpieczne pliki, stare wersje oprogramowania.
  • Szybkie skanowanie i raportowanie – szczegółowe wyniki w kilka minut.
  • Możliwość konfiguracji skanów – wybór modułów, katalogów, user-agentów, itp.

Unikaj skanowania środowisk produkcyjnych bez pozwolenia: Nikto jest narzędziem inwazyjnym, które generuje dużo ruchu. Upewnij się, że masz zgodę, by nie wywołać zakłóceń w sieci lub alertów detekcji.
Wykorzystuj wyniki skanów do naprawy problemów: Regularnie aktualizuj oprogramowanie, wdrażaj rekomendowane nagłówki bezpieczeństwa i ogranicz dostęp do katalogów na podstawie wyników Nikto.

Podstawowa składnia

nikto -h <host> [opcje]

Najczęściej używane opcje Nikto

-h <host> Adres IP, domena lub URL serwera docelowego
-p <port> Typy testów do wykonania
-Tuning <opcja> Typy testów do wykonania (np. 123b, 0 dla wszystkich)
-Display <opcja> Kontrola tego, co ma być wyświetlane (np. V dla podatności)
-Format <typ> Format zapisu wyników: txt, csv, html, json, xml, nbe
-o <plik> Zapis wyników skanowania do pliku
-Pause <sekundy> Opóźnienie między żądaniami, np. -Pause 3
-useragent <UA> Ustawienie własnego User-Agent
-timeout <sekundy> Limit czasu oczekiwania na odpowiedź HTTP
-ssl Wymuszenie użycia HTTPS
-nossl Wyłączenie SSL, nawet jeśli port wskazuje HTTPS
-no404 Pomija wykrywanie niestandardowych stron 404
-Plugins <lista> Wykorzystanie tylko wybranych pluginów (np. headers, ssl)
-evasion <typ> Techniki omijania IDS/IPS (np. -evasion 1)
-vhost <host> Wymuszenie nagłówka Host (dla Virtual Host)
-id <użytkownik:hasło> HTTP Basic Auth – uwierzytelnianie
-mutate <typ> Mutacje testów – niestandardowe zachowanie skanera
-useproxy Użycie proxy określonego w pliku konfiguracyjnym
-update Aktualizacja bazy podatności Nikto
-list-plugins Wyświetla wszystkie dostępne pluginy
-Help Wyświetlenie pomocy i listy opcji
-Version Wersja Nikto
-output Zapisuje wynik skanowania do pliku
-C Sprawdza podatności związane z HTTP (np. brak nagłówków bezpieczeństwa)

Skanowanie pod kątem konkretnych podatności

Nikto pozwala skanować wybrane typy podatności dzięki opcji -Tuning. Kody Tuning umożliwiają określenie, na czym ma się skupić skan. Przykładowo tuning code 4 skupia się na testach związanych z wykrywaniem potencjalnie niebezpiecznych punktów do uploadu plików – np. /uploads, /images, /files.

Skanowanie pod kątem podatności związanych z uploadem plików

nikto -h <target-domain> -Tuning 4

Tuning code 5 uruchamia testy mające na celu wykrycie podatności typu Command Injection, XST (Cross Site Tracing), oraz innych związanych z możliwością wstrzyknięcia nieautoryzowanego kodu.

Skanowanie pod kątem podatności typu Injection

nikto -h <target-domain> -Tuning 4

Tuning – lista kodów

0 Upload plików 1 Ciekawe pliki / Pliki widoczne w logach 2 Błędna konfiguracja / Pliki domyślne 3 Ujawnianie informacji 4 Wstrzykiwanie (XSS / Script / HTML) 5 Zdalne pobieranie plików (np. webshells)

Użycie Nikto z Burp Suite

Możesz przekierować ruch Nikto przez Burp Suite za pomocą proxy, aby przechwytywać i analizować żądania HTTP w czasie rzeczywistym:

nikto -h  -useproxy http://127.0.0.1:8080

Polecenie przekierowuje cały ruch Nikto przez Burp Suite działający lokalnie na 127.0.0.1:8080. Umożliwia to dokładną analizę każdego żądania HTTP/HTTPS w zakładce Proxy > HTTP history. Możliwa jest interakcja Nikto z Burp Suite — każde żądanie skanera jest przechwytywane i może zostać dokładnie przeanalizowane lub zmodyfikowane.

Przykłady użycia

  1. Skanowanie podstawowe:

    nikto -h http://192.168.0.1
    
  2. Skanowanie z opóźnieniem 3 sekundy między żądaniami:

    nikto -h http://192.168.0.1 -Pause 3
    
  3. Skanowanie HTTPS na porcie 8443 z zapisem do pliku HTML:

    nikto -h 192.168.0.1 -p 8443 -ssl -Format htm -o raport.html
    
  4. Skanowanie z użyciem określonego User-Agent:

    nikto -h target.com -useragent "Mozilla/5.0 PentestBot"
    
  5. Skanowanie z HTTP Basic Auth:

    nikto -h target.com -id admin:password123
    

Przykłady testów

  1. Wykrywanie podatności HTTP oraz eksport wyników
    Zadanie: Przeprowadzenie skanowania aplikacji webowej z wykorzystaniem Nikto, z określonym limitem czasu na odpowiedź serwera oraz zapisem wyników do pliku. W ramach testu należy również uwzględnić wszystkie podatności związane z konfiguracją HTTP.

    bash

    nikto -h http://example.com -output example_scan.txt -timeout 10 -C all
    
    *Skanowanie HTTP z timeoutem 10 sekund, zapisem do pliku oraz uruchomieniem wszystkich testów związanych z nagłówkami i konfiguracją HTTP (-C all).

  1. Ukrywanie skanu przez modyfikację nagłówka User-Agent
    Zadanie: Przeprowadzenie skanowania Nikto z podszyciem się pod ruch przeglądarki Google Chrome na Windows 10 w celu uniknięcia wykrycia przez systemy WAF/IDS.

    bash

    nikto -h -useragent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    
    *Zmiana domyślnego nagłówka User-Agent Nikto na taki, jaki generuje prawdziwa przeglądarka. Pozwala to na ukrycie ruchu skanera wśród zwykłego ruchu HTTP i ominięcie prostych reguł bezpieczeństwa. To świetny sposób, by symulować ruch prawdziwej przeglądarki (np. Google Chrome na Windows 10) i uniknąć wykrycia przez podstawowe systemy monitorujące

  1. Intercepting Nikto traffic via Burp Suite
    Zadanie: Przeprowadzenie skanowania Nikto z użyciem lokalnego proxy Burp Suite w celu przechwycenia i analizy żądań HTTP wysyłanych do aplikacji webowej.

    bash

    nikto -h http://target.local -useproxy http://127.0.0.1:8080
    
    *Burp Suite musi być uruchomiony i nasłuchiwać na porcie 8080. Pozwala to monitorować i analizować każde żądanie HTTP/HTTPS wysyłane przez Nikto.


Dirb

Dirb to narzędzie służące do brute-force’owego odkrywania ukrytych katalogów i plików w aplikacjach webowych. Wykorzystuje słowniki (wordlisty - które są wbudowane lub możliwość użycia własnych), aby automatycznie generować i wysyłać żądania HTTP do zasobów na serwerze. Jest bardzo przydatne w fazie rekonesansu podczas testów penetracyjnych oraz CTF-ów. Zastosowanie DIRB w pentestach:

  • Odkrywanie ukrytych paneli administracyjnych (/admin/, /panel/).
  • Wyszukiwanie zapomnianych plików (backup.bak, db.sql, index.old.php).
  • Rekonesans serwisów, gdzie nie ma publicznych linków ani mapy strony.
  • Walidacja błędnej konfiguracji plików .htaccess, dostępnych zasobów .git, .env, itp.
Animacja przedstawiająca działanie DIRB

Dirb command

dirb http://example.com Podstawowy skan HTTPS z domyślną wordlistą. Używa domyślnej listy /usr/share/dirb/wordlists/common.txt. W praktyce nie używaj jedynie domyślnej wordlisty. Najlepsze efekty dają słowniki z SecLists -> https://github.com/danielmiessler/SecLists
dirb http://example.com /path/to/custom_wordlist.txt Skan z własną wordlistą
dirb http://example.com/hidden/ Skanowanie konkretnej ścieżki
dirb http://example.com -o wynik.txt Zapis wyników do pliku
dirb http://example.com -p http://127.0.0.1:8080 Użycie proxy (np. Burp Suite)
dirb http://example.com -X .php -N 403 Ignorowanie kodu odpowiedzi (np. 403). Nie zawsze 403 = brak dostępu. W niektórych konfiguracjach katalogi 403 istnieją — tylko wymagają tokenu/auth.



Gobuster

Gobuster to szybkie, wielowątkowe narzędzie do fuzzingu zasobów webowych i DNS. W przeciwieństwie do dirb, działa znacznie szybciej, ponieważ opiera się na żądaniach HTTP bez renderowania. Zostało napisane w języku Go, dlatego działa błyskawicznie i świetnie nadaje się do dużych skanów. To narzędzie do brutalnego skanowania katalogów i plików na serwerach webowych. Wykorzystuje listę słów do odkrywania ukrytych katalogów i plików poprzez wysyłanie wielu zapytań HTTP.

  • Wymaga do swojego działania słowników. Wykorzystamy do tego celu SecLists. Są one domyślnie zainstalowane w Kali Linux, jednak na wszelki wypadek podajemy dwie metody instalacji:

Przykłady list:
/usr/share/seclists/Discovery/Web-Content/raft-small-directories.txt - katalogi.
/usr/share/seclists/Discovery/Web-Content/raft-small-files.txt - pliki.
/usr/share/seclists/Discovery/DNS/fierce-hostlist.txt - nazwy wirtualnych hostów.
/usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt - subdomeny.
/usr/share/seclists/Passwords/darkweb2017-top100.txt - hasła.