@MSBuild安全分析( 二 )


文章图片

文章图片

payload 开始部分
@MSBuild安全分析
文章图片

文章图片

payload loader
MIMIKATZ
我们发现唯一的长于Cobalt Strike shellcode / beacon的payload是一个包含两个Mimikatz payload的样本 。我们他具有更复杂的逻辑 , 用于将可执行文件加载到内存中 , 并最终通过调用CreateThread来启动它 。
@MSBuild安全分析
文章图片

文章图片

MSBuild Mimikatz loader
加载程序首先检查操作系统是32位还是64位 , 然后加载并运行存储在使用base64编码的变量中的相应Mimikatz可执行文件 。
实例探究
在过去6个月的时间里 , 我们通过在Cisco Threat Grid平台中搜索提交的内容 , 发现了三个研究样本 。
@MSBuild安全分析
文章图片

文章图片

与MSBuild相关的危害指标的简要思科威胁网格说明 。
情况1:WORD文档到DROPBOX上的MSBUILDpayload
我们使用MSBuild部署payload的第一个案例是一个Word文档 , 该钓鱼文档提示用户“启用内容”以执行文档中包含的VBA宏代码 。
启用后 , VBA代码将在用户的Temp文件夹中创建两个文件 。第一个为expenses.xlsx , 它实际上是一个MSBuild配置XML文件 , 其中包含用于编译和启动payload的恶意代码 。
根据VirusTotal的说法 , 该样本托管在一个可公开访问的Dropbox文件夹中 , 文件名为“候选简历-Morgan Stanley 202019.doc” , 这表明该活动是针对性的 。
由VBA代码在用户的临时文件夹中创建的第二个文件为resume.doc 。这是一个诱饵Word文档 , 显示了市场经理的简历 。
@MSBuild安全分析
文章图片

文章图片

Winword启动MSBuild , 后者启动C#编译器csc.exe和cvtres.exe 。
@MSBuild安全分析
文章图片

文章图片

我们还可以看到MSBuild进程正在启动Internet Explorer(iexplore.exe) 。iexplore.exe以挂起模式启动 , 因此可以将payload(即 Cobalt strike beacon)复制到其进程空间中 , 并通过将线程排队作为异步过程调用来启动 , 这是进程注入的常见技术之一 。
在这种情况下 , 可以发现winword.exe启动MSBuild.exe进程 , 然后MSBuild.exe启动iexplore.exe这种异常的操作 。
@MSBuild安全分析
文章图片

文章图片

注入代码
情况2:将EXCEL文件转换为SILENT TRINITY
第二个案例和上一个差不多 。在这里 , 我们有一个Excel文件 , 该文件看起来包含机密的工资信息 , 但提示用户启用编辑功能以查看其内容 。
@MSBuild安全分析
文章图片

文章图片

打开时的Excel示例
Excel文件包含一个VBA宏代码 , 乍一看看上去并不十分可疑 , 但实际上调用了另一个函数 。最终以包含下一个加载器阶段URL的文档Subject属性对W.Shell的可疑调用结束 。


推荐阅读