26 lines
2.2 KiB
Markdown
26 lines
2.2 KiB
Markdown
### CS 域前置的原理
|
||
|
||
**1. 核心原理:CDN 的工作方式**
|
||
|
||
要理解域前置,首先要理解 CDN 的工作原理
|
||
|
||
- **CDN(Content Delivery Network)**:CDN 的核心作用是加速内容分发。它在全球部署了大量的节点服务器,当用户访问一个网站时,CDN 会将用户的请求重定向到离用户最近的节点上。这样,用户就能更快地获取内容
|
||
- **多域名共享 IP**:一个 CDN 节点通常会为成百上千个不同的域名提供服务。这意味着,`cdn.example.com` 和 `cdn.attacker.com` 两个域名,可能解析到**同一个 IP 地址**
|
||
|
||
**2. 域前置的攻击过程**
|
||
|
||
域前置利用了 CDN 的这个特性,将攻击流量伪装成正常流量。整个过程可以分为以下几步:
|
||
|
||
1. **准备阶段**:
|
||
- **攻击者域名**:攻击者注册一个自己的域名,例如 `attacker.com`,并将其配置为 Cobalt Strike 的 C2 域名
|
||
- **CDN 加速**:攻击者将 `attacker.com` 接入一个大型 CDN 服务,例如 Cloudflare、Akamai 等。这样,`attacker.com` 就能使用 CDN 的 IP 地址
|
||
- **高信誉域名**:攻击者选择一个在高信誉 CDN 上托管的、合法的、与自己无关的域名,例如 `cdn.google.com` 或 `cdn.bing.com`。这个域名就是我们所说的**“域前置”域名**
|
||
2. **流量伪装**:
|
||
- **客户端请求**:受害者的机器(被植入 Beacon 的主机)向 Cobalt Strike C2 发送请求
|
||
- **隐藏真实 C2**:在 HTTP 请求的头部,攻击者做了如下设置:
|
||
- `Host: cdn.google.com`:这个头部告诉 CDN 服务器,客户端要访问的是 Google 的 CDN 服务。由于这个域名是高信誉的,防火墙会放行这个流量
|
||
- `X-Forwarded-For: cdn.attacker.com`:这个头部告诉 CDN,**真实的请求目标是 `cdn.attacker.com`**。这是域前置的关键
|
||
3. **CDN 转发**:
|
||
- 当 CDN 节点收到请求时,它会先查看 `Host` 头。因为 `Host` 头是 `cdn.google.com`,CDN 就会认为这个请求是合法的,并不会拦截
|
||
- 然后,CDN 会根据内部的转发规则,将请求转发到 `X-Forwarded-For` 头指定的域名所对应的服务器上
|
||
- 最终,请求被转发到了攻击者的 Cobalt Strike C2 服务器 |