Cobalt Strike DNS Beacon 的使用和原理

1. DNS木马

DNS木马因为==隐蔽性好==,在受害者不会开放任何端口,可以==规避防火墙协议==,走的是53端口 (服务器),防火墙不会拦截,==缺点是响应慢==。

2. DNS Beacon 的工作过程

​ 当受害者请求域名对应的ip地址时(通过 shell 或者 钓鱼),会从根域名DNS服务器,一级域名DNS服务器,二级域名DNS服务器…==依次向下寻找==,直到我们的团队服务器,同时充当DNS服务器,将Beacon返回给团队服务器。DNS响应告诉==Beacon休眠或者连接到团队服务器==来下载任务。DNS响应同时也==告诉Beacon如何从团队服务器下载任务==。

3. DNS Beacon 类型

  1. windows/beacon_dns/reserve_http(传输数据小)

​ 有效载荷==通过HTTP连接==分阶段。当您创建此侦听器时,请注意您正在配置主机和端口。Cobalt Strike 将使用通过 HTTP 分阶段执行此有效负载。当您选择设置此有效负载时,Cobalt Strike 在端口53上建立起 DNS 服务器。

  1. beacon_dns/reserve_http(支持命令切换到该模式:mode dns)

​ 将使用==http为通信方式==,并且使用 ==DNS A== 记录数据通道。

  1. beacon_dns/reserve_dns_txt(支持命令切换到该模式:mode dns-txt)

​ 改为使用 ==DNS TXT== 记录数据通道。==DNS TXT 记录是默认的数据通道==。

  1. windows/beacon_dns/reverse_dns_txt(传输数据大)

​ 有效负载使用 ==DNS TXT== 记录下载和分级==混合 HTTP 和 DNS Beacon==。当您创建此侦听器时,请注意,您正在配置该有效负载==将用于HTTP通信的端口==。再次,Cobalt Strike在53端口建立起一个DNS服务器。

​ 以上都是非持续性的工作。

4. DNS 域名解析中的一些记录

  1. A 记录

    将域名指向一个 IPv4 地址。

  2. CNAME 记录:

    将一个域名指向另外一个域名。实现与被指向域名相同的访问效果。

  3. MX 记录:

    建立电子邮箱服务,指向邮箱服务器地址。一般会根据邮箱服务商提供的 MX 记录填写。

  4. NS 记录:

    域名解析服务器记录,将一个子域名指定某个域名服务器解析(就是把子域名交给自己解析)

  5. TXT 记录:

    任意填写,可为空。一般做一些验证记录时会使用。

  6. SOA 记录:

    SOA 为起始授权机构记录。指明 NS 记录中哪一台是主服务器。

5. 过程

  1. 先在自己的 vps 上添加 A 记录和 NS 记录:

  2. 开启 Cobalt Strike 服务器,注意端口要在防火墙中开放。

  3. 将攻击机(这里是 Kali)连接到 Cobalt Strike 服务器中。

  4. 添加监听器:

    设置的端口依旧要在防火墙中开放。

  5. 添加完成后,测试子域名解析是否正常,注意要在防火墙中开放 53 端口,并且协议一定要选择 UDP(DNS 服务器走的是 UDP)

    c1 下的子域名(包括 c1 本身)都交给了 test 处理

  6. 生成 Web 脚本传递:

  7. 在受害者机器上执行(这里是 win7)


https://endlessshw.top/Moonsec/16 Cobalt Strike/第三章 DNS Beacon的使用与原理/DNS Beacon的使用和原理/
作者
EndlessShw
发布于
2025年1月1日
许可协议