围观文件穿越操作

大概这么几个思路

 

1.      打开文件用IoCreateFile,其他比较好发irp的(比如删除操作)走FSD irp

删除文件部分处理了删除正在运行的exe镜像部分,做法是方法是IAT Hook MmFlushImageSection

但是这样对于独占文件依旧不能处理,只好等到关机回调的时候ZwClose一下在检验

对于鬼影这种hook住微端口驱动的StartIo这种,直接判断驱动名字” hello_tt.sys”  or  “beep.sys”从里面硬编码一个原始StartIo的全局变量恢复,虽然看着比较2,但目前市面上就这一版鬼影在传播也就还好

而且并不是所有人的小端口驱动都是atapi,也许是为了处理nvgts之类的玩意儿。

 

2.      恢复FSD钩子,打开文件用IoCreateFile,其他比较好发irp的(比如删除操作)走irp

hook MmFlushImageSection,然后删除文件之前先跑到其他进程里去关人家的句柄,这让可以删掉市面上大多数应用层木马了。

 

3.      自己实现了所有Nt系列操作文件的功能(详见WRK),对文件的所有操作(包括目录的遍历)都会直接发送到FSD (为了实现这个目标还要自己实现一些Obxxxx的代码),当然FSDirp/inline hook要处理

有一些irp操作不是你直接调用的,比如IRP_MJ_CLEANUP 是在ZwClose里面间接调用的,这里用到的方法是自己创建一个对象类型代替File类型,在打开文件时对对象类型进行了替换,这样ZwClose调用CloseProcedure就不再是IopCloseFile而是自己的函数。

文件删除部分有关闭其他进程里的句柄,IRP_MJ_LOCK_CONTROLMJXCB大法(这个很久的文章以前分析过了)

这个文件穿透还是很强大的~~ 绕过了绝大多数菜鸟rootkit,大街上好rootkit还是太少了。

针对鬼影恢复了StartIo,目前只支持atapi

还有一个功能貌似是测试网络连通性= =

 

这一篇和上一篇一样,读取和删除文件&注册表是查杀rootkit木马用到的技术,“思路”的意思其实就是国内三款主流产品的一些原理= = 

有兴趣的自己逆一下吧~

阅读全文
类别:内核 查看评论
posted on 2011-11-01 18:46  retme  阅读(208)  评论(0编辑  收藏  举报