cam mode(cam使用)

一、前言

我们介绍了如何解密经过.NET ConfuserEx保护的恶意软件。我们通过Advanced Malware Protection (AMP,高级恶意软件防护)感知数据发现了处于活跃期的这款恶意软件。恶意软件借助恶意Word文档来传播,最终会在内存中执行来自Recam恶意软件家族的一个嵌入式载荷(Recam是一款信息窃取恶意软件)。虽然这款恶意软件已活跃数年之久,但出于各种原因,有关该软件内部工作机理的分析文章少之又少。因为恶意软件作者花了许多精力来延缓安全人员对样本的分析研究,使用了包括多层数据加密、字符串混淆、分段置零以及数据缓冲区构造器等技术。这款恶意软件使用了自定义的C2二进制协议,协议本身及相关数据(传输之前)都经过严格加密处理。

二、技术细节

在本篇文章的上部分,将着重介绍释放器部分。

2.1 释放器

恶意文档使用了常见的恶意软件技术(比如嵌入VB代码)来释放.NET可执行程序。在本文中我们不会介绍这些技术,主要的是.NET恶意软件释放器(dropper)的去混淆过程。恶意软件作者使用自定义的ConfuserEx对释放器做了大量混淆处理(ConfuerEx是一款免费的.NET framework混淆工具)。如果我们直接使用类似dnSpy之类的.NET反编译器来读取这个文件,结果并不理想(图1):、图1、网上有一些免费的反混淆工具可以处理经ConfuserEx保护的程序,然而,这些工具难以解析这款恶意软件。使用这些自动化工具处理后,只能解开其中一部分数据并会中断执行流程,程序中重要的部分仍然保持不变。这意味着我们别无选择,只能手动去混淆,没有捷径可走。网上有些文档介绍了如何手动脱掉ConfuserEx的壳,但我们的运气依然不佳,这些文档不适用于这个版本。、首先,我们使用dnSpy来加载这个程序。我们跳转到<Module>. cctor,在最后一个方法上设置断点(如图2所示)。然后,在调试器中运行这个样本,可以看到样本会解开第一个DLL(即“ykMTM…”,如下图2所示)。、图2、触发断点后,单步跟进这个方法,如图3所示,我们可以看到程序会解开下一阶段载荷(coral)。、图3、分析这阶段载荷后,我们可以在113行的qMayiwZxj类上设置另一个断点,如图4所示:、图4、这里会释放下一阶段载荷,我们可以看到新解开的stub.exe的汇编代码(图5):、图5、如果你之前分析过经过ConfuserEx处理的程序,你会觉得这个画面非常眼熟。事实上,如果你仔细观察,你会发现10082行有一行非常熟悉的代码:gchandle.free()。我们可以在这一行上设置断点。在之前版本中,这行语句是解包过程的最后一行语句。、图6、如我们所料,这会解开另一个模块:koi,这也是ConfuerEx中已知的一个模块。、图7、我们离真相已经非常接近,但koi中的类仍然是空的,没有填充任何代码:、图8、我们可以在koi中cctor调用的最后一个方法上设置断点,继续运行样本。、图9、非常好,又解开了一个DLL,不幸的是这个DLL并不重要。我们的Main类以及stub(存根类)中的大多数成员仍然为空。单步跟进后,我们再次回到<module>。分析这些方法后,我们可以在第92行设置断点,观察下一阶段的解包过程(图10)。、图10、如果我们观察这些类的stub,就可以看到各种代码。我们可以在stub.Run()上设置断点,观察这个恶意软件加载器除了解包过程以外的真正功能。、图11、可以看到,恶意软件试图规避某些反病毒软件,从资源区中读取几个配置参数。未解包之前的配置信息如图12所示,恶意软件将配置信息加密后隐藏在资源区中。、图12、恶意软件会检查当前运行路径是否与配置信息中的Startup目录相匹配(如%AppData%mozilla firefoxfirefox),如果不匹配,则会将自己复制到Startup目录中,然后通过cmd.exe来启动。这意味着我们需要停止调试,从%AppData%mozilla firefoxfirefox目录中将firefox.exe载入dnSpy,然后再次跟进解包过程,直到到达目前位置。、图13、现在我们已进入正确的代码分支(即“从Startup目录执行”条件分支)。从这里开始整个流程变得更加有趣。首先恶意软件会先完成本地持久化任务。如下所示,恶意软件会向%AppFolder%目录中写入一个Update.txt文件,文件

C:UsersdexAppDataRoamingmozilla firefoxfirefox.exe exit

图14、图15、随后,恶意软件会在cmd.exe中执行reg add命令,将该文件添加到自启动表项中,确保主机启动时会执行firefox.exe文件。、图16a、图16b、恶意软件会根据配置信息执行其他一些命令,然后从MainFile区加载并解压经过LZMA压缩的一个恶意软件载荷文件(即Recam)。经过实时修复后,恶意软件会加载RunPEDLL.dll,尝试将载荷文件注入用户浏览器进程中。如果注入失败(比如浏览器没有运行),则会将文件注入到自身进程中(firefox.exe)。不论哪种情况,恶意软件都会使用RunPE.Run()方法来完成这个过程。、图17、到这里为止,恶意软件释放器的任务已完成,由Recam程序接管攻击流程。

三、恶意载荷

请持续,文章下部分将在近期发布。

关键词: 奇门遁甲

鲜花

握手

雷人

路过

鸡蛋

最新评论

联系方式 免责声明蜀ICP备2021030633号

本站内容皆来源于民俗文化和民间传说,完全免费分享给有缘人,仅供休闲娱乐,请勿迷信,要相信,我命由我不由天。

返回顶部