Kali Linux üzerinde Nmap betikleri varsayılan olarak “/usr/share/nmap/scripts/” altında bulunmaktadır.
ls /usr/share/nmap/scripts/ | wc -l
ls /usr/share/nmap/scripts/ | head -575 | tail -10
Nmap “vulners” betiği Github üzerinden indirilerek Nmap betik dizinine kaydedilir.
wget -O /usr/share/nmap/scripts/vulners.nse https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/vulners.nse
ls /usr/share/nmap/scripts/ | head -575 | tail -10
Nmap “vulners” betiği açık olarak tespit edilen portlarda, sürüm bilgisi tespit edilmişse zafiyet detayı belirtir. Bu sebeple tarama yapılırken “-sV” parametresi ile sürüm tespiti de yapılmalıdır.
cat Ipler
nmap -sV -iL Ipler -oA Sonuclar –script vulners –top-ports 100 –max-retries 3 –max-hostgroup 4
Nmap “vulners” betiğinin kaynak kodu incelendiğinde sonuçların uygulamanın sürüm tespiti yapıldıktan sonra zafiyetlerin “https://vulners.com/api/v3/burp/software?” adresi üzerinden sorgulandığı görülmektedir.
CPE (Common Platform Enumeration) her bir uygulamanın, işletim ssiteminin veya donanımsal cihazı tanımlamak için kullanılan isimlendirme standartıdır. CPE ile ürünün adı, satıcısı, sürümü, dili, sürümleri,… hakkında bilgi sahibi olunabilir. Böylece NVD (National Vulnerability Database) veya başka kaynaklar üzerinden ilgili ürünün zafiyetini olup olmadığı kolayca anlaşılabilmektedir. Örneğin Nmap aracının “-sV” parametresi ile tespit edilen “Apache httpd 2.2.8” ürününün CPE bilgisi “cpe:/a:apache:http_server:2.2.8” şeklindedir.
Nmap “vulners” betiğinin “get_results” fonksiyonundaki “type” değişkeni de bir yazılım (software) ve “cpe” olabilmektedir. Böylece açık olduğu tespit edilen bir portta çalışan servisin sürüm bilgisi ile zafiyetler listelenebilmektedir. Eğer herhangi bir sürüm bilgisi tespit edilmemişse, bir sorgulama da yapılmamaktadır.
Sonuç olarak “Apache httpd 2.2.8” için örnek bir sorgulama aşağıdaki gibi yapılmıştır.
https://vulners.com/api/v3/burp/software?software=cpe:/a:apache:http_server:&version=2.2.8&type=cpe
JSON formatında gelen bu cevaplar (özellikle CVE ID ve CVSS skoru) bir tablo içerisine alınır. Sonra da tespit edilen bu zafiyetler CVSS skoru büyük olandan küçük olana doğru sıralanır.
Not: Nmap “vulners” betiğindeki “is_exploit” değişkeni “https://vulners.com/api/v3/burp/software?” adresinden gelen JSON cevabındaki “_source.bulletinFamily” ifadesine göre değer alır. Bu değer de “NVD” olarak gelmektedir. Tespit edilen zafiyetlerin bir kısmı istismar edilebilir olmasına rağmen, “is_exploit” değişkeni “exploit” olarak ayarlanamadığı için betik çıktısında bu zafiyetin istismar edilebilirlik durumu gözükmemektedir.
Not: Vulners betiğine benzer olarak Vulnscan betiği de bulunmaktadır.
http://www.computec.ch/projekte/vulscan/download/nmap_nse_vulscan-2.0.tar.gz
Kaynak: