Files
Sec-Interview/Chapter8/8-8.md
T
2025-09-25 03:41:26 +08:00

19 lines
1.5 KiB
Markdown

### 如果 TCP 和 UDP 不出网怎么绕过
**1. 利用 DNS 协议进行隧道传输**
DNS 协议是最常见的出网协议之一,很多防火墙为了保证正常的网络解析,都会放行 DNS 流量。因此,我们可以利用 DNS 请求和响应来传输数据
- **工作原理**: 我们把需要传输的数据编码成 DNS 域名请求(通常是子域名),发送给一个可控的 DNS 服务器。我们的服务器收到请求后,会解析这些数据,并把响应数据编码在 DNS 回复包中,发回给目标机器
- **常用工具**:
- **dnscat2**: 这是一个功能强大的 DNS 隧道工具,支持加密和交互式会话,可以建立一个类似 shell 的通道
- **iodine**: 另一个流行的 DNS 隧道工具,可以将 IPv4 流量封装在 DNS 请求中
**2. 利用 ICMP 协议进行隧道传输**
ICMP(互联网控制消息协议)主要用于网络诊断,例如 `ping` 命令就是基于 ICMP 协议。如果网络管理员没有禁用 ICMP,我们可以利用 ICMP 包来传输数据
- **工作原理**: 将数据封装在 ICMP Echo 请求或回复的数据载荷中。目标机器发送带有数据的 ICMP 请求到我们的服务器,我们的服务器解析数据并发送 ICMP 回复包,以此实现双向通信
- **常用工具**:
- **`icmpsh`**: 一个简单的 ICMP shell,可以在两台机器之间建立一个交互式命令行
- **`ptunnel`**: 一个 TCP over ICMP 的隧道工具,可以将 TCP 流量通过 ICMP 隧道传输