绕过防火墙 所谓逃脱,就是不让别人发现自己,否则要干的侦测工作还没搞完,就被迫中止岂不让人笑话。同样的,排名不分先后。

0x01:利用掩体

namp -D IP地址1,IP地址2... IP地址 1 你可以使用 D 选项(英文 decoy)跟一些 IP 地址,IP 和 IP 之间用逗号隔开。这样看起来用来侦测而发送的数据包不仅来自于你的 IP 地址,还来自于这些掩体 IP。这就叫做 “混入其中”。

0x02:禁用 ping

nmap -P0 IP地址 1 在 2010 年之后,该选项和 PN 选项被一起合并到 Pn 选项之中。但是如果你愿意,你仍然可以使用 P0 选项(P 后面跟的是零)。

0x03:IP 地址伪装

sudo proxychains nmap ... 1 伪装 IP 地址的方法也有很多,比如你可以使用 prxychains 这款工具来实现匿名代理。

0x04:空闲扫描

nmap -sI 僵尸IP地址[:开放的僵尸端口] IP地址 1 和 D 选线不同的是,sI 根本不使用你自己的 IP 地址,而是使用空闲的网络资源。这样隐蔽性就更强了。开放的僵尸端口为选填,默认等于 80 端口。具体原理请参考 Nmap 文档。根据这个理论,你不能使用空闲扫描来扫描你自己的主机 IP。在 msfconsole 中,你可以使用 auxiliary/scanner/ip/ipidseq 来完成这个工作。

0x05:指定网卡进行扫描

nmap -e 网卡 IP地址 1 当你拥有不止一个网卡的时候,这很有用。

0x06:限制扫描时间

nmap --host-timeout 时间 IP地址 1 限制每个 IP 地址的扫描时间(单位为秒),当要扫描大量的主机 IP 时这很有用。

0x07:指定源 IP 地址

nmap -S 源IP地址 IP地址 1 使用冒充的 IP 地址进行扫描以增强隐蔽性。这里伪装成的 IP 也可以来自于下线状态的主机地址。

0x08:指定源主机端口

nmap -g 53 IP地址 1 使用 g 参数,或者 source-port 参数,来手动设定用来扫描的端口。常用的,如 20、53、67 端口。

0x09:数据包分片技术

nmap -f IP地址 1 nmap --mtu mtu单元大小 IP地址 1 上面两种方法都可以利用数据包分片技术,某些防火墙为了加快处理速度而不会进行重组处理,这样从而逃脱防火墙或闯入检测系统的检测。注意,mtu 的值必须是 8 的倍数(如 8、16、24、32 等)。

0x10:添加垃圾数据

nmap --data-length 垃圾数据长度 IP地址 1 一些常见的扫描之数据包是有特定的数据长度的,通过在发送的数据包末尾添加随机的垃圾数据,以达到混淆视听的作效果。

0x11:随机选择扫描对象

nmap --randomize-hosts IP地址 1 如果你要扫描大量的,比如成百上千的主机 IP,这很有效。它会打乱扫描顺序,以规避检测系统的检测。

0x12:伪装 MAC 地址

nmap --spoof-mac 伪造MAC IP地址 1 你可以通过指定供应商的名字来伪装 MAC 地址。可选的名字有 Dell、Apple、3Com。当然也可以手动指定 MAC 地址的值。或者为了简单起见,可以在上面 “伪造IP” 的地方填写数字 0,这将生成一个随机的 MAC 地址。

0x13:伪造检验值

nmap --badsum IP地址 1 这将使用伪造的 TCP / UDP / SCTP 校验和发送数据。

0x14:扫描速度

nmap -T0 IP地址 1 T后面跟的数字代表扫描速度,数字越大则速度越快。0~5分别表示:妄想症、鬼鬼祟祟、彬彬有礼、正常、好斗、精神病。

-S:可以伪装源地址进行扫描。这样好处在于不会被对方发现自己的真实IP

[root@B ~]# nmap -e eth0 10.0.1.161 -S 10.0.1.167 WARNING: If -S is being used to fake your source address, you may also have to use -e <interface> and -Pn . If you are using it to specify your real source address, you can ignore this warning. 上面提示如果你使用-S伪装自己源地址进行扫描的话,你必须另外使用-e 指定网卡和-Pn参数才能伪装 把自己源地址伪装成10.0.1.167扫描A机器 nmap -e eth0 10.0.1.161 -S 10.0.1.167 -Pn