-
-
[原创]追踪活动中相遇CobaltStrike的故事
-
发表于:
2020-7-26 09:48
4668
-
[原创]追踪活动中相遇CobaltStrike的故事
近期笔者在追踪相关组织的过程中,自然需要浏览一些公开的样本,又无意发现了如下样本,从检出率的结果觉得可以深入分析看看。
下载后拿到完整内容,如下。
脚本文件名命名很直接,大致看了下,可以确定是一个恶意文件了,不过没有混淆。这里提一下C#中如何判断系统的架构(32位或64位),一种很简单的方法就是根据IntPtr类型的Size属性来判断,如下示例代码。
所以该处主要是判断当前系统的架构,当是64位的时候利用start-job开启一个后台任务,如下。
如果非64位环境,则直接执行$DoIt。现在分析一下$DoIt的代码内容,如下。
上述的代码因为涉及到异或解码过程,所以需要调试PowerShell,可通过微软自带的ISE进行调试, 然后将解密后的变量值通过管道输出至文本文件中,然后后续进行处理。步骤简要记录如下,从base64编码过的数据进行解码然后分配内存执行(属于无文件攻击活动)。
异或解密之后,如下。
将上述内容进行十六进制转换,invoke执行的内容转换为十六进制后,如下。
对其进行格式化脚本(十进制数转十六进制序列),如下。
最终获取的十六进制序列shellcode,如下。
通过静态分析,可以发现存在UA头与疑似请求的内容,不过没有IP地址。
经过代码相似度搜索,发现此payload为5个月前国外安全人员分析过的相似样本,很大概率是CobaltStrike模板产生的恶意文件,通过阅读相关内容发现相似恶意脚本曾用于攻击活动。
一般来说,上述的样本是属于最后执行的阶段,前期会通过多种混淆包装来进行安全防护软件规避。不过既然已经有解码后的样本,接下来对其进行调试。通过提取shellcode复制进ollydbg进行调试,如下。
加载wininet.dll,如下。
获取到API函数地址并调用,如下。
请求的IP地址为"123.206.112.24",如下。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2020-7-26 09:50
被jishuzhain编辑
,原因: