首页
社区
课程
招聘
[讨论]关于顺网的驱动防火墙
发表于: 2008-5-11 03:15 16789

[讨论]关于顺网的驱动防火墙

2008-5-11 03:15
16789
关于顺网的驱动防火墙
我有一个外挂 需要加载驱动 但是现在很多网吧都装了顺网的驱动防火墙 导致外挂无法加载驱动运行

目前只有一个解决办法 就是注入驱动防火墙 拦截 EXE与驱动通信的API 然后实现白名单欺骗
但是这种方法很被动  大家有什么更好的办法呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
2
放份驱动文件..上来...

没样本不好分析. 随便猜测 注入啊很好嘛 还是杀死进程 恢复hook啥的

都很主动啊,啥叫被动?
2008-5-11 08:21
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
到处发。。。什么驱动防火墙,就跟没有一样
2008-5-11 11:28
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
关键是在网吧,有还原卡呀!
靠现成的工具结束不了呀。楼上的有啥好方法,给个思路呀!
2008-5-11 16:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
注入驱动防火墙 拦截?
ring3环下 更本找不到进程ID 如何注入
驱动不让加载
如何 拦截EXE与驱动通信的API ?
2008-5-11 17:26
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
kernel exp
2008-5-11 17:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
现在都是XPSP3了 暂时 没漏洞好用来加载驱动
2008-5-11 18:37
0
雪    币: 193
活跃值: (26)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
8
全局钩子是不需要知道进程ID的

驱动HOOK了操作驱动的相关操作 当他拦截到一个驱动加载时候 会向EXE发送一个检测指令
EXE进程就会检测文件的特征 然后通知SYS到底是拦截还是放行

EXE与SYS通信API:DeviceIoControl

这个经过本人测试OK  但是调试发现 不同版本的驱动防火墙 DeviceIoControl参数也不一样 郁闷中
希望谁能提供一下更好的办法

下面帖下 驱动防火墙的驱动
上传的附件:
2008-5-11 20:48
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
hotpatch , page file, sandman,数不胜数
2008-5-11 21:01
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
搞点通用的东西,不然太没意思
2008-5-11 21:02
0
雪    币: 193
活跃值: (26)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
11
这些 能xp sp1 sp2 sp3  2003 2003 sp1通用吗?
2008-5-11 21:20
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
都可以。。。
2008-5-11 22:04
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
下个个程序 看了下,原来所谓驱动防火墙是抄了本人的360GuardField的方法~
用PsLoadImageNotifyRoutine来监视驱动加载,对其进行PATCH,这样hotpatch是没戏的了
2008-5-11 22:59
0
雪    币: 226
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
14
马甲来了123456
2008-5-11 23:36
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
这个防火墙的主要工作流程:
PsLoadImageNotifyRoutine监视到镜象加载(包括USERMODE和kernel mode的,ZwLoadDriver,ZwSetSystemInformation方式加载的驱动都会被拦截到)

判断ImageInfo中SystemModeImage,如果是就开始拦截,算文件的校验,从PE头里取校验、TimeStamp,SizeOfImage,然后和一些预置的黑白名单对比

如果没有对比出来,就置一个DriverEntryEvent,通知RING3
并开始等待DriverProcessedEvent

RING3得到通知后调DeviceIoControl取镜象信息,和本地的名单对比后,得到处理结果

用dev ctl送给RING0,同时置DriverProcessedEvent(这个操作是在dev ctl里,驱动给你做的,要注意的是,如果你要搞它的EVENT,它的event是在System进程上下文创建的,所以你用EVENT_ALL_ACCESS是打不开它的event的~注意权限问题~),等待驱动置DriverClearedEvent,最后驱动置DriverClearedEvent,RING3继续循环等待DriverEntryEvent~

三事件通讯系统~由于操作的共享数据是dev ext且未做数据同步,所以用了第三个事件(DriverClearedEvent)来做同步

如果确定是要拦截的,那么会将加载的镜象的DriverEntry处patch成
mov eax , 0xc0000022
retn 8

导致加载不成功退出

貌似没发现什么明显的空子可钻。要么就用device io control,但是会涉及它的device ext结构变化的问题~
要么就改它本地的白名单库或者PATCH它的EXE,这个也是对版本有依赖

要么就是ZwSystemDebugControl,这个用法就多了

可以添加CallGate进R0,然后直接将它的NotifyRoutine给patch掉,或者是将PsImageNotifyEnabled这个全局变量置为FALSE

缺点是不支持2000、2003 SP1,而且某些HIPS或AV已经直接封了这个函数~(例如卡巴),当然网吧的话可以不考虑

要么就是PhyMemory,类似上面的方法,添加CallGate,不过不支持2003 SP1,而且有AV/HIPS拦

要么就是PageFile或SANDMAN,感染内存中的win32k等,添加shellcode进R0,好处是全平台通用,坏处是你找不到现成的代码:D

另外hotpatch也是可以的,因为这个驱动防火墙只会patch你的镜象的DriverEntry,而这对hotpatch没有影响。只是好象不支持2000,以及2003 SP2(??)

总之暂时没想到比较优美 方法可以过这个~
2008-5-12 00:35
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
16
一个机器狗衍生出多少刀光剑影
2008-5-12 00:41
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
这个防火墙的驱动写得太恶心了~一个拦驱动的驱动居然做到了20KB~看得头疼,睡觉去
2008-5-12 00:46
0
雪    币: 193
活跃值: (26)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
18
QIQI说的很有道理

QIQI=MJ0011?
2008-5-12 14:34
0
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
19
大牛一开口就知道有没有。04注册的新马甲?
2008-5-12 22:07
0
游客
登录 | 注册 方可回帖
返回
//