这篇文章将深入探讨 Latrodectus 加载程序,该加载程序利用垃圾评论和 wmi 命令来混淆功能并下载远程 .msi 文件。
该样本分为三个“阶段”,可以通过正则表达式和 CyberChef 的组合进行解码。
获取初始样本
初始样本可以在Malware Bazaar上找到,最初由pr0xylife上传
SHA256:
71fb25cc4c05ce9dd94614ed781d85a50dccf69042521abc6782d48df85e6de9
初步样本审查
初始样本是一个相对较大的 845KB,对于基于脚本的文件来说已经很大了。
这种大小的基于脚本的样本通常表明将有一些严重的混淆或垃圾需要处理。
由于该文件是 JavaScript 且基于文本,下一步是在文本编辑器中打开它以进行进一步审查。
文本编辑器显示该脚本包含大量垃圾评论,右侧的小地图进一步显示了这一点。
垃圾评论的风格表明它们是从单词列表生成的,并且可能是由某种形式的混淆器添加的。
通过利用 Visual-Studio 代码提供的突出显示功能,我们可以滚动文件以确定是否存在任何真正的功能代码。
每隔几百行,就有一小段功能性 JavaScript 包含实际的恶意软件功能。
清理代码并获取第 2 阶段
在此阶段,我们已经识别出混淆(垃圾评论)并确定文件中存在真实代码。
为了解决这个问题,我们可以使用正则表达式来删除垃圾注释,方法是指定我们要删除以双正斜杠开头的任何行。
该正则表达式将指定我们需要双正斜杠,后跟任何内容,然后是换行符。我们还添加了一个插入符号 ^ 来指定我们只希望它出现在行的开头。
应用正则表达式后,我们只剩下 37 行代码,这比原来的 1890 行代码要短得多。
不过,37 行代码还是相当短的。这给人的印象是这个脚本有一些更有趣和棘手的东西。
如果我们更仔细地观察代码,我们可以看到它正在打开并读取自己的内容,并查找以 4 个正斜杠开头的任何行。
这表明“垃圾”评论实际上并不都是垃圾,其中一些包含构成恶意脚本下一段的代码。
如果我们返回到原始脚本,我们可以看到包含四个正斜杠的行上有代码。
此阶段的其余部分负责执行原始脚本中的“注释”。
获得第 3 阶段
此时我们知道原始脚本的注释中存储了额外的恶意软件。
幸运的是,我们知道恶意部分是以四个正斜杠开头的部分。因此我们可以使用正则表达式来隔离这些代码行。
为了获得下一阶段,我们可以将原始脚本(带有垃圾注释)加载到 CyberChef 中,并使用正则表达式提取以四个正斜杠开头的行。
我们还可以利用捕获组和“列出捕获组”来仅显示恶意代码并避免显示正斜杠。
最终剧本审查
CyberChef 操作的结果可以移至文本编辑器中进行最终审查。
在新脚本的第 17 行,我们可以看到恶意软件尝试映射到位于以下位置的网络驱动器:sokingscrosshotel[.]com
一旦网络驱动器映射到驱动器号,恶意软件就会使用net use命令连接该驱动器。
连接驱动器后,恶意软件会尝试upd.msi使用msiexec.exe.
执行该文件后,将使用RemoveNetworkDrive从WScript.Network对象中删除网络驱动器。
检测机会
该恶意软件利用 wmi 来执行 net.exe 和 msiexec.exe 命令。
这会生成类似于下面的进程树。通过适当的进程创建日志,分析人员可以搜索 wmiprvse.exe 生成 net.exe,并引用可疑或未知的驱动器名称。
下面的命令将产生类似的模式。可以通过查找 wmiprvse.exe 生成 msiexec.exe 并引用不常见的共享名来捕获此问题。
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里
原文始发于微信公众号(Ots安全):Latrodectus 加载器分析 – 反混淆和检测