只是一个快速的问题。我运行 http 服务器,当我使用经典的“nmap -T5 -O -v [IP]”扫描它时,我在日志中看不到任何内容。但是当我做“-A”而不是“-O”时,我看到很多明显来自nmap扫描的东西。在用户代理中是“Nmap 脚本引擎”,其他东西很少。为什么不至少尝试隐藏自己?
很明显,做“-A”会很吵,但至少会“少一点”吵。另外,我如何更改这些默认值?谢谢
只是一个快速的问题。我运行 http 服务器,当我使用经典的“nmap -T5 -O -v [IP]”扫描它时,我在日志中看不到任何内容。但是当我做“-A”而不是“-O”时,我看到很多明显来自nmap扫描的东西。在用户代理中是“Nmap 脚本引擎”,其他东西很少。为什么不至少尝试隐藏自己?
很明显,做“-A”会很吵,但至少会“少一点”吵。另外,我如何更改这些默认值?谢谢
是尝试避免默认检测还是提供唯一流量签名的决定是一个棘手的问题。从长远来看,它变成了一场军备竞赛,攻击者必须始终跟上防御者或风险检测。Nmap 历史上提供了逃避特定类型检测的方法,但默认情况下没有打开它们:数据包分段、源端口欺骗、连接限制、空闲/僵尸扫描等。能力是存在的,但默认是诚实的关于我们正在尝试做的事情。
--max-parallelism
NSE 脚本具有类似的功能:您可以使用相关选项减慢它们的速度。您可以使用http.useragent
. 您可以通过代理发送流量--proxies
。但默认情况下,Nmap 非常诚实地表示自己是 Nmap。
问题在于,如果将这些行为中的任何一个设为默认行为,它们将不再是隐秘的。在第一次编写 Nmap 时,它的默认 TCP 扫描模式,半开 SYN 扫描是最隐蔽的,因为 TCP 握手从未完成,因此服务器的应用程序日志中没有任何关于关闭连接的信息。但随着这种扫描模式变得如此流行,网络 IDS 的能力很快扩大到可以捕捉到它,因为“SYN、SYN-ACK、RST”行为非常不寻常且引人注目。但是 Nmap 并没有仅仅为了避免 IDS 而改变它的默认值。相反,它保留了对无知系统影响最小的可靠方法——如果您简单地连接和挂断,您可能会惊讶地知道有多少守护程序会崩溃(-sT
)。
我已经对 Nmap 的默认值、如何检测它们以及如何更改它们以避免检测进行了更彻底的分析。它在我的博客上的一篇名为“他们看到我正在扫描”的两部分文章中。我有一种感觉,你会觉得这很有趣。
Nmap 可以使用多种不同的方式来扫描目标。bonsaiviking 已经很好地解释了为什么 nmap 使用 -A 选项会产生噪音。
您保持隐身的能力是使用非默认的 nmap 扫描:我的建议是编写您自己的 nmap 命令行并使用别名调用它。
扫描类型:默认 -sS。您可以使用 -sT、-sU、-sF、-sN、sX 或编写您自己的扫描类型
--scanflags
计时:使用非激进和独特的计时设置。而不是依赖预设(T0、T1、T2、T3、T4、T5)。设置您自己的时间选项:
--max-rtt-timeout *****
--max-parallelism *****
--min-hostgroup *****
etc...
修改默认标题:
-f (fragment packets); --mtu (using the specified MTU)
The -f option causes the requested scan (including ping scans) to use tiny fragmented IP packets.
The idea is to split up the TCP header over several packets to make it harder for packet filters, intrusion detection systems, and other annoyances to detect what you are doing. Be careful with this! Some programs have trouble handling these tiny packets.
--data-length <number> (Append random data to send packets)
Normally Nmap sends minimalist packets containing only a header. So its TCP packets are generally 40 bytes and ICMP echo requests are just 28. This option tells Nmap to append the given number of random bytes to most of the packets it sends.
OS detection ( -0) packets are not affected because accuracy there requires probe consistency, but most pinging and portscan packets support this.
It slows things down a little, but can make a scan slightly less conspicuous.
--ttl <value> (Set IP time-to-live field)
Sets the IPv4 time-to-live field in sent packets to the given value.
*From the book Nmap Network Scanning, Gordon “Fyodor” Lyon*
待考虑:(与问题无关)
始终可以检测到主动指纹。如果可能,最喜欢被动指纹识别。
如果使用欺骗技术,您可能想要隐身或接受嘈杂。
此选项启用某些可能会变得嘈杂的机制。
-A:启用操作系统检测、版本检测、脚本扫描和跟踪路由
版本检测建立到每个打开端口的连接并获取横幅以确定哪个守护程序在该端口上运行以及在哪个版本中。
脚本扫描可以使用可能非常嘈杂的 nse 脚本。使用哪些脚本取决于有关打开端口和服务的先前信息。例如,在带有 Windows 工作站的 LAN 中,这很可能会触发一些与 SMB 相关的脚本,这些脚本将部分尝试使用 NULL Sessions。