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

【干货】使用内存特征检测 Cobalt Strike

2021-09-11 11:05

文章来源:黑白天实验室

Beacon 通常是反射加载到内存中,还可以配置各种内存中混淆选项以隐藏其有效负载。


Beacon 可以配置各种内存中混淆选项以隐藏其有效负载。例如,obfuscate-and-sleep 选项会试图在回调之间屏蔽部分 Beacon 有效负载,以专门避开基于特征的内存扫描。

Obfuscate and Sleep是一个Malleable C2选项,在Cobalt Strike 3.12.引入。启用后,Beacon将在进入Sleep状态之前在内存中混淆自身。

那么我们先使用默认的关闭Obfuscate and Sleep来查看CobaltStrike进行进程注入会的具体情况。


然后我们把进程注入到微信中。


注入微信进程


正常执行命令


然后我们在目标主机中使用Process Hacker 2进行检测查看:

查找调用 SleepEx 的线程来定位内存中的 Beacon,一般在比较活跃的之中。


然后,我们可以将关联的内存区域进行分析,转到Memory查看分析这个偏移量。


我们可以对比看一下Beacon的情况:

转到Memory查看分析这个偏移量并对比一下:

可以看到我们可以看到我们的整个beacon在内存中未加密。


检测这样没有加密的beacon不难,我们在最简单的做法是,从这个区域挑选一些独特的字符串并将它们用作我们的检测的特征就行。

rule cobaltstrike_beacon_strings{meta:     author ="Elastic"description ="Identifies strings used in Cobalt Strike Beacon DLL."strings:   $a = {70 6F 77 65 72 73 68 65 6C 6C 20 2D 6E 6F 70 20 2D 65 78 65 63 20 62 79 70 61 73 73 20 2D 45 6E 63 6F 64 65 64 43 6F 6D 6D 61 6E 64 20 22 25 73}condition:       any of them }


当然上面的我只是举个例子,在实战中还得细一点。


国外也有个安全研究人员给出了个yar

rule cobaltstrike_beacon_strings{meta:  author = "Elastic"  description = "Identifies strings used in Cobalt Strike Beacon DLL."strings:    $a = "%02d/%02d/%02d %02d:%02d:%02d"    $b = "Started service %s on %s"    $c = "%s as %s\\%s: %d"condition:   2 of the }

同时Cobalt Strike给出了一种Bypass方法

# Obfuscate Beacon, in-memory, prior to sleepingset sleep_mask "true";



Set sleep_mask “true”; 设置使beacon在睡眠之前混淆内存中的代码,睡眠后对自己进行混淆处理


可以看到在混淆内存中的代码,然后我们使用前面的规则并不能检测到了beacon


其实如果你刷新几次也可以发现解密的beacon,因为在每次使用beacon,都会重新加密数据和字符串。


那么我们也可以多检测几次也可以检测到:


因为我现在使用的4.3的Cobalt Strike,使用 13 字节的 XOR 密钥,


如果是4.2以下Cobalt strike 使用的是使用简单的单字节 XOR 混淆,使用下面的yar一样可以检测:

rule cobaltstrike_beacon_xor_strings{meta:    author = "Elastic"    description = "Identifies XOR'd strings used in Cobalt Strike Beacon DLL."strings:    $a = "%02d/%02d/%02d %02d:%02d:%02d" xor(0x01-0xff)    $b = "Started service %s on %s" xor(0x01-0xff)    $c = "%s as %s\\%s: %d" xor(0x01-0xff)condition:    2 of them}


这里不多讨论。


好文推荐

渗透测试面试近期热门题

干货|安全工程师面试题汇总

渗透工程师常用命令速查手册

Web常见漏洞描述及修复建议

流量分析与日志溯源的个人理解

规范报告中的漏洞名称以及修复建议

应急响应 | 7款WebShell扫描检测查杀工具

11个步骤完美排查Linux机器是否已经被入侵


欢迎关注 系统安全运维

每日坚持分享,麻烦各位师傅文章底部给点个“再看”,感激不尽


知识来源: https://mp.weixin.qq.com/s?__biz=Mzk0NjE0NDc5OQ==&mid=2247491413&idx=2&sn=79d1879966846dc82447163c15fbf78a

阅读:85308 | 评论:0 | 标签:内存 特征 Cobalt Strike

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

“【干货】使用内存特征检测 Cobalt Strike”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

永久免费持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

求投资、赞助、支持💖

标签云