nmap 避免随机结果(提高精度)
nmap avoid random results (increase precision)
我正在使用 nmap 检测给定网络(在网络上,而不是本地)的开放 80 端口,问题是该网络中的某些主机过载(它们处理巨大的 http 流量),因此 nmap 正在跳过其中一些主机,例如:
- 使用 nmap 对主机 X 进行的第一次扫描给出:检测到打开的 tcp 端口 (80);
- 第二次扫描:没有开放端口;
- 第三次扫描:检测到打开的 tcp 端口 (80);
- ...
等等,它不会给出持久的结果,我需要准确知道哪些主机打开了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 绝对很棒,但您对数据包本身没有太多控制权。
我正在使用 nmap 检测给定网络(在网络上,而不是本地)的开放 80 端口,问题是该网络中的某些主机过载(它们处理巨大的 http 流量),因此 nmap 正在跳过其中一些主机,例如:
- 使用 nmap 对主机 X 进行的第一次扫描给出:检测到打开的 tcp 端口 (80);
- 第二次扫描:没有开放端口;
- 第三次扫描:检测到打开的 tcp 端口 (80);
- ...
等等,它不会给出持久的结果,我需要准确知道哪些主机打开了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 绝对很棒,但您对数据包本身没有太多控制权。