Nmap服务探测(Probe)(转载)
一、流程图 Nmap先做端口扫描,然后把状态为open或者是open|filtered的TCP或UDP端口传递给服务识别模块,最后这些端口会并行的做服务探测。 Nmap检查端口是否是需要排除的端口(见下文的Exclude Directive),如果是需要排除的端口那么Nmap不会对这个端口做服务探测。这里主要是避免对一些打印机的服务端口发包。 如果端口是TCP,Nmap会先和端口建立一个连接,如果连接成功并且这个端口的状态原来是open|filtered的,那么Nmap把这个端口的状态改成open。这样做对那些为了隐秘扫描(例如FIN scan)而识别端口为open|filtered非常有用,这样能进一步确认端口的状态。 一旦上面的连接建立,Nmap尝试等待6s(以前是5s)。一些常见的服务,包括大部分的FTP、SSH、SMTP、Telnet、POP3、IMAP服务,为了标示自己会对建立的连接发送一些Welcome banner信息,这个过程称为NULL Probe。NULL Probe仅仅是和目标端口建立连接,没有发送任何的数据(也就是只经过了TCP的三次握手),在等待的时间内如果收到了数据,Nmap会将收到的banner信息和NULL Probe的将近3000个服务签名特征进行匹配(下文中的match Directive)。假如服务完全识别了