-
-
[翻译]新“水坑”攻击样本分析
-
发表于:
2018-5-18 15:53
5423
-
自从上次写文章分析“水坑”攻击已经有2个月了,我当时还天真地认为他们将沉寂一段时间,现在看来的确是过于乐观了。自这周起,我就不断捕获到新的样本。尽管与早前的样本存在许多共同点,但正如此前预期,新的样本在混淆方面进行了改进。我们关注的重点依然是其分层混淆和 PowerShell 代码,不过,我会对比此前的旧样本,标记出新样本的改进之处。
下面的是该攻击的"诱饵"文档截图,文件的哈希将在文末给出:
图 1:巴基斯坦选举委员会
图 2:Invest in Turkey网
图 3:IQMOFA
图 4:巴基斯坦国民议会
图 5:土耳其安全指南
从上面的图片可以看到,此次攻击的目标依然是中东地区(土耳其和伊拉克) 和巴基斯坦。一如我之前的博客中提到的,这些“引诱”文档将在一定程度上告诉我们攻击的目标是哪些组织机构和企业。从 VT 提交时间上来看,此次攻击持续时间为2月中旬到最近的捕获样本时间--2018年5月6日。这些样本大多以"mofa.gov.iq.doc" - 94625dd8151814dd6186735a6a6a87b2a4c71c04b8402caf314fb6f98434eaad命名,MOFA,即是外交部(Ministry of Foreign Affairs)的缩写。
下面,将进入对样本的详细分析阶段。POWERSTATS 后门中新的、更改过的混淆代码段,或是额外添加的功能,我都会高亮地标记出来。该样本文档中的宏代码经过 Base64 的多重编码,具体如下图所示:
图 8:第二段 Base64 编码
图 9:第三段 Base64 编码
图 12:解码 JavaScript
解码出来的脚本实际上是 Power Shell 脚本——为了实现进一步解码的路径:"C:\\ProgramData\\WindowsDefenderService.ini"。这个路径下的文件实际上就是第一段 Base64 编码块的内容。
解码出来的内容其实就是 POWERSTATS 后门的变种。让我们来详细研究研究变种中的混淆层。
值得注意的是,代码中的 iex 其实是 Invoke-expression (的变体。为了看到输出内容,我么将 iex 替换为 Write-Output ,将看到下面的输出:
图 14:第一层解码
尽管看起来很混乱,不过却有点眼熟。The character substitute 。更进一步,我们观察到上图中"&((vaRIABle 'MDR').NAME[3,11,2]-jOiN'')" ,这实际是经过混淆的 Invoke - Expression 。这意味着我们仍然可以用 Write-Output 替换它,得到的结果如下:
图 15:二层解码
又一次,你会注意到 "( $enV:ComSpEc[4,24,25]-jOiN'')" 用作 iex 。同样可以将之替换为 Write-Output。这样的循环混淆直到解码后的脚本类似于下图所示的 --包含代理 URL 和 IP 的脚本:
图 16:最终解码后的 PowerShell
这只是众多多层编码的 PowerShell 脚本的一小块。剩余的第二、第三部分是后门的实际功能部分。
我在先前的博客中分析的函数,大多数依然以变种的形式存在。当然,还有一些新添加的和改进过的代码:
图片底部高亮标记的函数 "GDKZVLJXGAPYNUGCPJNPGZQPOLPPBG" 是下面代码块的开头:
这段代码实际上是 Barrett Adams(@peewpw)上个月创建的 Invoke - BSOD 项目,可以在他的 GitHub 主页上查看。特别注意的是,作者申明,该段代码无需管理员权限即可 BSOD 机器。
结合此前的分析文章,该攻击组织依然在活动中,并将目标对准更多其他国家。总的来说,“水坑”攻击特点为:
[原文]:(https://sec0wn.blogspot.ae/2018/05/clearing-muddywater-analysis-of-new.html?m=1)
编译:看雪翻译小组 StrokMitream
校对:看雪翻译小组
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-2-2 14:35
被kanxue编辑
,原因: