踩坑记录-DNS Beacon
字数 1492 2025-08-25 22:59:09

DNS Beacon 配置与使用详解

0x00 场景概述

DNS Beacon 主要用于以下场景:

  • 目标机器获取 Webshell 但不出网(无法建立 TCP 连接)
  • 需要隐蔽通信,避免常规 HTTP/HTTPS 流量被检测

0x01 Beacon 类型区别

1. Stageless Beacon

  • 特点:完整功能的二进制程序,payload 体积庞大(约 200KB)
  • 优点:直接执行即可上线
  • 缺点:特征明显,内存中解密完整 PE 文件易被检测

2. Stager/Stage Beacon

  • 分为三部分:payload、stager 和 stage
  • stager 负责下载 stage 组成完整功能
  • 优点:体积小(shellcode 不足 1KB),便于免杀
  • 缺点:需要额外配置才能正常工作

0x02 DNS Beacon 工作原理

DNS Beacon 通过 DNS 协议封装加密通信:

  1. 配置域名 A 记录指向 teamserver IP
  2. 配置 NS 记录用于隧道通信
  3. 本地 DNS 服务器迭代查询将请求导向 teamserver
  4. 通过 DNS 请求/响应进行加密通信

0x03 CS4 与之前版本的区别

  • CS4 的 DNS Beacon 是纯粹的 DNS 隧道
  • 所有 stage 必须从 DNS 隧道下载(仅保留 reverse_dns_txt)
  • 前作可通过 HTTP 传递 stage,CS4 必须完全依赖 DNS

0x04 正确配置方法

域名解析配置

  1. 添加一条 A 记录指向 teamserver IP
  2. 添加一条或多条 NS 记录用于隧道,指向 A 记录

示例 DNS 记录:

A记录:teamserver.example.com → [teamserver IP]
NS记录:ns1.example.com → teamserver.example.com
NS记录:ns2.example.com → teamserver.example.com

CS 配置

  1. 在 Listeners 中配置 DNS Beacon
  2. Hosts 填写 NS 记录域名(如 ns1.example.com,ns2.example.com)
  3. Stager 域名填写其中一个 NS 记录

0x05 流量分析

Stageless Beacon 流量

  1. 初始 checkin 阶段:单一 DNS 请求交互
  2. CS 出现 Ghost Beacon
  3. 需要手动输入 checkin 命令激活
  4. 未激活时:定期请求新子域名,返回 0.0.0.0
  5. 激活后:通过 A 记录和 TXT 记录通信

Stager Beacon 流量

  1. 执行时产生大量 TXT 请求(下载 stage)
  2. 数据加密后 Base64 编码传输
  3. 上线时间较长(测试中约 800 秒)
  4. 通信稳定后使用 TXT 记录传输数据(默认模式)

0x06 常见问题与解决

BUG 处理

  • 某些破解版存在 checkin 命令无效的问题
  • 替代方案:在 Ghost beacon 中输入 mode dns 命令
  • 通信慢时可切换模式:mode dns-txt

上线失败排查

  1. 确认域名解析配置正确
  2. 检查 teamserver 是否能收到 DNS 请求
  3. 耐心等待(stager 可能需要 10 分钟以上)
  4. 尝试手动激活命令

0x07 隐蔽通信工具推荐

  1. chashell - 基于 DNS 的隐蔽通信工具
  2. DNSlivery - DNS 数据传输工具
  3. icmptunnel - ICMP 隧道工具(需自行加密)

最佳实践建议

  1. 优先使用 stager/stage 模式,便于免杀
  2. 配置多个 NS 记录提高可靠性
  3. 国内环境建议 teamserver 放在国内,减少延迟
  4. 重要操作前先测试通信稳定性
  5. 结合其他隐蔽技术增强对抗能力

通过以上详细配置和分析,可以成功建立 DNS Beacon 通信渠道,实现在限制性网络环境下的持久控制。

DNS Beacon 配置与使用详解 0x00 场景概述 DNS Beacon 主要用于以下场景: 目标机器获取 Webshell 但不出网(无法建立 TCP 连接) 需要隐蔽通信,避免常规 HTTP/HTTPS 流量被检测 0x01 Beacon 类型区别 1. Stageless Beacon 特点:完整功能的二进制程序,payload 体积庞大(约 200KB) 优点:直接执行即可上线 缺点:特征明显,内存中解密完整 PE 文件易被检测 2. Stager/Stage Beacon 分为三部分:payload、stager 和 stage stager 负责下载 stage 组成完整功能 优点:体积小(shellcode 不足 1KB),便于免杀 缺点:需要额外配置才能正常工作 0x02 DNS Beacon 工作原理 DNS Beacon 通过 DNS 协议封装加密通信: 配置域名 A 记录指向 teamserver IP 配置 NS 记录用于隧道通信 本地 DNS 服务器迭代查询将请求导向 teamserver 通过 DNS 请求/响应进行加密通信 0x03 CS4 与之前版本的区别 CS4 的 DNS Beacon 是纯粹的 DNS 隧道 所有 stage 必须从 DNS 隧道下载(仅保留 reverse_ dns_ txt) 前作可通过 HTTP 传递 stage,CS4 必须完全依赖 DNS 0x04 正确配置方法 域名解析配置 添加一条 A 记录指向 teamserver IP 添加一条或多条 NS 记录用于隧道,指向 A 记录 示例 DNS 记录: CS 配置 在 Listeners 中配置 DNS Beacon Hosts 填写 NS 记录域名(如 ns1.example.com,ns2.example.com) Stager 域名填写其中一个 NS 记录 0x05 流量分析 Stageless Beacon 流量 初始 checkin 阶段:单一 DNS 请求交互 CS 出现 Ghost Beacon 需要手动输入 checkin 命令激活 未激活时:定期请求新子域名,返回 0.0.0.0 激活后:通过 A 记录和 TXT 记录通信 Stager Beacon 流量 执行时产生大量 TXT 请求(下载 stage) 数据加密后 Base64 编码传输 上线时间较长(测试中约 800 秒) 通信稳定后使用 TXT 记录传输数据(默认模式) 0x06 常见问题与解决 BUG 处理 某些破解版存在 checkin 命令无效的问题 替代方案:在 Ghost beacon 中输入 mode dns 命令 通信慢时可切换模式: mode dns-txt 上线失败排查 确认域名解析配置正确 检查 teamserver 是否能收到 DNS 请求 耐心等待(stager 可能需要 10 分钟以上) 尝试手动激活命令 0x07 隐蔽通信工具推荐 chashell - 基于 DNS 的隐蔽通信工具 DNSlivery - DNS 数据传输工具 icmptunnel - ICMP 隧道工具(需自行加密) 最佳实践建议 优先使用 stager/stage 模式,便于免杀 配置多个 NS 记录提高可靠性 国内环境建议 teamserver 放在国内,减少延迟 重要操作前先测试通信稳定性 结合其他隐蔽技术增强对抗能力 通过以上详细配置和分析,可以成功建立 DNS Beacon 通信渠道,实现在限制性网络环境下的持久控制。