l7-filter教程抓包篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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效果