首页
社区
课程
招聘
[原创]迅雷在win10x64上的services进程注入
发表于: 2019-3-26 11:07 10426

[原创]迅雷在win10x64上的services进程注入

2019-3-26 11:07
10426

这几天分析了一下迅雷在win10x64的上开机启动阶段的services进程注入方法。



注入流程在驱动模块XLGuard.sys中,它会在System阶段启动,一开始,注入流程很正常:
(1)创建模块加载回调
(2)在进程名为services.exe并且模块名为ntdll.dll时构建一段shellcode
(3)在ntdll!LdrLoadDll处写入一个内联hook

(4)内联hook会跳转到shellcode处执行,但这段shellcode的执行流程很简单,就只是调用了LdrLoadDll加载一下迅雷注入services进程的dll,其他什么都没有做。
注入流程在驱动模块XLGuard.sys中,它会在System阶段启动,一开始,注入流程很正常:
(1)创建模块加载回调
(2)在进程名为services.exe并且模块名为ntdll.dll时构建一段shellcode
(3)在ntdll!LdrLoadDll处写入一个内联hook

(4)内联hook会跳转到shellcode处执行,但这段shellcode的执行流程很简单,就只是调用了LdrLoadDll加载一下迅雷注入services进程的dll,其他什么都没有做。


那么问题就来了,win10x64上会对services进程加载的dll进行签名校验,直接调用LdrLoadDll一定会失败,那它的dll是如何躲过签名校验的?后来我发现这么一段代码:
它利用了EPROCESS中SectionSignatureLevel可以控制是否对dll进行签名校验,将它修改为0就可以躲过签名校验。



[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 1
支持
分享
最新回复 (19)
雪    币: 1736
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
PG保护这?想多了。。可以去看下BB的去注入保护的处理。
2019-3-26 11:24
0
雪    币: 635
活跃值: (1016)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
这样做被微软发现了会吊销你的签名吧
2019-3-26 13:01
0
雪    币: 4094
活跃值: (4205)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
Justgoon 这样做被微软发现了会吊销你的签名吧
可他就是这么做的呀......
2019-3-26 13:07
0
雪    币: 12
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
错了,确实pg会扫
最后于 2019-3-26 20:43 被MaMy编辑 ,原因:
2019-3-26 13:42
0
雪    币: 163
活跃值: (103)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
6
SectionSignatureLevel会不会PG不清楚,但下面那个Protection 100%会PG,踩过坑了
2019-3-26 17:48
0
雪    币: 4094
活跃值: (4205)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
xiaofuy SectionSignatureLevel会不会PG不清楚,但下面那个Protection 100%会PG,踩过坑了
请问你说的是什么Protection?
2019-3-26 17:52
0
雪    币: 163
活跃值: (103)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
+6ca
最后于 2019-3-26 17:56 被xiaofuy编辑 ,原因:
2019-3-26 17:55
0
雪    币: 4094
活跃值: (4205)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
xiaofuy +6ca
好吧,你说的是另一个问题,Protection成员修改了会触发PG,那SectionSignatureLevel应该也会触发才对
2019-3-26 17:58
0
雪    币: 12
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
services还好吧,edge其实才是难注的,
ps
services 只有umci 没有acg保护???
就是那个动态代码block 分配内存返回604那个
umci好说 打个whql签名dll就射进去了 acg才是要命...
最后于 2019-3-26 20:53 被MaMy编辑 ,原因:
2019-3-26 20:29
0
雪    币: 1736
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
services.exe修改了N久了  没问题signature     protect      EProcessFlags都改了。难注怕是你没有清理完各种控制,IFEO了解下,缓冲区shellcode执行不了的DisableDynamicCode了解一下。
2019-3-27 09:36
0
雪    币: 12
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
sylingyy services.exe修改了N久了 没问题signature protect EProcessFlags都改了。难注怕是你没有清理完各种控制,IFEO了解下,缓冲区shellco ...
DisableDynamicCode 啥玩意
2019-3-27 10:33
0
雪    币: 4094
活跃值: (4205)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
MaMy 错了,确实pg会扫
那他为什么会这样做?
2019-3-27 11:43
0
雪    币: 12
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
昵称好麻烦 那他为什么会这样做?
试了下 改了protection上  一共3个flags
半个小时也没蓝..到底扫么,我也纳闷了。。
2019-3-27 18:36
0
雪    币: 4094
活跃值: (4205)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
15
MaMy 试了下 改了protection上 一共3个flags 半个小时也没蓝..到底扫么,我也纳闷了。。
所以这个标志位,PatchGuard到底检不检查......我也怀疑了
2019-3-27 22:58
0
雪    币: 4006
活跃值: (726)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
16
检查个腿子,那创建进程就不能指定protect_process了?那留这个干啥子哦
2019-4-4 11:29
0
雪    币: 4094
活跃值: (4205)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
17
放学打我不 检查个腿子,那创建进程就不能指定protect_process了?那留这个干啥子哦
可能是仅针对于services等系统进程的检查,不是每个进程都可以这么搞
2019-4-4 13:05
0
雪    币: 4006
活跃值: (726)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
MaMy DisableDynamicCode 啥玩意
这个东西可以限制申请内存
2019-4-5 22:16
0
雪    币: 137
活跃值: (1548)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
services.exe实际上还是r3层的东西, 想蓝屏除非碰瓷
2019-4-9 14:47
0
雪    币: 439
活跃值: (2673)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
麦咖啡,火绒都是这样注入的吧...
不过不清理一下就有点过分了.
2019-4-10 21:24
0
游客
登录 | 注册 方可回帖
返回
//