CobaltStrike DNS Beacon的使用与原理
DNS木马
dns木马因为隐蔽性好,在受害者不会开放任何端口 可以规避防火墙协议,走的是53端口 (服务器),防火墙不会拦截,缺点响应慢。
DNS Beacon的工作过程

受害者在执行我们的传输器下载完木马之后就会发出a记录的请求,受害者首先会请求本地的hosts文件 ,再去请求本地的dns 能不能告诉1234.r1.test.com 的ip多少,如果本地dns存在记录就返回ip,没有就会去查找root 根dns 不存在记录, 接着就会访问com的dns 没有就会去查找dnspot的dns 如果都不存在 就会去查找名称服务器 的。 这个是就会访问 teamserver的服务器 在teasmserver的服务器上也有dns 刚好存在记录 就会返回ip 同时teasmserver 会有dns beacon的信息 返回受害者 受害者再请求危险的a记录到teamserver。 这就是dns beacon的工作过程。
DNS Beacon的类型
- windows/beacon_dns/reserve_http(传输数据小)
有效载荷通过HTTP连接分阶段。当您创建此侦听器时,请注意您正在配置主机和端口。Cobalt Strike 将使用通过 HTTP 分阶段执行此有效负载。当您选择设置此有效负载时,Cobalt Strike 在端口53上建立起 DNS 服务器。
- beacon_dns/reserve_http(支持命令切换到该模式:mode dns)
将使用http为通信方式,并且使用 DNS A 记录数据通道。
- beacon_dns/reserve_dns_txt(支持命令切换到该模式:mode dns-txt)
改为使用 DNS TXT 记录数据通道。DNS TXT 记录是默认的数据通道。
- windows/beacon_dns/reverse_dns_txt(传输数据大)
有效负载使用 DNS TXT 记录下载和分级混合 HTTP 和 DNS Beacon。当您创建此侦听器时,请注意,您正在配置该有效负载将用于HTTP通信的端口。再次,Cobalt Strike在53端口建立起一个DNS服务器。
以上都是非持续性的工作。
域名创建DNS指向的类型
-
A 记录
将域名指向一个 IPv4 地址。
-
CNAME 记录:
将一个域名指向另外一个域名。实现与被指向域名相同的访问效果。
-
MX 记录:
建立电子邮箱服务,指向邮箱服务器地址。一般会根据邮箱服务商提供的 MX 记录填写。
-
NS 记录:
域名解析服务器记录,将一个子域名指定某个域名服务器解析(就是把子域名交给自己解析)
-
TXT 记录:
任意填写,可为空。一般做一些验证记录时会使用。
-
SOA 记录:
SOA 为起始授权机构记录。指明 NS 记录中哪一台是主服务器。
实验
1、搭建vps环境,找一个 国外 免费域名网站进行注册或者注册域名(可参考此文章---DNS Beacon 反溯源)

2、开启 Cobalt Strike 服务器,注意端口要在防火墙中开放(服务器如果使用了宝塔需要在面板中放行server端口)。


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

4、添加监听器

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

6、生成 Web 脚本传递(要注意端口占用问题,apache会占用80端口)



目标机成功上线,可以用sleep5或者checkin将其回显

浙公网安备 33010602011771号