免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 943 | 回复: 0
打印 上一主题 下一主题

更新wnps的两点建议 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-21 18:08 |只看该作者 |倒序浏览
由于现在比较忙,wnps暂停开发,精简版的代码已经公开了,如果向自己加入更多功能的话,请仔细阅读代码,有几点注意事项要跟kernel newbie说明一下:

1,wnps可能是最先使用netfilter来过滤协议内容的rookit,它在数据包进入路由层之前截获所有数据包,然后从tcp协议中判断是否有client发来的标志,如果有的话,就提取反连的ip和port,并将开启shell的标志记为1.我们hook read系统调用的原因就是读取这个shell标志,如果为1的话,就要根据反连ip和port,产生一个回连的shell。可能大家会为问为什么不在netfilter中直接启动反连shell,反而要在read系统调用中使用呢。答案是netfilter的hook点处于中断处理的下半部,也就是在中断上下文中,不能与用户层通信,也不能使用诸如kmalloc的能睡眠的函数,中断上下文,根进程没有一点联系,如果它睡眠了,由谁来唤醒呢?所以有这个打算的朋友可以将这个注意过滤吧,当然你可以用更好的办法替代hook read系统调用,毕竟系统每时每刻都在用这个调用,更高级的设计中,尽量避免hook类似经常要用到的系统调用。我提供几个也许可行的办法,想改进代码的朋友可以看看,也许有帮助。第一就是单独产生一个内核线程来判断那个shell标志,如果为1,就直接产生远程shell。第二,使用内核定时器,使用简单的技巧,每隔一断时间就来判断shell标志,并产生shell标志。其他的我还没有什么好想法。自己也没亲自实验下。这几天寝室不能上网。有兴趣的可以试下。当然用netfilter来做个嗅探器也是可以的,phrack杂志中有类似的代码,但是要在netfilter来实现,还得注意我上面提到过的几个问题。。。

2,wnps需要解决的一个很重要的问题,就是在没如何在没内核源代码的情况下,把它装入到系统中。在这个问题上我没继续研究下去了,毕竟自己也是个newbie。

先写这么多吧,什么时候想起来在接着补充了。呵呵。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15780/showart_404718.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP