前言
以下内容,来自长白山攻防实验室公众号的作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。
0x01简介
Cobalt Strike是一款美国Red Team开发的渗透测试神器,常被业界人称为CS。最近这个工具大火,成为了渗透测试中不可缺少的利器。其拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具,因此广受黑客喜爱。
0x02生产样本
打开Cobalt Strike,点击
图标选择添加,添加名字和http地址,点击保存,在监听器中,会出现你所添加的信息,再次点击攻击后门生成windows可执行程序,选择你新添加的监听器,之后点击生成并且保存,你所生成的exe文件。
0x03文件分析
基本信息
SHA256:550a041001fb46e1135c3b3a904de8c77d737a55225a0baa4cd9044ce56221db、
MD5:187e3f5ad2e6537303a114dc8d98e7c6
SHA1:6b419f6adafa2b0ae5c09cb7696f25f21066d2f3
样本类型:远控
受到威胁系统:windows
壳信息:无壳
静态分析
放入分析软件中,从main函数开始分析。
在main函数中,结构很简单,里面两个函数,一个sleep的动作,进入第一个函数sub_4027F0()。
打下一个断点,看看做了什么,单步往里走在动态调试中,直接跳过中间的if内容,返回result的,根据看汇编中,返回的是1。
回到了main函数,进入sub_401840,并且传递了一个0进去,看到函数, GetTickCount(),获取了操作系统启动到现在的毫秒数,格式化字符串输出
经过转换,获得的信息是\\.\pipe\运算之后的结果在内存中
在全部运行完成,会进入sub_4017E2函数,sub_4017E2,中开辟了一个dwSize大小的堆,这个堆开辟了0x320的大小,传入信息到sub_40158E,看到了VirtualAlloc,申请内存,内存写什么,一个长时间的while,看v5变量,在解密payload,把 payload解密出来,放到了v5的变量中,共320个字节,但是为了防止杀掉,里面的所有的都是分开的,而不是挨着的,可以看见恶意ip和一些数据例如:User-Agent:Mozila5.0 (comptible; MISE 9.0; Windows NT 6.1 WOW64; Trident/5.0; BOIE9;ENUSMSE)
或者是恶意服务器的ip:
现在还没执行起来,但是已经把有效的荷载解密出来了,跳转到sub_401559,这个直接返回,返回0xB10000,这个地址里面是有效荷载,API函数VirtaulProtect API函数,是更变了v5所在的内存页面的保护,改为了可以执行,直接在内存中执行起来,给v5创建了一个线程,一直在返回v5的线程回主函数,延迟0x2710微秒之后上线。
网络行为
打开wireshark,捕捉流量。
发现是走http来进行,在你上线的时候,会来回发送4个http的数据包
确认你是否存活,受控端会访问服务器IE9CompatViewList.xml,每次执行操作,就会访问submit.php,所以感觉被CS远控,可以直接抓包查看是否访问过submit.php也同时存在访问相同的ip存在IE9CompatViewList.xml并且服务器返回的一直是200 但是里面并没有返回数据,基本就可以判断是否存在CS木马。
0x04总结
Cobalt Strike是很常见使用的,并且使用方法很多,用到的地方也很多,是个常见的神兵利器,主要还是便于使用,目前CS插件的免杀很多都可以被杀软查出,所以还要进行进一步的免杀才可以正常在杀毒软件开启下进行使用,对于正常使用电脑,目前很多都是点击上线,例如钓鱼邮件等,所以不认识的邮件不要去因为好奇而点击,不认识的软件不要好奇点开。
欢迎关注长白山攻防实验室微信公众号
定期更新优质文章分享