Nikto — skanowanie podatności aplikacji webowych
Opublikowano: 10 kwietnia 2026 · Kategoria: Bezpieczeństwo
Nikto to klasyczny, open-source skaner podatności aplikacji webowych działający z linii komend. Sprawdza serwer pod kątem ponad 6700 znanych problemów: przestarzałych wersji oprogramowania, niebezpiecznych plików (backup.zip, config.php, .git), brakujących nagłówków bezpieczeństwa i podstawowych podatności. Jest szybki, prosty i dostępny w praktycznie każdej dystrybucji Linux. Ten artykuł pokazuje instalację, podstawowe i zaawansowane użycie, generowanie raportów i porównanie z OWASP ZAP.
Instalacja Nikto
# Ubuntu / Debian sudo apt install nikto -y nikto -Version # macOS (Homebrew) brew install nikto # Kali Linux (preinstalowany) nikto -Version # Ze zrodla (GitHub - najnowsza wersja) git clone https://github.com/sullo/nikto.git cd nikto/program perl nikto.pl -Version # Sprawdz dostepne pluginy nikto -list-plugins
Podstawowe skanowanie
# Podstawowy skan HTTP nikto -h example.com # Skan HTTPS nikto -h https://example.com nikto -h example.com -ssl # Skan konkretnego portu nikto -h example.com -port 8080 nikto -h example.com -p 8443 -ssl # Skan z uwierzytelnieniem HTTP Basic Auth nikto -h example.com -id user:password # Skan konkretnego katalogu / sciezki nikto -h example.com -root /aplikacja/ # Skan wielu hostow z pliku (jeden host na linie) nikto -h hosts.txt # Przykladowy output: # - Nikto v2.1.6 # Target: example.com # - /backup.zip: Potential backup file found # - /.git/HEAD: Git repository visible — information disclosure # - X-Frame-Options header missing # - Server: Apache/2.4.41 - potentially outdated # OSVDB-396: /.htaccess: Htaccess file accessible
Kategorie testów (-Tuning)
Nikto dzieli testy na kategorie. Domyślnie uruchamia wszystkie. Możesz ograniczyć do
konkretnych kategorii przez -Tuning, co przyspieszy skan:
| Numer | Kategoria | Co testuje |
|---|---|---|
| 0 | File Upload | Upload podatności |
| 1 | Interesting File | Interesujące pliki i logi |
| 2 | Misconfiguration | Błędna konfiguracja serwera |
| 3 | Information Disclosure | Ujawnienie informacji |
| 4 | Injection (XSS, HTML) | Cross-site scripting, HTML injection |
| 5 | Remote File Retrieval | Zdalny dostęp do plików |
| 6 | Denial of Service | Testy DoS (ostrożnie!) |
| 7 | Remote File Inclusion | RFI podatności |
| 8 | Command Execution | Zdalne wykonanie poleceń |
| 9 | SQL Injection | Testy SQL injection |
| a | Authentication Bypass | Omijanie uwierzytelnienia |
| b | Software Identification | Identyfikacja oprogramowania |
| c | Remote Source Inclusion | Zdalne ładowanie zasobów |
# Skanuj tylko XSS i SQL injection nikto -h example.com -Tuning 49 # Skanuj tylko naglowki bezpieczenstwa i misconfiguracje nikto -h example.com -Tuning 23 # Wyklucz testy DoS (kategoria 6) nikto -h example.com -Tuning x6 # Skan z dluzszym timeoutem (wolniejsze systemy) nikto -h example.com -timeout 30
Generowanie raportów
# Raport HTML nikto -h example.com -o raport.html -Format html # Raport CSV (do importu do arkusza) nikto -h example.com -o raport.csv -Format csv # Raport XML (do parsowania) nikto -h example.com -o raport.xml -Format xml # Raport TXT (domyslny format) nikto -h example.com -o raport.txt -Format txt # Jednoczesnie do pliku i na ekran nikto -h example.com -o raport.html -Format html -Display V # Polacz skan HTTPS z plikiem XML do dalszej analizy nikto -h https://example.com -o wyniki/$(date +%Y-%m-%d)-scan.xml -Format xml
Skanowanie przez proxy i omijanie WAF
# Skan przez Burp Suite (przechwytuj requesty) nikto -h example.com -useproxy http://127.0.0.1:8080 # Zmien User-Agent (podstawowe omijanie WAF) nikto -h example.com -useragent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" # Zmien User-Agent z pliku (lista agentow) # /etc/nikto.conf lub ~/.nikto.conf: # USERAGENT=Mozilla/5.0 (compatible; Googlebot/2.1) # Spowolnij skan (dla mniej agresywnego profilu) nikto -h example.com -maxtime 3600 # max 1h nikto -h example.com -Display 1 # pokazuj tylko znaleziska # Skan przez Tor (anonimowo) # Wymagany torify lub tsocks: torify nikto -h example.com # Ignoruj certyfikat SSL (self-signed) nikto -h https://example.com -nossl # nie sprawdzaj SSL nikto -h https://example.com -ssl # wymus SSL ignorujac bledy cert
Nikto vs OWASP ZAP — porównanie
| Cecha | Nikto | OWASP ZAP |
|---|---|---|
| Typ | Skaner sygnatury (CLI) | Proxy + aktywny skaner (GUI/CLI) |
| Interfejs | Tylko CLI | GUI + CLI (daemon mode) |
| Logika aplikacji | Nie rozumie — skanuje URL | Spider + formularze + AJAX |
| Szybkość | Szybki (minuty) | Wolniejszy (godziny dla dużych app) |
| False positives | Dużo (weryfikuj ręcznie) | Mniej (aktywna weryfikacja) |
| Wykrywane podatności | Znane sygnatury, brakujące nagłówki | XSS, SQLi w formularzach, CSRF |
| Integracja CI/CD | Łatwa (CLI one-liner) | ZAP API + Docker image |
| Rekomendacja | Szybki pierwszy przegląd | Głęboki audit aplikacji |