1
我寫一個軟件,可以騙過Nmap的,以爲GuildFTPd FTP服務器端口21上運行我的Python代碼到目前爲止是這樣的:編造一個FTP服務
import socket
s = socket.socket()
s.bind(('', 21))
s.listen(1)
conn, addr = s.accept()
conn.send("220-GuildFTPd FTP Server (c) 1997-2002\r\n220-Version 0.999.14")
conn.close()
nmap的正則表達式爲匹配此特殊服務:
match ftp m|^220-GuildFTPd FTP Server \(c\) \d\d\d\d(-\d\d\d\d)?\r\n220-Version (\d[-.\w]+)\r\n| p/Guild ftpd/ v/$2/ o/Windows/
然而,當我掃描這與Nmap的運行腳本主機的結果是:
21/tcp open ftp?
這怎麼可能?當我使用Nmap掃描真實服務時,它會正確識別服務。
我的猜測是,有更多的FTP協議。你給nmap一個響應,讓它知道那個端口上有一個程序*。但是,它不知道它是否實際上是一個ftp服務器,因爲命令集不正確。 – 2011-12-26 20:34:56
我用Wireshark嗅探了真正的應用程序,它似乎沒有發送任何額外的信息,所以我仍然感到困惑。 – 2011-12-26 20:56:40
沒有人知道嗎? – 2011-12-26 22:34:14