吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5208|回复: 59
收起左侧

[PC样本分析] 记一次银狐恶意样本WindowEvent.exe分析

  [复制链接]
Jokerboxs 发表于 2025-11-24 11:01
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!

背景

<font style="color:rgb(0, 0, 0);">该样本为</font>前一段时间在52破解论坛的病毒求助区找到的恶意样本,通过沙箱+手动调试分析学习该银狐样本的免杀技术和恶意代码。

原帖:https://www.52pojie.cn/thread-2063616-1-1.html

样本概述

木马样本通过反射加载Shellcode外联C2服务器。

1.png

2.png

分析

1、加解密部分

入口点

3.png

该样本无导入表和敏感字符串,经过分析样本调用sub_D802F5函数解析需要的WinAPI。该函数内部调用sub_D80488函数和sub_D80271函数。

静态分析sub_D80488函数a1参数用于存放a2数组异或0x6A解密的数据,a2参数存放需要解密数据的内存地址。

4.png 5.png

静态分析sub_D80271函数,参数a1为载入的Kernel32.dll的基地址,参数a2为需要解析的函数的函数名字符串。

6.png

解析结果如下:

7.png

样本调用sub_D804B8函数来处理模块路径。解密字符串"Kernel32.dll"和"GetModuleFileNameA",通过函数sub_D80271解析"GetModuleFileNameA"真实地址,调用GetMoudleFileNameA返回当前模块路径并对路径进行处理。

8.png

sub_D80660函数是反射加载并执行shellcode的部分,使用VirtualAlloc分配内存用于存放加密Shellcode,使用异或解密Shellcode,调用VirtualProtect修改内存的权限,内存执行解密的Shellcode。

9.png

2、创建计划任务持久化部分

sub_D80693函数用于创建计划任务持久化攻击,调用CreateProcess创建进程执行"schtasks /run /tn WinSafe",创建"WinSafe"计划任务,实际上计划任务没有被成功创建。

10.png

通过执行计划任务查询命令和手动创建"WinSafe"计划任务,找寻创建失败原因(Win10没有"WinSafe"模块)。

schtasks /query
schtasks /run /tn WinSafe #尝试自己进行创建

11.png

3、shellcode部分

dump对应shellcode,dump的shellcode可以复制前六个字节的16进制数据去查询,一般被研究过的样本家族的shellcode会有记录可以结合前人的分析报告进行快速分析。

dump的shellcode可以使用Winhex等工具查看程序的数据(也可以使用strings/010 editor等工具进行查看),这里使用Winhex查看样本发现存在明显的IP地址和域名(初步判断为外联的C2服务器IP地址和域名)。

156.234.119.138
syumineyt.top

12.png

Shellcode通过遍历模块加载的FullName是否为Kernel32.dll来确定Kernel32.dll基地址,代码通过将获取的模块名称Ascii码进行相加最后和Kernel32.dll的模块名的Ascii码和进行比较来判断当前模块。

13.png

14.png

样本对调用的WinAPI进行了混淆,调用sub_747函数根据APIHash来获取对应API函数的真实地址,以便躲避杀软的敏感函数查杀。以下是样本需要调用的WinAPI以及APIHash和WinAPI的对应关系。

15.png

1AB9B854h->GetProcessAddress
7F201F78h->LoadLibrary
5E893462h->VirtualAlloc
6488073h->VirtualFree
0DB579CBh->RtlZeroMemory
1518E9C0h->RtlMoveMemory
33522634h->WSAStartup
26402D9Fh->socket
41539501h->getaddrinfo
785E7DD7h->FreeAddrInfoW
313A84C8h->htons
92B50DAh->connect
0F8387DCh->send
0F6134B2h->recv
14AC161Bh->closesocket
4FF42CCFh->WSACleanup

调试过程中获取反转的字符串,使用python脚本进行反转发现疑似配置信息。

eax=00BE086B L"|0:cf|1:hb|0:pj|8 .7 .5202:zb|0.1:bb|认默:zf|1:lc|1:dd|1:3t|0808:3o|pot.tyegnimuys:3p|1:2t|08:2o|pot.tyenimuys:2p|1:1t|344:1o|831.911.432.651:1p|" 将反转的参数地址引入。
def reverse_string(string):
    print(string[::-1])

if __name__=="__main__":
    string="|0:cf|1:hb|0:pj|8 .7 .5202:zb|0.1:bb|认默:zf|1:lc|1:dd|1:3t|0808:3o|pot.tyegnimuys:3p|1:2t|08:2o|pot.tyenimuys:2p|1:1t|344:1o|831.911.432.651:1p|"
    reverse_string(string)
#|p1:156.234.119.138|o1:443|t1:1|p2:syumineyt.top|o2:80|t2:1|p3:syumingeyt.top|o3:8080|t3:1|dd:1|cl:1|fz:默认|bb:1.0|bz:2025. 7. 8|jp:0|bh:1|fc:0|

shellcode在解析WinAPI后,调用WSAStartup函数初始化,socket创建套接字等网络通信相关函数对网络通信进行初始化操作,调用send函数和recv函数与"156.234.119.138"和"symineyt.top"进行通信,攻击者可以通过该木马下发恶意样本到受害者的主机,对受害者的信息进行窃取。

"156.234.119.138"通信部分

16.png

17.png

"symineyt.top"通信部分

18.png

19.png

4、Guard.dll部分

DLL存在MonitorAndRestart导出函数用于监控WindowsEvent.exe的运行情况在进程没有启动时尝试通过计划任务进行启动。

调用CreateMutexW创建互斥体"Global\ProcessMonitorDLL_Mutex"反调试。

20.png

sub_67492040函数拼接计划任务"schtasks /run /tn \WindowsEvent_Task\",调用CreateProcessW执行计划任务来启动WindowsEvent.exe。启动失败则保存日志log文件,并且对设备进行重启。

21.png
日志内容

22.png

重启函数(OpenProcessToken LookupPrivilegeValueW AdjustTokenPrivileges提升进程权限)

23.png

IOC

156.234.119.138
syumineyt.top
SHA1:242ac36b101de2231afbba8226b68ccbbeca22a6
SHA1:c561fdfbdf8714f7da36de34dba4d440de17ab6a

免费评分

参与人数 24威望 +2 吾爱币 +118 热心值 +23 收起 理由
硬骨头长了毛 + 1 谢谢@Thanks!
Nico6719 + 1 + 1 用心讨论,共获提升!
qiangq233 + 1 + 1 用心讨论,共获提升!
KEKAI2025 + 1 + 1 用心讨论,共获提升!
mashangfei + 1 我很赞同!
sn0w1ng + 1 + 1 用心讨论,共获提升!
52pjadmi + 1 我很赞同!
ftasy + 1 + 1 我很赞同!
makelaity + 1 + 1 我很赞同!
xxdaydayup + 1 + 1 我很赞同!
xsjnm + 1 + 1 我很赞同!
fengbolee + 1 + 1 我很赞同!
lucifer_0 + 1 + 1 我很赞同!
banshao + 1 + 1 我很赞同!
allspark + 1 + 1 用心讨论,共获提升!
xiaoxiaoY520 + 1 + 1 我很赞同!
ymltsh + 1 我很赞同!
theStyx + 1 + 1 用心讨论,共获提升!
notifier + 1 + 1 我很赞同!
Shenjingb + 1 + 1 我很赞同!
lin5789 + 1 我很赞同!
Hmily + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
binghe01 + 1 + 1 用心讨论,共获提升!
helh0275 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zhaoweizw2000 发表于 2025-11-24 11:38
很好很不错
 楼主| Jokerboxs 发表于 2025-12-10 15:14
stacia 发表于 2025-12-9 21:11
域名解析以后就是同一个IP地址(位于HK湾仔某托管机房),访问IP使用443端口,访问域名使用8080端口,这样 ...

第一个问题我不是很懂,后续其他C2我尝试尝试;哈希表可以跟踪样本的ApiHash解析函数,shellcode运行后在栈中会有一个对照表,调用方式是call ebp+偏移位置(为了格式整齐,帖子改过一次把有些细节删掉了)。
semiuel 发表于 2025-11-24 13:21
综上所述,完全看不懂,哈哈,楼主好厉害!
94e8v061 发表于 2025-11-24 14:25
值得学习,感谢分享。
xjjlcp 发表于 2025-11-24 22:45
感谢这个不错
oneday11111 发表于 2025-11-24 23:34
谢谢大佬分享
aaaa25852 发表于 2025-11-25 00:19
谢谢大佬分享
spacesdfk 发表于 2025-11-25 08:50
感谢楼主分享   
用VirtualProtect修改内存的权限,内存执行解密的Shellcode
Eternals9 发表于 2025-11-25 10:10
很不错,感谢分享
yja0625 发表于 2025-11-25 23:02
综上所述,完全看不懂,哈哈,楼主好厉害
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-2-19 09:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表