内网有 ACL 策略,如果是白名单如何绕过
1. 利用被允许的协议和端口
这是最直接、最有效的方法。你需要找到 ACL 策略放行的协议和端口,然后利用它们建立隧道
- DNS 隧道:如果 ACL 允许 DNS 流量(通常是放行的,因为网络解析需要),这是首选方法
- 原理:将你的恶意流量(例如 C2 通信)编码成 DNS 查询请求(通常是子域名),发送到你控制的公网 DNS 服务器。你的服务器解析后,再将响应数据编码在 DNS 回复包中返回
- 优点:几乎所有网络都允许 DNS 流量出网,隐蔽性极高
- 工具:
iodine
和dnscat2
是最经典的 DNS 隧道工具
- ICMP 隧道:如果 ACL 允许 ICMP 流量(例如允许
ping
),你就可以利用它- 原理:将你的数据封装在 ICMP Echo 请求包的载荷中,通过
ping
的方式发送出去,并从回复包中接收数据 - 优点:同样利用了网络诊断的合法协议,不易被察觉
- 工具:
ptunnel
或icmpsh
- 原理:将你的数据封装在 ICMP Echo 请求包的载荷中,通过
- HTTP/S 隧道:如果内网允许访问特定网站或端口的 HTTP/S 流量,你可以伪装成这种流量
- 原理:将你的 C2 通信封装在 HTTP/S 请求和响应中。你可以利用 CDN、合法域名或者特定的代理服务器来伪装流量
- 优点:流量看起来像是正常的网页浏览,非常具有迷惑性
- 工具:
reGeorg
/Neo-reGeorg
、sliver
、Cobalt Strike
都可以配置 HTTPS 监听器来绕过