我对计算机、Linux 以及最近的端口扫描非常感兴趣。在一本书中阅读了 nmap 后,我开始阅读 nmap 的手册和网站,并通过扫描我自己的设备来试用它(我认为这是最好的方法)。
使用 nmap 设置为标准时间扫描设备端口时,我得到的结果并不理想,因此我将时间设置为 -T1(偷偷摸摸),看看是否会得到不同的结果,因为它声称可以帮助避免我正在扫描的设备中可能出现的 IDS 警报。我使用的命令是:
sudo nmap -sS -T1 <ip.address>
现在,nmap 网站将这种类型的扫描描述为“非常长”,但并没有给出通常需要多长时间的具体数字。有什么办法可以加快这种性质的扫描速度吗?我的端口扫描所花的时间是否仅与带宽有关,还是也与我扫描的计算机类型有关?
(另外,将端口扫描设置为 -T1 是否总是能给我更准确的结果,因此应该更频繁地使用?很抱歉问了这么多问题。)
答案1
在线文档涵盖了时间选项:时序模板 (-T)。
这应该能给你一个想法。
但我认为你最好重新定义你的目的。默认情况下,nmap 会扫描 TCP 中 1000 个最常用的端口。这仍然是“大量”需要发送的数据包。可能比你需要的还多。如果你只想检测网络上的实时主机,你可以发送 ping 请求或一些或多或少隐蔽的变体,这样会快得多。
为了加快测试速度,你至少可以做两件事:
- 使用
-n
选项禁用 DNS 解析 - 不要扫描端口或只扫描你需要的几个端口
首先明确您的目标:例如,如果您想在网络上查找 Web 服务器,则需要探测端口 80/443。而不是 1000 个。如果您只想检测实时主机,则有不同的选择。但请记住,有些机器不会响应 ping,无论是出于选择还是由于网络环境。扫描网络是一门艺术,而不是科学。
因此,通过对您拥有和控制的网络进行测试来学习是一个好主意。如果您知道某项服务正在某台机器上运行,但 nmap 未检测到,您会注意到扫描返回的结果不完整,然后您将需要了解原因并微调您的请求。
还要注意 nmap 会发出并发(并行)请求。如果您的目标是逃避 IDS,这是一个需要记住的参数。它不仅与请求之间的延迟有关,还与特定时间范围内发出的请求数量有关。
我的第一个建议是阅读 nmap 文档来熟悉它甚至购买这本书。
我的第二个建议是使用 Wireshark 嗅探您的网络接口并查看实际发送的数据包。您将学到很多有关网络的知识并更好地理解您的操作。另一个好处是您可以记录您的捕获、重放它们、分析它们并获得一些统计数据(数据包数量、字节数等)。