Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132086
  • 博文数量: 21
  • 博客积分: 2030
  • 博客等级: 大尉
  • 技术积分: 875
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-12 09:26
文章分类
文章存档

2011年(1)

2010年(11)

2009年(3)

2008年(6)

我的朋友
最近访客

分类: LINUX

2010-09-07 08:47:47

本人曾经感叹的落后,尤其看到panabit之后,但是本人现在积累了一定的编写L7表达式的经验,对此打算把其中的几条经验写出来,供广大网友参考,不对之处还请各位老大指出。,。

想得太美老大已经写过一篇如何编写表达式的文档,此文档写得非常好,不过过于简单,因为L7的对头P2P目前的趋势是把自己的数据包伪装成伪ie下载包或者http包,有些p2p软件甚至直接采用httpGET请求,采用http协议作为传输协议,这使得应用层特征非常不明显。

因此,以下几点是值得参考的解决办法:

1、  user-agent

特定的下载客户端有特定的user-agent,通过抓包可以看到迅雷、flashget、超级旋风等的user-agent都不相同,而且与IE均不相同,虽然几个非常相似。而所有的下载工具在连接之前均会有向服务器请求P2Ppeer信息的过程,ok,是个httpget过程,于是,顺利拦住这个过程的表达式为;^get.+user-agent,注意英文字母不需要通过16进制转义,但是几个特殊符号需要通过“\”来转义。

详细的理解这个应用,可以看下官方的迅雷的表达式,OK,有段^get.+user-agent的字符,将迅雷抓包的结果中的http协议的user-agent抓出来仔细看,并结合这个官方的表达式琢磨琢磨,你就会明白了。(官方的迅雷也是国内高人提供的,目前还不落后,但是部分装了.net framework的电脑就不受控制,因为user-agent变了,只要抓包观察下就能看出区别,把这个区别添加进去就可以完全封堵迅雷)

2、  特殊字符

特殊字符的意思是某些客户端的连接过程和连接对象必然包含一些特殊字符,打个比方,ppstream是比较头痛的视频软件,但是我的表达式却非常简单,那就是ppstream无论作任何连接,无论链接到那个服务器,连接过程和对象都必然包含“pps”这个关键字符,只要在应用层拦截这个字符就可以彻底拦截ppstreamOK,你会认为这样会造成误杀,是的,只是这样就绝对会,但是ppstreamUDP连接信息中还有一个特定位置字符是有特征的,再加上ppstreamuser-agent,就断然不会造成误杀。

应外一个应用时emuleemule是应用层加密的,我目前还没有找到彻底的办法,但是发现的特征就是emule也有特殊字符,这个特殊字符就是大部分emule用户的用户名,OK,这个用户名不出意外大部分是一致的。只要拦截这个特殊字符就可以了,希望你能手动尝试一下。

3、  关键连接过程拦截

所谓的关键的连接过程就是P2P软件很有可能由多个连接过程组成,但是你只要阻止其中的一个,它就无法应用了。OK,还是举例子,pplivepplive一共有四个连接过程,分别是1、向服务器申请频道列表2、向服务器申请peer信息3、向peer用户交换传输控制信息4peerpeer之间传输数据。如果不明白的话,请自己动手抓包,查看这个链接过程。于是,我认为第三个过程是重要的关键过程。有人问你是怎么知道的,我只能回答我是多次试验得出来的。

这个过程是采用UDP作为传输协议,传输内容主要是peerpeer互相之间协商数据传输的过程。因此通过多次试验就能发现这个过程的特征值段。我曾经和liangjun(不知姓名,只知官方的迅雷提供者是他)交换过彼此的表达式,他的表达式拦住了大部分的频道,但是没有抓出三个频道组的特征,我的表达式与他基本相同,另外我抓了其他三个频道组的表达式

另外一个例子是flashgetOKflashget的特点是什么?多资源搜索、多线程。OK,你下载任意一个文件,以任意协议下载的时候,flashget 都会做一件事情,那就是向某个url(我没记错的话是s4.flashget.com)申请httpGET,内容是对于所下载内容的在网络上的资源的分布的搜索,正是这个过程使得flashget有了快速下载的动力,说到这里,你该明白了吧,拦截了这个过程,flashget就会只剩下所申请的固定资源的下载,也就是,变成了普通的ie下载了,那么就好对付很多了。

 

P2P软件的应用层特征确实比普通的客户端的特征来的难查询,但是只要进行长时间的实验和尝试,我坚信任意一块客户端、任意一个协议均有它七层特征,有特征就一定找得到,请大家群策群力,多多实验,就一定能得出正确的应用层特征。

 

OK,说了很多了,还有一些小诀窍没有来得及整理,不过注意到了以上几个关键点的话,对付普通的P2P软件还是绰绰有余,至于emule,暂时还没找到彻底解决的办法。

阅读(650) | 评论(0) | 转发(0) |
0

上一篇:理解awk

下一篇:10个最酷的Linux单行命令

给主人留下些什么吧!~~