安全路透社
当前位置:安全路透社 > 网络转载 > 正文

解包分析攻击越南机场和其它组织机构的间谍程序

photodune-4549927-internet-abstract-m-900x506.jpg

根据我们接触到了前期入侵越南组织机构的间谍程序捕获样本,入侵活动涉及7月底对越南两大机场的攻击事件,攻击中使用的恶意软件用于窃取越南航空公司40万会员信息。这些入侵活动中使用的攻击载荷是伪装成杀毒软件McAfee的Korplug RAT变种

本文描述了从隐藏软件中提取最终攻击载荷的过程。

1 分析样本

884d46c01c762ad6ddd2759fd921bf71   – McAfee.exe

c52464e9df8b3d08fc612a0f11fe53b2     – McUtil.dll(shellcode loader)

28f151ae7f673c0cf369150e0d44e415    – McUtil.dll.mc (shellcode)

321a2f0abe47977d5c8663bd7a7c7d28  –  unpacked payload (DLL)

执行流程:

McAfee.exe -> McUtil.dll -> McUtil.dll.mc -> payload (DLL)

2 间谍软件包

该程序是一个非常有意思的模块化软件包。它整体伪装成McAfee杀毒软件:

toolkit.png

其签名信息显示为McAfee原始的有效签名证书:

certificate.png

这个签名证书当然不是假的,因为McAfee.exe确实是一个合法程序,但是,却被捆绑了恶意的DLL动态链接库文件,攻击者正是利用了这点进行程序劫持。

攻击中使用的McAfee程序为老版本程序(编译时间为2008年),经测试,当前版本的McAfee程序不存在此类滥用隐患。

3 行为分析

成功植入后,程序潜伏在受害者系统中隐蔽执行。经分析发现,恶意代码注入了系统正常进程svchost.exe,程序主体启动时将会运行svchost.exe进程。从svchost.exe当前进程的详细信息中可以发现,其进程镜像目录包含恶意程序目录。

injected.png

恶意程序生成的bot类线程从低到高枚举本地地址空间,对局域网内其它主机进行侦察探测:

scan_lan2.png

scan_lan1.png

同时还尝试与远程C&C地址(air.dscvn.org)进行通信连接,在我们的分析测试中,该C&C地址已经失效:

no_such_name.png

4 解包分析

恶意程序在实现最终功能之前包含多层载体,exe文件以及DLL文件都是正常的,关键的恶意功能在于包含有加密shellcode的外部捆绑文件,而在shellcode中隐藏的是执行核心间谍进程的DLL文件。

shellcode加载

为了达到反调试分析目的,攻击者混淆加载有效载荷的方式非常具有技巧性。McAfee.exe一旦执行,恶意程序就会在系统启动目录中加载名为McUtil.dll的动态库文件,由于系统不对恶意程序整体进行完整性检查,所以执行程序可以加载任意DLL文件:

load_lib.png

McUtil.dll被用来部署下一阶段文件:McUtil.dll.mc。为了避免分析跟踪,McUtil.dll不会直接释放文件,而是使用patch方式调用McAfee.exe读取加载。下图为向内存写入钩子加载程序的相关代码片段:

overwrite_calling_module.png

以下为patch之后的程序调用代码,前两行为直接跳转到McUtil.dll地址的命令:

mc_afee_patched.png

McUtil.dll主体中包含Patch函数,并且在处于动态调用之后,所以,钩子程序加载调用返回之后便会立即执行。

patched_line.png

钩子程序调用的外部文件是可见的:

reading_file.png

当执行写入内存之后,便发生了JNZ跳转:

call_shellcode.png

提取payload

恶意程序的shellcode被进行了复杂的混淆:

obfuscation.png

重点不在于此,而在于该恶意程序的解包器和加载器,加载器把以下内容压缩到一段缓冲区内:

decompressed.png

之后逐块重新映射这些内容,并为其分配附加内存,另外,在向虚拟镜像重新映射初始PE文件的过程中,也可以看到类似情况。实际上,反编译后的解包内容为一个头部经过变形的PE可执行程序,其中PE程序原始值”MZ”被分隔符XV代替:

pe_mz.png

通过重构文件头之后还原了exe文件:

pe_mz_reconstructed.png

文件解析为一个正常的PE文件321a2f0abe47977d5c8663bd7a7c7d28,虽然程序名节都没有命名,但所有内容有效:

sections.png

文件特征表现了DLL形式的payload,由于文件没有任何导出列表,所以不知道它的原始名称。观察以下加载的导入部分,我们可以确定其为最终攻击载荷,它加载和调用了很多网络通信函数。例如:

wsa_sock.png

在对该程序进行行为分析期间,我们还找到了其执行局域网主机IP扫描的代码。

攻击者为了让攻击载荷隐秘执行,对所有调用部分进行了执行顺序检查,以下为对主要调用部分进行检查的硬编码名称:

refer_to_loader1.png

5 总结

该恶意程序使用McAfee程序劫持DLL文件并运行恶意代码,为了逃避检测,还把各部分模块进行了混淆,单一的文件模块不具备恶意行为,也不能被杀毒软件查杀,只有所有部分综合执行之后才能发挥恶意行为功能。

这种类型的恶意程序,其EXE或DLL文件只用来加载shellcode,并不包含恶意代码,虽然用户对PE文件的运行比较谨慎,但是这一次,可能就会比较倒霉。

附录:

越南CERT机构对越南航空公司被黑客攻击的通报内容

2013年类似的攻击事件

Korplug RAT攻击阿富汗和塔吉克斯坦

BlackHat上关于Korplug RAT的分析

关于NanHaiShu APT

*本文译者:clouds,编译来源:MalwareBytes

未经允许不得转载:安全路透社 » 解包分析攻击越南机场和其它组织机构的间谍程序

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册