Nmap 扫描对比显示端口变化

信息安全 地图 网络扫描仪
2021-08-15 04:44:58

我将尝试以最简单的方式解释我的问题。
我有一个脚本,它使用 nmap 扫描打开的端口并将结果保存在文件中。下次扫描主机时,它会移动旧保存的 nmap 报告并创建一个新报告,最后比较这两个报告以查看哪些端口已更改。也就是说,如果一台机器在之前的扫描结果中打开了一个端口,比如 (80/tcp , 22tcp);如果新的扫描结果仅包含 (80/tcp),则脚本会通知松弛通道:

CHANGE OCCURED FROM (80/tcp , 22tcp)   ===>   (80/tcp) 

所以最近我收到了来自一些机器的太多通知,它不断地改变端口,即从打开到关闭,从关闭到打开。现在这个脚本每 15 分钟运行一次,我真的不知道为什么某些机器会一直发生这种情况,因为我已经看到端口不会通过手动登录机器而改变。

机器上没有显示此行为的 IDS。机器是否有可能丢弃 NMAP 流量?

1个回答

1) Nmap 超时

我不知道 Nmap 是如何确定的,但我相当确定它在确定目标端口是否打开时会考虑响应时间。根据各种因素,端口可能无法立即响应,因此 Nmap 可能会决定关闭该端口。假设阈值为 100 毫秒。起初 Nmap 在 89 毫秒内得到响应,第二次尝试在 105 毫秒内得到响应。在这两种情况下,目标端口实际上是打开的,但未能及时响应。

2) 防火墙规则

目标机器不需要在它前面有一个完整的 IDS,端口扫描是一个非常简单的威胁检测。随着时间的推移限制来自单个 IP 的数据包数量可能会在一段时间内禁用您的扫描。有趣的是,由于 Nmap 管理异步扫描,它可能会打乱顺序。这意味着 Nmap 在一个线程上扫描端口 8080 时可能会超过阈值,并且它可能尚未扫描端口 50。它可能会给你带来奇怪的结果。

我的建议

  • 使用 Nmap 的“-T”标志。例如,使用 -T3 而不是 -T5,这样扫描会更慢但更温顺。
  • 有诸如“--max-rtt-timeout”和“--max-scan-delay”之类的超时标志,将它们用于较慢的主机。
  • 实施更好的变化检测算法。不只是检查当前结果与前一个结果,而是比较您在特定时间内获得的“关闭”或“打开”结果的数量。您可以在 Internet 上找到许多误报和误报检测算法。(SANS在这里解释了 False Negatives 安全性)