l7-filter教程抓包篇

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

l7-filter教程抓包篇

一、抓包篇

过滤器指定本机ip

开启应用,全局抓包

相当多的http包,这是刚刚开启ppstream的一些广告和贫道信息的链接。随便开个频道看电视,重新启动一个wireshark进程

小部分的http包和大部分的udp包。

注意:抓包时注意不要开其他程序,避免其他进程的干扰。

二、分析数据包篇:

前面提到已经抓取了ppstream开启某个频道后的数据包,接下来的步骤是对数据包进行分析。随便挑选一个数据包,数据交换部分的数据包。

记录目的ip地址为61.147.114.38

过滤器中追踪该ip地址

得到了本地ip和远程目的ip之间所有的交互过程

分析第一个包的应用层内容

说明:这是一个pps协议的连接的握手包。这个包有明显的数据特征就是数据包中含有“pps”,

但是不能直接过滤“pps”,会导致pps网站都打不开。

4、重复步骤1,再换个ip

看到首个通讯包的内容,相差不多。

大致为:

5400434671ff000100010047007070733a2f2f68776a78656a77716561366e6e756a7a326171612e7070732f31303039 33302dd6edccecc9fac1bdccf5cdc8c1b7becdb5b9c1a2d0d0d7df2d616877732e776d76

TCFqGpps://hwjxejwqea6nnujz2aqa.pps/100930--ahws.wmv

从这里可以看到,pps://hwjxejwqea6nnujz2aqa.pps/100930--ahws.wmv后面拖的这一串肯定是获取的视频的文件,而前面的5400434671ff00010001004700正是ppstream应用层的数据包。可以类比于http的get 或者post。

不断重复过程1、2、3,对比这段数据包的内容,终于可以发现,有一项是固定不变的那就是

XX0043XXXXXXXX......,00不能作为特征,因此pps的特征即为第二个数据包为43。

^.\x43不能写成这样的L7表达式,因为必然会引起误杀,存在其他大量的数据包都有可能第二个数据包为43,因此后面还有再加内容。之前提到ppstream获取的视频内容信息总是以pps的协议连接,因此ppstream的表达式为^.\x43.+pps

综上,pps的表达式就出来了。有少量的频道走http,因此我又加了后面这段,

^(.\x43.+\x70\x70\x73|get.+User-Agent: PPStream\-Client/1\.0)可确保pps的所有频道均被拦截。

三、调试篇:

调试的目的是为了确定分析数据包篇的步骤5,也就是在可能的数据包中确定应用层特征。

我通常采用的办法是:

前提:

首先通过几组数据包类比的方法,大致确定可能的特征值。

单点确定

也就是一个字符一个字符的确定。

如这串5400434671ff00010001004700字符

编写测试pat,^\x54。查看能否进行拦截,如果封堵了视频,则证明第一个字符为54;如果没有封堵视频,则证明第一个字符不仅仅是54,还可能存在其他字符,甚至是随机字符(当然测试过程需要不断查看各个频道,这是视频工具的难点所在)。第一个字符确定后,

再尝试第二个字符43(如确定第一个字符为54,则pat为^\x54\x43,如不确定第一个字符为54,则pat为^.\x43)(.代表任意一个普通字符)。

以此类推,直到不会造成漏杀和误杀为止。

特殊符号应用

即(. ? +的用法)

如这串5400434671ff00010001004700字符

我不能确定第二个00是否为固定值00,或者是可能存在其他值(测试时没有尝试所有频道的前提下),这时可以把pat写成^..?\x43,意思就是第二个字符为43或者第三个字符为43。同样的道理,上面提到在不确定第一个字符是否一定为54的时候,可以用.来代替。

正则表达式debug

正则表达式描述数据包的能力非常强大(可参考30分钟教程),不仅可以描述静态数据包,还可以描述变化的动态数据包。

如这串5400434671ff00010001004700字符

如果第一个字符除了54之外,还有53,但是没有其他的字符了。而且无法确定第一个字符可以作为特征的情况下,可以把pat写成^[\x53\x54]。并作测试来确定第一个字符是否为53/54,或者第一个字符无法描述pps的特征。其他常用的有()、\、后向引用等。

四、pps效果篇

pat内容

Iptables规则

可以明显看到匹配被DROP的数据包

Pps效果

相关文档
最新文档