# Cobalt Strike DNS Beacon 的使用和原理

1. DNS木马

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

2. DNS Beacon 的工作过程

img

​ 当受害者请求域名对应的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 记录:

    image-20220120105105320

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

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

  4. 添加监听器:

    image-20220120105548412

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

    image-20220120105706155

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

    image-20220120105934865

    image-20220120110318551

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

  6. 生成 Web 脚本传递:

    image-20220120110232277

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

    image-20220120110608779

posted on 2022-01-20 11:41  EndlessShw  阅读(1416)  评论(0编辑  收藏  举报