Tabi bu sadece possible yani olabilir demektir. Çünkü Vulnerability Assessment tarayıcıları keşfedilen zafiyeti sistemde gerçekten olup olmadığını doğrulamaz.
Evet belki hedef sistemin bir portunda çalışan XYZ servisinde daha önceden Security Reseacher‘ler tarafından keşfedilmiş bir zafiyet olabilir fakat hedef sistemde belki bu zafiyet fixlenmiştir (kapatılmıştır)? Veya serviste sorun vardır tam çalışmıyordur bile.. İşte bu saydığım ve bunun gibi tarayıcılardan tarafından keşfedilen zafiyetlerin durumuna false-positive demekteyiz.
False-Positive kavramını basitçe anlatan bir diyagram çizdim:
Yukarıdaki belirttiğim konuya istinaden Vulnerability Assessment tarayıcıların temel çalışma mantığını Python’da socket modülünü kullanarak belirlenen hedef sisteme 21 FTP portundan bağlanıp önceden belirlediğimiz zafiyet barındıran FTP servislerinin karşı tarafta olup olmadığını eşleştiren küçük bir uygulama yapacağız.
1) Bağlantı kurarak banner (servis) bilgisi elde etme:
import socket
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect((“80.243.179.140”,21))
banner = s.recv(2048)
print “[+] Servis Bilgisi: “+banner
Çıktısı:
2) IF – ELIF – ELSE kullanarak zafiyet tespiti:
import socket
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect((“80.243.179.140”,21))
banner = s.recv(2048)
if (“FreeFloat Ftp Server (Version 1.00)” in banner):
print “[+] FreeFloat FTP Server zafiyet barindirmaktadir.”
elif (“ProFTPD 1.3.4c Server” in banner):
print “[+] ProFTPD Server zafiyet barindirmaktadir.”
elif (“Ability Server 2.34” in banner):
print “[+] Ability FTP Server zafiyet barindirmaktadir.”
elif (“Sami FTP Server 2.0.2” in banner):
print “[+] Sami FTP Server zafiyet barindirmaktadir.”
else:
print “[-] FTP Server’inde zafiyet bulunamadi.”
Çıktısı:
Faydalı olması dileğiyle…