白日梦

我不苟同你的思想,但是我绝对捍卫你思想的自由。

原创 利用 TDI HOOK 实现任意端口复用 收藏

 | 旧一篇: Kick the Heuristic Anti-virus out of the Rootkit

所谓tdi hook,我这里利用的是hook tcpip dispatch table的方法,实际上复用的原理很简单,关键是hook掉tdi_event_connect,之后从*AcceptIrp中取出conn obj,将其传递到自己定义的tdisend中就可以了
这里唯一蹩脚的地方是在处理TDI EVENT的时候,当进程启动后,它首先系统注册这些event handler,在有相应的网络事件发生的时候才进行调用,这点利用TDI MON可以看出来。因此,要在驱动启动的时候要分配一个信息结构(struct conn_ot)的HASH表,表里记录的信息可以在IRP_MJ_CLEANUP的时候进行释放。
这里我只对网络中最后一个连接做了复用,如果想复用全部的连接,需要修改一下ot_add_fileobj(),并且在连接断开的时候,处理IRP_MJ_CLEANUP就可以了。

测试方法:
首先在远程的机器上安装tdihook.sys,之后运行DMCanon.exe 2(这个数字随意指定)。运行一个网络服务,我一般用nc和apache。在本地机器运行nc连接,以ok作为magic word发送,可以得到Complete!

代码大部分取自tdi_fw。
感谢sinister大哥的指教。

代码下载请见下面的地址:
http://club.safechina.net/viewthread.php?tid=2160
http://www.whitecell.org/forums/viewthread.php?tid=253

by CDrea
http://www.safechina.net
CDrea@safechina.net

发表于 @ 2006年05月30日 17:43:00|评论(loading...)|编辑

 | 旧一篇: Kick the Heuristic Anti-virus out of the Rootkit

评论

#nipcdll 发表于2006-07-24 14:58:00  IP: 210.77.19.*
DMCanon.exe这个哪里有下的?
#nipcdll 发表于2006-07-24 15:00:00  IP: 210.77.19.*
“网络中最后一个连接做了复用”,那如果想复用135端口的话,应该修改什么呢?
#CDrea 发表于2006-08-02 15:31:00  IP: 210.83.223.*
我已经把DMCanon的代码放到压缩包里了,编译一下就可以了。
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © CDrea