我需要在短时间内扫描一个B类networking。 要求非常简单。 我要:
我将从networking内部进行扫描。 这是我迄今为止所决定的。
nmap -p 0-65535 172.22.0.0/16 (端口范围和IP只是样本)
-Pn跳过主机发现
--min-hostgroup 256扫描256个IP地址
--ttl 10我认为这样可以减lessnetworking噪音。 纠正我,如果我错了
--max-retries 1我发现这样可以在不牺牲太多可靠性的情况下加快扫描速度
这是我的问题
-T4选项,但是我不确定它会影响可靠性和其他用户的networking速度。 我应该如何确定是否使用这个选项? 基本上有4件事情需要很长时间才能完成扫描:
加快你的扫描通常是通过测量和规划这些方面,直到你达到你想要的速度,同时保持准确性。
关于1,这里最大的问题是禁用主机发现的-Pn 。 主机发现是Nmap如何知道哪个地址值得端口扫描(“up”),哪个不会以任何方式响应,通常是由于没有主机configuration了该地址。 在/ 16networking中,您将扫描65536个地址。 如果您知道networking上只有5000个资产,那么您的扫描92%将被浪费。 使用-sn来使用各种-P*选项来避免实际的端口扫描,直到find一组在您的networking上正常工作的探针为止。 现在,如果您可以通过其他方式进行发现,例如使用-iL从您的内部IDS传感器导入活动地址列表,则可以使用-Pn来避免跳过您知道已经启动的地址,因为它没有响应默认的发现探测器。
您可能会丢失探测器的另一个潜在的浪费是反向DNS名称parsing。 这是一个很好的信息来源,而Nmap的速度非常快,但是如果你不需要知道每个地址的DNS名称(PTRlogging),那么join-n会完全切断这个阶段,为你节省一些珍贵的时间。
对于2,延迟通常是你无法控制的。 但是你可以聪明地让Nmap知道你期望的延迟。 如果你在一个LAN上,那么设置--max-rtt-timeout可以通过告诉Nmap不要等待太长的时间来收听任何特定的数据包来帮助加速扫描。 但要小心,不要太乐观; 如果Nmap放弃得太早,则将数据包计数为丢弃,并且将放慢速度以避免进一步下降。 使用来自试运行的延迟信息来了解最坏的情况,然后加倍以确保安全。 如果您的networking速度相当快,它仍然会低于默认值。
说到丢包(我们列表中的数字为3),当您尝试扫描得太快时,这是不准确的主要原因。 如果资源非常有限(如ICS或物联网设备可以),则可以压倒自己的链接或目标本身的能力。 如果你的networking速度很快,并且能够保证没有很多被丢弃的数据包,你可以设置--max-retries为一个比默认值(10)更小的数字,以加快速度,这样做有一些不准确的风险。 由于Nmap检测到丢弃的数据包并且速度变慢,所以除非使用--min-rate来继续丢弃数据包,否则最终可能不会影响其他任何人的stream量。
第四,限制目标速度是非常棘手的,因为它不在你的控制范围之内(除非你的扫描仪可以将速度限制在白名单中)。 但是有一些技巧:对于特定types的TCP RST --defeat-rst-ratelimit选项将允许您保持扫描速度,但代价是某些标记为“过滤”的端口可能实际上是“closures的“。 开放的端口不会受到影响,而这通常都是你感兴趣的。
时间模板(如你提到的-T4 )将为你设置一些选项,但是你总是可以用更具体的选项来覆盖它们。 检查您正在使用的Nmap版本的手册页,确切地查看每个模板设置的选项。 请注意, -T5设置--host-timeout选项,因此如果任何目标需要超过15分钟才能完成(非常可能使用全端口扫描),则该选项将被删除,并且不会显示任何输出。
使用--ttl设置较低的IP TTL值不会减lessnetworking噪音,除非您有路由环路。 这会阻止你的探测器达到超过10跳的目标,如果这对你很重要的话。
最后,请务必使用最新的Nmap版本 。 我们一直在进行改进,使扫描更快,更可靠。