|
Nmap用来隐蔽扫描的用隐命令是以下哪一选项?答案是`-sS`配合`-T2`或`-T1`,但真正让人头疼的蔽扫地方在于,`-sS`本身并不算隐蔽,描的命令它只是下选项半开扫描——SYN包发出去,对方回了SYN/ACK,用隐你直接RST断开,蔽扫不建立完整TCP握手。描的命令这能绕过大部分基于完整连接日志的下选项检测,但防火墙和IDS照样能嗅到SYN洪流般的用隐痕迹。 我见过不少新手拿`-sS -T0`当宝,蔽扫觉得慢速就是描的命令隐蔽。结果呢?下选项扫描一个网段花了三天三夜,目标机房的用隐流量监控图上出现一条细长但持续的红线,运维直接手动封了IP。蔽扫慢不等于隐形,描的命令慢只是让告警阈值更难触发,但长时间的低频探测反而更容易被统计型异常检测揪出来。 真正有点隐蔽味道的组合是`-sS -T2 --scan-delay 5s --randomize-hosts`。`-T2`把时间间隔拉大到400毫秒以上,`--scan-delay`再额外加5秒延迟,让每个端口探测之间隔着明显的时间空隙,像人类误触而不是机器扫描。`--randomize-hosts`打乱目标IP顺序,避免顺序扫描的线性特征。这套组合下来,普通防火墙的会话表不会出现密集的SYN记录,IDS的规则库也未必能匹配到固定节奏。 但别高兴太早。隐蔽扫描的终极矛盾在于:你要收集信息,就必然留下痕迹。哪怕你用`-sS -T2`,目标主机上装了tcpdump,照样能看到来自你IP的SYN包——只是数量少,不容易触发自动告警。真正的隐蔽是让日志看起来“正常”,比如混在真实用户流量里,或者用`-D`伪造源地址。 `-D`选项是个有趣的东西。你可以用`nmap -sS -D 192.168.1.1,192.168.1.2,你的真实IP 目标地址`,让目标看到多个IP同时扫描,你的真实IP混在中间,像一群乌鸦里藏了只麻雀。但这里有个坑:如果伪造IP那几台机器没有真实存活,防火墙的SYN cookie机制可能直接丢弃所有扫描包,包括你的。我曾经在测试环境用`-D`指向三个不存在的地址,结果目标主机一个端口都没回,白白等了半小时。 还有个更冷门的招——`-g`指定源端口。有些防火墙规则会放行源端口53的DNS流量,你拿`nmap -sS -g 53`扫描,包源端口变成53,某些傻白甜防火墙直接放行。但这招只对老设备有效,现在的状态检测防火墙根本不看源端口,只看会话状态。用这招纯粹是赌运气。 回到选择题本身。如果考试题问“以下哪一选项是Nmap隐蔽扫描命令”,选项里大概率有`-sS`、`-sT`、`-sP`、`-sV`。`-sT`是完整TCP连接扫描,日志里会留下明显的Connect记录,不算隐蔽。`-sP`是Ping扫描,只探测主机存活,不扫端口,谈不上隐蔽。`-sV`版本探测更吵,会发送大量指纹请求,比SYN扫描更显眼。所以答案只能是`-sS`——就算它不完美,至少半开连接不会让目标应用层日志留下记录。 实际渗透测试里,我从来不用单一命令追求隐蔽。先`-sS -T2`扫个大概,再用`--source-port 53`针对特定端口探测,最后配合`--data-length 100`填充垃圾数据让包大小不像默认扫描。这套流程下来,目标如果没上企业级IDS,基本看不到异常。但你要是碰上装了Suricata的机房,任何SYN扫描都会在流量分析里现形——隐蔽扫描的本质是和检测能力赛跑,没有绝对安全,只有相对低风险。 |