### 目标机器 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 数据包的解析和生成，适合自定义隧道