Nikto Kullanımı – Web Taraması (İleri Seviye)
Nikto Nedir?
Nikto, açık kaynaklı bir web sunucusu ve uygulama tarayıcısıdır. 6700’den fazla potansiyel tehlikeli dosya/CGI, eski yazılım sürümleri, yanlış yapılandırmalar ve bilinen güvenlik açıklarını tespit etmek için kullanılır. Perl tabanlı olan bu araç, özellikle sızma testi (pentest) ve web güvenliği değerlendirmelerinde güçlü bir seçenektir.
Bu yazı da Nikto aracının ileri seviye kullanımını, çeşitli komut örneklerini ve özelleştirme örneklerini ele alacağız. Bu aracı Metasploitable 2 sanal makinesi üzerinde test edeceğim.
Temel Nikto Komutları ve Kullanımı
Temel Nikto tarama komutu aşağıdaki gibidir:
nikto -h <hedef>
-h: Hedef URL veya IP adresi (örn. http://example.com veya 192.168.1.1).

Nikto ile tarama yaptığımızda farklı formatlarda rapor çıktıları alabiliriz. Daha okunaklı ve kullanışlı çıktılar elde edebiliriz.
nikto -h <hedef> -o rapor.html
-o: Çıktı dosyasını belirtir.-Format: Çıktı formatı (htm, csv, txt, xml, json).

Görüldüğü üzere Nikto temel olarak port belirtmediğimizde 80 portunu taramaktadır. Bu konuya aşağıda değineceğiz.
Nikto İleri Seviye Kullanım
Nikto’nun ileri düzey özelliklerini kullanarak taramaları özelleştirmek, performans ve doğruluk açısından kritik öneme sahiptir. Aşağıda, uzman seviyesinde kullanılan bazı önemli seçenekler ve senaryoları ele alacağız.
Özel Port ve Protokol Taraması
Örneğin web sunucusu standart olmayan bir 8080 gibi bir portta çalışıyorsa aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -port 8080
https için ise aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -ssl
Senaryo: Bir şirketin test ortamında, geliştirme sunucusu 8443 portunda HTTPS ile çalışıyor. Taramayı şu şekilde yapabiliriz:
nikto -h <hedef> -port 8443 -ssl -o test_rapor.html -Format htm
CGI Dizinlerini Tarama
CGI dizinlerinde olabilecek açıkları taramak için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -C all
-C all: Olası tüm CGI dizinlerini zorla tarar. Alternatif olarak belirli dizinler de belirtilebilir: -C /cgi-bin/

Senaryo: Eski bir web uygulamasında `/cgi-bin/` dizininde unutulmuş bir script bulmak için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -C /cgi-bin/ -Tuning b
-Tuning b: Yalnızca yanlış yapılandırılmış dosya ve dizin testlerini çalıştırır.

IDS/IPS Kaçınma Teknikleri
Nikto’nun LibWhisker tabanlı kaçınma teknikleri, taramaların tespit edilmesini zorlaştırabilir:
nikto -h <hedef> -evasion 1
Kaçınma seçenekleri:
- `1`: Rastgele URI kodlaması.- `2`: Kendine referanslı dizin (`/./`).- `7`: URL kasası değiştirme (örn. `/AdMiN/`).- `8`: Windows dizin ayırıcı (`\`).

Senaryo: Bir IDS’nin aktif olduğu bir sunucuda gizli tarama için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -evasion 17 -Pause 5
-Pause 5: Her test arasında 5 saniye bekler, trafiği daha az dikkat çekici yapar.
Eklenti (Plugin) Kullanımı
Nikto, özelleştirilmiş testler için eklentiler sunar. Mevcut eklentileri listelemek için aşağıdaki komutu kullanabiliriz:
nikto -list-plugins

Belirli bir eklenti çalıştırmak (örn. headers analizi) için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -Plugins headers

Senaryo: Bir web sitesinin `robots.txt` dosyasını analiz ederek gizli dizinleri bulmak için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -Plugins robots -o robots_rapor.txt -Format txt
Taramaya İnce Ayar Yapma (Tuning)
`-Tuning` seçeneği, tarama kapsamını daraltır:

nikto -h <hedef> -Tuning 123
- – `
1`: İlginç dosyalar/dizinler. - – `
2`: Yanlış yapılandırmalar. - – `
3`: Bilgi ifşası (örn. sunucu başlıkları).

Senaryo: Yalnızca XSS ve SQL Injection açıklarını test etmek için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -Tuning x
`x`: XSS ve SQL Injection testleri.
Kimlik Doğrulama ile Tarama
Korumalı bir web alanını taramak için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -id kullanıcı:parola
Senaryo: Bir admin paneline erişim testi için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef>/admin -id admin:password123 -Tuning 4
`-Tuning 4`: Kimlik doğrulama gerektiren URL’leri test eder.
Çıktı ve Raporlama
Nikto’nun raporları farklı formatlarda dışa aktarılabilir:

nikto -h <hedef> -o rapor.xml -Format xml
Senaryo: Metasploit ile entegrasyon için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -o metasploit_rapor -Format msf+
Performans Optimizasyonu
Zaman Sınırı: Maksimum tarama süresi belirleme için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -maxtime 1h
Zaman Aşımı: İstek zaman aşımını ayarlamak için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -timeout 5
Thread Ayarı: Daha hızlı tarama için (dikkatli kullanın) için aşağıdaki komutu kullanabiliriz:
nikto -h <hedef> -Tuning 123 -maxtime 30m -timeout 3
Kapsamlı Bir Web Sunucusu Taraması Örneği
Hedef: Bir şirketin eski bir WordPress sitesini (`http://example.com`) tarayarak zafiyetleri bulma ve raporlama.
Adımlar:
1. Veritabanı Kontrolü ve Güncelleme:
nikto -dbcheck
nikto -update
2. Temel Tarama ve HTML Rapor:
nikto -h <hedef> -o wordpress_rapor.html -Format htm -Tuning 123x
3. Özel Port ve SSL Taraması:
nikto -h <hedef> -port 443 -ssl -Tuning x -o ssl_rapor.html -Format htm
4. Kimlik Doğrulamalı Admin Panel Taraması:
nikto -h <hedef>/wp-admin -id admin:test123 -Tuning 4 -o admin_rapor.html -Format htm
5. IDS Kaçınma ile Gizli Tarama:
nikto -h <hedef> -evasion 17 -Pause 3 -o gizli_rapor.xml -Format xml
6. Eklenti ile Robots.txt Analizi:
nikto -h <hedef> -Plugins robots -o robots_rapor.txt -Format txt
Nikto ile Entegrasyon ve Diğer Araçlar
Burp Suite: Nikto taramalarını Burp proxy üzerinden geçirerek manuel doğrulama:
nikto -h <hedef> -useproxy http://127.0.0.1:8080
Nmap: Nikto ile birlikte açık portları tarama:
nmap -p 80,443 192.168.1.1 -oG nmap.txt
nikto -h nmap.txt
Metasploit: Nikto bulgularını Metasploit’e aktarma:
nikto -h <hedef> -Format msf+
Nikto, web güvenliği taramalarında güçlü ve esnek bir araçtır. Sızma testlerinde ve diğer güvenlik testlerinde kullanılması gereken bir araçtır. Nikto’nun daha farklı kullanım senaryolarını test ortamınızda deneyerek pratik yapabilirsiniz.
Başka yazılarda görüşmek üzere.

