首页| 论坛| 搜索| 消息
主题:持续演进的银狐——不断增加脆弱驱动通过BYOVD结束防病毒软件
回帖:m/202602/11/175112bwz7cag57c54cazz.jpg

随后,样本尝试向该驱动的设备发送IOCTL 0x222180控制码,如果失败再继续发送IOCTL 0x229390控制码,如下图所示:https://attach.52pojie.cn/forum/202602/11/175129aofftf2e29w6fefc.png

我们接下来查看在Cndom6中,IOCTL 0x222180对应的功能,对Cndom6进行分析。

首先,进入DriverEntry,驱动程序调用IoCreateDevice创建一个名为"DeviceCndom6"的设备对象,接着调用IoCreateSymbolicLink建立符号链接"??Cndom6",这样用户态应用程序就可以通过以上设备对象或链接名称访问该驱动设备。然后是关键IRP: 复制代码 隐藏代码DriverObject->MajorFunction[2] = (PDRIVER_DISPATCH)&sub_140003A9C;DriverObject->MajorFunction[0] = (PDRIVER_DISPATCH)&sub_140003A9C;DriverObject->MajorFunction[14] = (PDRIVER_DISPATCH)&sub_14000338C;

驱动程序设置了关键IRP(I/O请求包)的派遣函数:IRP_MJ_CREATE(0):处理打开设备的请求。IRP_MJ_CLOSE(2):处理关闭设备的请求。IRP_MJ_DEVICE_CONTROL(14):处理设备控制操作(IOCTL),这是用户态与内核态驱动通信的主要方式。如下图所示:https://attach.52pojie.cn/forum/202602/11/175200tgd2uii2g9k2ik7i.pnghttps://attach.52pojie.cn/forum/202602/11/175209e556w2wzftovb5b5.jpg

因此,我们应进入sub_14000338C查看。

在sub_14000338C中,我们看到case 0x222180的主要操作是将byte_140072AED标志位设置为1,如下图所示:https://attach.52pojie.cn/forum/202602/11/175224g88vgovzzgzlc4ol.png我们查看该标志位的交叉引用,发现有函数会在判断该标志位是否有效后,动态替换函数指针实现系统内核函数Hook,可能用于处理KeGetCurrentThread,用于执行线程隐藏或保护线程执行信息,如下图所示:https://attach.52pojie.cn/forum/202602/11/175306bb1b1ffbbmyb588k.png

重新回头看该驱动具备的其他功能,从DriverEntry=>if ( sub_140001A10() )=>if ( ... && sub_14000202C() )中,发现该驱动通过调用sub_140004A3C函数获取NtTraceControl、KeQueryPerformanceCounter、NtQuerySystemInformation、NtOpenProcess、NtOpenThread等内核API地址,如下图所示:https://attach.52pojie.cn/forum/202602/11/175325kzrzicgj0d7mcvse.png以NtQuerySystemInformation为例,查找qword_140007338的交叉引用,找到针对NtQuerySystemInformation API的Hook函数sub_140003FC4,用于执行进程隐藏,功能开关标志位为dword_140007398,如下图所示:https://attach.52pojie.cn/forum/202602/11/175456zn2fiai4iiisie9a.jpg通过交叉引用查找到dword_140007398标志位由IOCTL 0x22218C控制(本次样本未发送),由sub_140004D1C进行赋值,如下图所示:https://attach.52pojie.cn/forum/202602/11/175512xu7w5qw8ybey2nng.jpghttps://attach.52pojie.cn/forum/202602/11/175525z1xgbul91uz501bp.jpg

同理,以NtOpenProcess为例,查找qword_140007340的交叉引用,找到针对NtOpenProcess API的Hook函数sub_140003F40,用于执行进程句柄保护,功能开关标志位为dword_140041D78,如下图所示:https://attach.52pojie.cn/forum/202602/11/175552sbqmsveeqybbyvgn.jpg通过交叉引用查找到dword_140041D78标志位由IOCTL 0x222190控制(本次样本未发送),由sub_140004C68进行赋值,如下图所示:https://attach.52pojie.cn/forum/202602/11/175612fcov8jjzjo2spp4k.jpghttps://attach.52pojie.cn/forum/202602/11/175633vy4117c4fk57h2l7.jpg

触发Hook NtQuerySystemInformation、NtOpenProcess、 NtDuplicateObject API的调用器(启动器)函数sub_140001940,如下图所示:https://attach.52pojie.cn/forum/202602/11/181212yni3vr9zgrwfnizt.jpg

** 同时,我们发现,样本完整运行后,StartMenuExperienceHostker.exe会被添加至计划任务启动项中,计划任务名称: "WindowsPowerShell.WbemScripting.WindowsData",如下图所示:https://attach.52pojie.cn/forum/202602/11/181227gx2ifkaiubdpjdp9.png且样本会更改其对应计划任务xml文件C:WindowsSystem32TasksWindowsPowerShell.WbemScripting.WindowsData对象的DACL,导致系统在尝试删除该条计划任务时,因权限不足无法删除此条计划任务,如下图所示:https://attach.52pojie.cn/forum/202602/11/181240h1w6pspq37a3w3lw.png具体原因为,在删除计划任务时,实际执行者svchost.exe在删除该计划任务xml文件时抛出拒绝访问错误(ACCESS_DENIED),如下图所示:https://attach.52pojie.cn/forum/202602/11/181250nttt540ws50w1fbx.png恢复其对应计划任务xml文件的DACL后即可正常删除该计划任务。



E.) WUDFCompanionHoste.exe=>log.dll



log.dll SHA-256: a14b681ec50328d3ac04f76ac18ef96fb7176425ff96325e2099ea57df3a1998这是一组dll劫持/dll侧载/白加黑,WUDFCompanionHoste.exe启动后会尝试加载log.dll中的代码,如下图所示:https://attach.52pojie.cn/forum/202602/11/181303ebbx1zhhhjjh5w55.pngWUDFCompanionHoste.exe实际上是加载log.dll中的GenericLogImpl导出函数:https://attach.52pojie.cn/forum/202602/11/181318zutlzogfiiiufxio.jpg

其会先读取Server.log文件,使用密钥"??Bid@locale@std"通过RC4解密,解密后执行WinOs远控模块,相关代码如下图所示:https://attach.52pojie.cn/forum/202602/11/181330k1xukxxs1fkkokt0.jpg

WinOs远控模块执行后,连接远程服务器实现远控逻辑,后续长期驻留和进行信息窃取。”WinOS“远控上线配置如下:|p1:uuuucome.com|o1:5050|t1:1|p2:uuuucome.com|o2:5050|t2:1|p3:uuuucome.com|o3:5050|t3:1|dd:1|cl:1|fz:网站|bb:2025.11.20|bz:2025.11.20|jp:1|bh:0|ll:0|dl:0|sh:0|kl:0|bd:0|如下图所示:https://attach.52pojie.cn/forum/202602/11/181343by8ygeezspvty8zf.png
下一页上一页  (9/17)
下一楼›:来看看看

查看全部回帖(7)
«返回主帖