阅读:2203回复:2
TDI 过滤 ,传说中的问题
楚狂人教材里:
一个传说中的问题 有一个传说中的问题,那就是netbt这个设备发送TCP数据的时候,无法被我们的TDI过滤驱动 过滤到。尽管我们前面已经过滤了TDI_SEND。netbt是Netbios Over Tcp/Ip,是用于计算机名字解 析,对于想监控网络邻居的安全系统非常重要。不过更重要的是,如果netbt可以绕过我们的安全 监控,那么别的程序也可以,这个漏洞必须弥补。 有人发现netbt将直接获取函数指针TCPSendData进行数据发送,既然不通过发送TDI_SEND请 求,那么当然可以绕过我们的监控了。 研究tcpip.sys的代码,以下是tcpip.sys 的分发函数节选,其中有一个 IRP_MJ_DEVICE_CONTROL的功能号码为IOCTL_TDI_QUERY_DIRECT_SEND_HANDLER。如 果你发出这个请求,tcpip.sys将把TCPSendData这个函数的指针返回给你,你就可以直接用它来发 送数据。 Netbt会在加载的时候就获得这个地址,所以TDI驱动没法动态加载,只能依赖重启过程,在Netbt.sys加载前加载,所以要调整注册表中的加载顺序。 这些都试过了,没问题。但是发现即便这么做了,共享传文件还是抓不到,具体说如果是139端口是抓的到的,如果连接建立在445端口,那么即便过滤了IOCTL_TDI_QUERY_DIRECT_SEND_HANDLER这个请求也抓不到。 有谁是否也碰到类似问题,因为TCPIP.sys的加载数序group是PNPTDI,在PNPTDI和NetBIOSGroup之间有NDIS和TDI,我试了我的驱动加载group设置为NDIS和TDI都一样,只对139能过滤,对445不能。 139是SMB协议,445是CIFS协议,确实看http://www.shcherbyna.com/?p=121%2F这个文章也是分析的SMB的,CIFS难道有别的方式发送数据? 求高手,谢谢! |
|
|
沙发#
发布于:2013-05-30 14:11
发现天网也没搞定445
|
|
|
板凳#
发布于:2013-06-26 09:27
楼主这个问题解决了吗?我很想知道怎么解决的,我遇到这个问题。求解
|
|