记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

cobaltstrike dns beacon知多少

2020-04-03 14:06

TL;DR

  • cs作者曾说过dns beacon是cs一重要特色,原因在于其绕过防火墙方面比较有优势,之前测试的时候有点儿问题也没有深入研究原理,在最新的cs4.0出来之后又重新测试了一下,然鹅过程是崎岖的,中间踩了几个坑记录一下。

原理简介

  • 首先我们需要申请一个域名配置好域名解析,例如这里的域名是 malware.com, vps ip地址1.2.3.4,我们需要设置dns的一个A记录,将malware.com的一个子域名指向我们的vps地址,如c2.malware.com
  • 之后我们需要添加一个NS(name server)记录,主机记录可以是dns,记录值是c2.malware.com,NS记录就是将解析任务交由一个指定的"权威"dns服务器(在这里teamserver就是我们的"权威"dns)
  • 梳理一下流程,当我们请求data.dns.malware.com的时候,首先通过递归查询查找到malware.com,之后发现dns.malware.com是由c2.malware.com负责解析,然后这个c2.malware又有A记录,对应ip地址是1.2.3.4,这个时候就可以和1.2.3.4通信了,注意这里需要事先在teamserver上配置dns listener(cs中listener的dns hosts设置为dns.malware.com),否则无法处理过来的dns请求。

测试

  • 原理明白测试就简单了,配置好cs的dns listener和dns解析之后可以进行一下解析测试,使用dig或nslookup命令
    dig +trace dns.malware.com
    nslookup dns.malware.com c2.malware.com
    一般会收到来自teamserver 53端口的默认回复地址0.0.0.0,但如果你的cs配置了profile,且设置了dns_idle,那就不是默认的0.0.0.0,而是你dns_idle的值,这个是cs作者用来逃避检测的一种技巧,只能说作者考虑的有点儿全面orz (之前测试的时候我一直没注意到这个点,一直不明白自己为啥总是返回8.8.8.8,简单逆了一下cobaltstrike.jar 大概看下流程也没怎么看懂,也看了teamserve的log除了几个warning也没什么特别的异常,在服务器上抓了流量也没发现异常,也排除了vps限制或者是dns厂商问题,总之各种弯路都走了...最后事实证明这些都是正常的,是自己在启动teamserver的时候自定义了profile里面的dns_idle为8.8.8.8,害!)。
  • 在beacon上线之后,图标是个黑框,且和http和tcp beacon不一样它没有默认的睡眠60秒,你甚至可能会以为beacon死掉了,其实不然如果想要和beacon交互这个时候需要checkin命令,help checkin可以看到帮助信息,大意就是会让dns beacon强制回连你的teamserver,checkin之后就会发现图标变了,也可以进行交互了,但非常慢,有时候甚至还连不回来,这个时候需要修改一下dns模式,help mode可以看一下具体有什么不同,默认的mode dns数据传输比较慢,可以修改为mode dns-txt 这样传输会快点儿,每次传输189比特的数据,相比A记录每次传输4比特的数据快很多了。


    至此,踩坑完毕。。。

Reference

New Malleable C2 Options
Cobalt Strike 3.13

知识来源: xz.aliyun.com/t/7488

阅读:15181 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“cobaltstrike dns beacon知多少”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于累土;黑客之术,始于阅读

推广

工具

标签云

本页关键词