graph TD
A[流量隐匿挑战] --> B[DNS查询泄露]
A --> C[TLS握手暴露]
A --> D[流量特征识别]
A --> E[基础设施可靠性]
B --> F[DoH解决方案]
C --> G[ECH解决方案]
D --> H[流量伪装]
E --> I[多重保障机制]
DoH通过HTTPS协议封装DNS查询请求,确保DNS查询过程的安全性和私密性。
sequenceDiagram
participant Client
participant DoH Provider
participant Target DNS
Client->>DoH Provider: HTTPS加密DNS查询
DoH Provider->>Target DNS: DNS查询
Target DNS->>DoH Provider: DNS响应
DoH Provider->>Client: HTTPS加密响应
ECH通过加密TLS握手中的Client Hello消息,保护SNI等敏感信息。
sequenceDiagram
participant Client
participant Server
Client->>Server: 加密的Client Hello (含SNI)
Server->>Client: Server Hello
Note over Client,Server: 只有目标服务器能解密SNI信息
| 特性 | 域前置 | DoH + ECH | 云函数转发 | CDN 代理 |
|---|---|---|---|---|
| DNS 隐匿 | 依赖 CDN | 完全加密 | 部分支持 | 依赖 CDN |
| TLS 隐匿 | SNI 伪装 | 加密实现 | 平台相关 | SNI 伪装 |
| 应用层隐匿 | 完整支持 | 不涉及 | 完整支持 | 完整支持 |
| 部署复杂度 | 中等 | 较高 | 低 | 中等 |
| 运维成本 | 高 | 低 | 中等 | 高 |
| 检测难度 | 较难 | 较难 | 中等 | 中等 |
| 可靠性 | 高 | 高 | 中等 | 高 |
在红队内网渗透和 C2(Command & Control)通信的对抗场景中,隐匿流量和绕过检测是关键需求。传统的通信方式容易被 EDR(Endpoint Detection and Response)、IDS(Intrusion Detection System)或流量审查机制识别和拦截。具体问题包括:
DNS 泄露:
SNI 泄露:
对抗流量审查和行为分析:
解决方案:
graph TD
A[开始] --> B[配置DoH服务]
B --> C[获取ECH配置]
C --> D[DNS查询加密]
D --> E[TLS握手加密]
E --> F[建立加密连接]
F --> G[数据传输]
subgraph DoH流程
B --> H[选择DoH提供商]
H --> I[配置DoH客户端]
I --> J[加密DNS查询]
end
subgraph ECH流程
C --> K[获取服务器公钥]
K --> L[生成ECH配置]
L --> M[加密ClientHello]
end
python# DoH请求示例代码
import requests
def doh_query(domain, doh_url="https://dns.alidns.com/dns-query"):
headers = {
'accept': 'application/dns-json'
}
params = {
'name': domain,
'type': 'A'
}
response = requests.get(doh_url, headers=headers, params=params)
return response.json()
sequenceDiagram
participant Client
participant DNS
participant Server
Client->>DNS: 查询HTTPS记录
DNS->>Client: 返回ECH配置
Note over Client: 解析ECH配置
Client->>Server: 使用ECH配置加密ClientHello
graph LR
A[客户端] --> B[DoH服务器]
A --> C[目标服务器]
subgraph 加密通道
B --> D[DNS查询]
C --> E[ECH握手]
end
subgraph 服务端
D --> F[DNS响应]
E --> G[数据交换]
end
graph TD
A[环境准备] --> B[安装依赖]
B --> C[配置DoH客户端]
C --> D[获取ECH证书]
D --> E[配置网络环境]
bash# 配置DoH服务器
server {
listen 443 ssl http2;
server_name doh.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location /dns-query {
proxy_pass https://upstream-dns-server;
proxy_set_header Host $host;
}
}
json{
"public_name": "example.com",
"public_key": "...",
"key_config": {
"version": 0xfe0d,
"cipher_suites": ["TLS_AES_128_GCM_SHA256"]
}
}
问题:
解决方案:
问题:
解决方案:
问题:
解决方案:
Host 头)和通信模式,使流量难以与合法流量区分。HTTPS。https://dns.alidns.com/dns-query)。tls.Config 的 EncryptedClientHelloConfigList 配置加密握手。Host 头为目标域名,确保服务器能够正确处理请求。可以将 DoH 和 ECH 的过程类比成一个"加密信封":
在红队渗透和 C2 对抗中,DoH 和 ECH 是强大的隐匿技术:
这些技术的结合为红队提供了强大的对抗手段,同时也为网络安全防御提出了更高的要求。
高信誉域名 CDN CLOUDFARE ECH配置 密钥 阿里云dns云平台 CDN IP 真实域名 cloudfare
工作原理:
优势:
局限性:
工作原理:
优势:
局限性:
选择考虑因素:
组合使用策略:
防御规避建议: