首页
社区
课程
招聘
[求助]监视windows服务创建的问题
发表于: 2009-9-24 11:39 8240

[求助]监视windows服务创建的问题

2009-9-24 11:39
8240
病毒木马 经常采用创建服务的方式加载驱动sys  和   直接创建/修改系统服务加载dll,已达到恢复SSDT和随系统运行的目的 , 这两种技术都用到了 系统服务的创建和修改API 如下:
OpenSCManager ,
CreateService,
OpenService,
StartService,
ControlService,
DeleteService,
ChangeServiceConfig

现在打算 通过 监视以上这些API 来达到防御病毒木马的目的。打算通过在hook ssdt的方式实现, 可是不知道应该hook ssdt中的哪些函数??  
还望给位大牛给点思路 指点一二
十分感谢~~
如果 ring0下不好实现 在ring3下有什么更好的方法可以监视系统服务的创建和修改? 再次感谢~~

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 266
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
坐沙发 等待 各位大牛的指点
2009-9-24 11:40
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
3
这些大部分都是通过NdrClientCall来发送RPC请求给 Services.exe实现的
RPC通讯在各个平台上依赖的API各不相同,基本上
win2000:NtFsControlFile
xp,2003:NtRequestWaitReplyPort
vista,2008.win7 :NtAlpcSendWaitReceivePort

你需要拦截这些通讯并分析其通讯协议
2009-9-24 13:54
0
雪    币: 266
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
天呐   这么麻烦呀
我还以为 会像hook ZwCreateFile那样  也钩个什么Zw函数就ok了呢   

感谢 qihoocom 大牛对 偶问题的解答
3x
2009-9-24 14:33
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
5
这些都是Zw函数呀~
2009-9-24 14:35
0
雪    币: 266
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我知道 都是 Zw函数
可是 涉及到协议了   听到 “协议”这词儿  就怕怕  更况且还要分析  

不过还是很想知道 都涉及到哪些协议 ?  如何分析?  

继续感谢  qihoocom大牛
2009-9-24 14:50
0
雪    币: 7992
活跃值: (2566)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
呵呵..

你要和我一样懒的话...就直接点..

把IopLoadDriver给HOOK了..或者 MmLoadImage也行..

不管是ZwLoadDriver还是SCM法.这两个地方必走的....省的还要单独处理..(说实话.这也很老套了.某杀软几百年前都用过了.)..

Hook一个就代替了上面那么多.
2009-9-24 15:00
0
雪    币: 266
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
刚刚开始ring0这块儿的编程  现在暂时还只会Hook SSDT    
傷遺忘 兄的方法   找ZwLoadDriver和SCM调用的共通点  确实是非常不错的主意

很赞啊

以后会更加努力hook的
2009-9-24 15:10
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
9
拦截loaddriver的话,找不到加载驱动的进程 呵呵,这是个很严重的缺陷,也是大家为什么要拦通讯的原因
2009-9-24 15:30
0
雪    币: 266
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
用NtRequestWaitReplyPort 翻了一下g.cn   
个人感觉 qihoocom 所说的 “分析通讯协议”    应该指的就是 分析 此函数的第二个参数
IN PLPC_MESSAGE         Request 吧  

根据struct _LPC_MESSAGE 中的信息 判断 这次LPC请求的内容 是否为通知services.exe创建服务

不知 偶的理解考不靠谱儿  
2009-9-24 16:30
0
雪    币: 407
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
_LPC_MESSAGE 中是没有什么有用信息的,信息在他后面data里面
2009-10-9 15:33
0
雪    币: 290
活跃值: (20)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
ClientId
2009-10-9 15:42
0
雪    币: 123
活跃值: (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
在ring3下可以用detours库去拦截
2009-10-9 18:39
0
游客
登录 | 注册 方可回帖
返回
//