首先,感谢您花时间阅读本文:)。
我在一家公司工作,我正在开发一个自动端口扫描工具,基本上,它每天扫描我公司的公共IP的一些端口,如果有什么奇怪的话就发送电子邮件。
命令行:
nmap -p1-1024 -sS host
问题: 我正面临一个非常奇怪的问题,当我正在扫描我公司的端口80打开的ips时,一旦nmap扫描端口80(即nmap发送SYN然后接收SYN-ACK,因为端口80打开),它在它上面循环直到扫描结束。我的意思是,nmap将像往常一样扫描所有其他端口,但在扫描结束之前不会停止将SYN发送到端口80。在tcpdump中我们清楚地看到我们从服务器收到SYN-ACK。此外,nmap显示扫描结束时打开的端口。
网络 我正在从外部互联网连接进行扫描,所以当我向服务器发送SYN时,它会在我公司的F5负载均衡器上运行,然后运行在Cisco ASA防火墙上,然后运行在服务器上。
我做了什么:
所以,似乎F5正在修改TCP SYN-ACK数据包,但为什么Nmap仍在检查此端口,即使他收到SYN-ACK响应?
谢谢。
答案 0 :(得分:2)
Nmap具有内置拥塞控制和其他时序优化,这取决于在任何给定时间了解网络状况。出于这个原因,它选择一个获得响应的第一个扫描端口(通常是端口80),并在整个扫描过程中轮询它。由此,它可以收集往返时间(RTT),它用于确定可能无法给出响应的其他端口的超时。它还可以检测数据包何时被丢弃,并且将减慢直到网络状况改善。
TL; DR - Nmap知道它是开放的,并将其用作心跳。