nmap 避免随机结果(提高精度)

nmap avoid random results (increase precision)

我正在使用 nmap 检测给定网络(在网络上,而不是本地)的开放 80 端口,问题是该网络中的某些主机过载(它们处理巨大的 http 流量),因此 nmap 正在跳过其中一些主机,例如:

  1. 使用 nmap 对主机 X 进行的第一次扫描给出:检测到打开的 tcp 端口 (80);
  2. 第二次扫描:没有开放端口;
  3. 第三次扫描:检测到打开的 tcp 端口 (80);
  4. ...

等等,它不会给出持久的结果,我需要准确知道哪些主机打开了80端口(或其他端口),

我尝试的是增加超时,[​​=33=] 攻击性......我最终得到以下 nmap 命令:

nmap -sS -p 80 -T3 -v -n --min-rtt-timeout 60m --max-retries 30 --host-timeout 5m -Pn --open X.X.X.X

我尝试了不同的参数组合,我想要的是让 nmap 为每个主机重试多次,以确保它已关闭 80(其他)端口,

有什么想法吗?

提前致谢,

我怀疑那些服务器是 'overloaded'。我宁愿假设服务器有一些 IDS 运行,可能是 fail2ban 或 CSD/LFD 设置,或者可能是防火墙盒或某些设备,这会阻碍端口扫描,从而阻碍您的侦察工作。任何暴露在互联网上的服务器都必须有某种保护,所以你可以预料到很多服务器的配置确实让你的工作变得困难。

端口扫描,尤其是偷偷可靠地绕过 IDS 是一门艺术。以粗略的方式进行操作会 return 粗略且有些不可靠的结果。

IDS 很容易识别像您这样的 nmap 扫描的签名,它不使用任何特定选项 - 并阻止它,但是存在一些技术可以使它不那么明显(请参阅例如 nmap manual 以获得一些提示)。

一些建议:

  • 尝试将扫描分散到许多不同的 IP ranges/addresses 并以随机顺序进行 - 如果您以连续的方式以连续的速度扫描 /16 网络中的每个主机,那是非常明显的, 嘈杂并且绝对不隐蔽保护该网络的防火墙
  • 了解 nmap command-line 选项
  • 耐心等待

简而言之,您必须进行大量实验。找到一些您确定打开了端口 80 的主机,以及其他不应该打开的主机,尝试不同的命令,重复它们直到获得一致的结果,并且不要忘记 timing 很重要,那意味着要温柔。

这取决于您要扫描多少台主机,或者您要探索的 IP 范围有多大。如果您正在扫描整个 IPv4 space,可伸缩性问题与扫描家庭网络时不同。

没有 one-size-fits-all 解决方案,每台服务器都可以有不同的网络设置和安全设置,因此它们对外部探测的反应不尽相同。

可用的工具很多,nmap 肯定是每个渗透测试人员都应该精通的前 10 名。但它不是唯一的。为特定工作获得最合适的工具可以使任务更容易(或更容易)。

我感觉 Scapy could be a good candidate for this particular job. Since you are scanning port 80, at least try to make it look like a legitimate request from a browser. One thing you can try is use Wireshark 在您自己的计算机上嗅探一些 HTTP 请求以查看来自您的网络浏览器的数据包是什么样的。然后尝试使用 Scapy 或其他工具 (hping ?) 'replay' 类似的数据包。然后你可以发射看起来像 'real thing'.

的数据包

同样,nmap 绝对很棒,但您对数据包本身没有太多控制权。