目标机器 Ping 不通外网,没有办法走网络层协议如何搭建隧道
1. HTTP/HTTPS 隧道
如果目标机器能够访问互联网上的某个网站,那么 HTTP/HTTPS 隧道就有了用武之地
- 工作原理: 我们可以将流量伪装成正常的 HTTP/HTTPS 请求(例如 GET 或 POST),将其发送到攻击者控制的 Web 服务器。Web 服务器接收到请求后,再将流量转发到真正的目的地。反之亦然,通过 Web 服务器的响应将数据传回
- 工具:
- reGeorg: 一个经典的 HTTP 隧道工具,通过在 Web 服务器上部署一个 Web Shell,来建立 SOCKS 代理
- Meterpreter 的
http/https
模块: 在使用 Metasploit 框架时,这是一个非常方便的选项,可以直接利用 HTTP/HTTPS 协议进行反向连接 - Tunna: 类似于 reGeorg,但提供了更多功能和灵活性
2. DNS 隧道
这是最常用也是最有效的方案之一。DNS 协议通常被认为是“无害”的,很少有防火墙会完全阻止它
- 工作原理: 我们通过将恶意流量封装在 DNS 查询请求(A 记录、TXT 记录等)或 DNS 响应中,从而建立一个隐蔽的通道。目标机器作为客户端,向攻击者控制的 DNS 服务器发起查询,而查询的域名中就携带着数据。攻击者服务器收到查询后,通过 DNS 响应将数据传回给客户端
- 工具:
- iodine: 一个非常经典的开源工具,支持 IPv4 over DNS
- DNSCat2: 支持加密和更复杂的数据传输,可以模拟一个交互式的 Shell
- dnscapy: 侧重于 DNS 数据包的解析和生成,适合自定义隧道