熊猫烧香病毒分析(中)

sub_40819C:预备阶段
实现对原病毒所在路径下的desktop.ini文件的删除和将自己复制到drivers路径下并启动
v55 = __readfsdword(0)
sub_40819C函数开头的 v55 = __readfsdword(0)可以反编译成
1 | ExceptionList = NtCurrentTeb()->NtTib.ExceptionList; |
和
1 | __writefsdword(0, &v55); |
一起处理异常。
查找Desktop_.ini并删除:
检测是否存在该文件,若存在,先修改其属性为隐藏,再进行删除。

这段代码并不是我们之前观察到的创建Desktop_.ini文件实现代码。
自我复制到C:windowsSystem32drivers路径下:
先检测是否已经存在该进程和文件,有就先kill该进程和修改属性,再获取System32路径,拼接路径,自我复制到驱动目录下再运行,最后退出当前进程。

sub_407B68():自毁程序
1 | :try1 |
当程序自然退出后,批处理文件将会开始执行。
sub_40D18C:爆发阶段
实现对各目录下Desktop_.ini文件的创建,对其余文件的感染,和setup.exe文件的创建,以及实现内网横向渗透
sub_0040A5B0:
创建线程执行:sub_40A48C:

来执行遍历路径,创建Desktop_.ini文件和感染可执行文件的逻辑(读取系统时间并写入):

感染可执行文件相关:

C_InfectFile:

sub_40C374:
设置一个6s的计时器运行TimerFunc函数,TimerFunc核心逻辑就是在系统盘创建setup.exe和相应的自启动文件autorun.inf。
sub_40BACC:
创建线程,执行网络连接,实现横向内网渗透,通过SMB协议扫描:
1 | System::BeginThread(sub_40BA8C, 0, 0, &v6, 0, 0, v3); 多线程运行,横向内网渗透, |
sub_40D088:对抗安全查杀
恶意下载与执行相关,对抗安全软件和监控
设置了6个计时器:
| 定时器地址 | 时间间隔 | 回调函数 | 功能描述 |
|---|---|---|---|
0x3E8u |
1秒 | sub_40CEE4 |
创建自启动项 (spo0lsv),实现持久化 |
0x124F80u |
20分钟 | sub_40D040 |
核心恶意下载模块(可能下载远控木马或勒索组件) |
0x2710u |
10秒 | sub_40D048 |
下载后抹除痕迹(删除日志、加密通信等) |
0x1770u |
6秒 | sub_407430 |
系统性终止安全软件服务,删除注册表启动项(针对性对抗杀软) |
0x2710u |
10秒 | sub_40CC4C |
隐蔽数据下载(可能用于泄露敏感信息或接收指令) |
0x1B7740u |
30分钟 | sub_40C728 |
二次恶意下载(更新组件或下载额外攻击载荷) |
特别是在sub_40CEE4函数中的sub_406E2C函数:
执行sub_4061B8,实现通过关闭安全软件窗口、终止关键进程、模拟用户操作,破坏系统防御能力,确保恶意程序持续运行:

最后
把分析的思维图放到最后:
