OSSIM下协议过滤技巧

OSSIM下协议过滤技巧


1、数据包过滤种类


收集到的大量网络数据需要对其进行一定的处理,也就是过滤,这种过滤主要分为以下4种:

l  基于主机(IP)的流量过滤,如果需要监控的信息中包含某个IP,那么就可以采用这种基于主机的过滤方式。

l  基于端口的流量过滤,如果需要的信息中包含特点端口(源端口和目的端口)那么就可以用这种方式。

l  基于协议+端口的流量过滤

l  基于主机+端口的流量过滤


大家先了解以下几操作方法:


tcpdst port 22作用:显示目的TCP端口为22的数据包。

ipsrc host 192.168.150.10作用:显示来源IP地址为192.168.150.10的数据包。

host 192.168.150.10作用:显示目的或来源IP地址为192.168.150.10的数据包。

src port range 3000~5500 显示来源为UDPTCP,并且端口号在30005500范围内的数据包。

5. not icmp显示除了ICMP以外的所有数据包(ICMP通常被Ping工具使用)。

src host 10.7.2.12 and not dst net 10.200.0.0/16


作用:显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的数据包。


    用Wireshark打开一些Pcap数据包后,每条消息的所有field 会被解析出来并会按照协议层次折叠起来。第一层显示的是Frame XXX,这一级别没有对应某层具体的协议,而是对本条消息的一个概括性总结,描述了一些有用的概括性信息,比如从里面我们可以看到本条消息各种协议的层次关系,展开其它协议层之后对应的是该协议的各个域,如果需要使用过滤时可以使用以上介绍的几种方法,程序截获数据包分析如图1所示。如果点击Graphs按钮可以获取到更多有关协议和流量的信息。

blob.png

图1 分析数据包

·           注意:如果OSSIM系统的Sensor出现问题那么这一功能将无法使用,下面看个例子如果SensorServer通讯故障将影响NtopOpenvas以及抓包功能的使用。

blob.png

2 Sensor失效

这时在操作界面的左边方框中没有找到可用Sensor,这时抓包功能无法使用。


2、 Wireshark过滤匹配表达式实例


2.1 过滤基础

首先说几个最常用的关键字,“eq”和“= =”等同,可以使用“and”表示并且,“or”表示或者。“!" "not表示取反。对IP地址的过滤其中有几种情况:

1)对源地址为192.168.11.121的包的过滤,即抓取源地址满足要求的包。

表达式为:ip.src = = 192.168.11.121

照此方法我们可以填写到过滤的表单中然后点击“Apply”按钮即可过滤出结果。

如果输入地址没有找到则显示”no data with this filter”

2)对目的地址为192.168.0.1的包的过滤,即抓取目的地址满足要求的包。

表达式为:ip.dst = = 192.168.0.1

3)抓取满足源或者目的地址的IP地址是192.168.0.1包。

表达式为: ip.src = = 192.168.0.1 or ip.dst = = 192.168.0.1


2.2 协议过滤

1)仅仅需要捕获某种协议的数据包,表达式很简单仅仅需要把协议的名字输入即可。

表达式为:http

那么在进行数据包过滤是在Filter:中输入http即可。如图3所示。

blob.png

3  过滤Http协议

2)排除某种协议的数据包

表达式为:!tcp 

排除IP协议:blob.png


2.3 对端口的过滤


1)捕获某一端口的数据包

表达式为:tcp.port == 80

blob.png

4   端口过滤

2)捕获多端口的数据包,可以使用and来连接,下面是捕获高端口(大于1024的表达式

表达式为:udp.port>= 2048


2.4对包长度的过滤


一组数据包查看它们的大小会发现很多问题,在正常情况下,一个以太网的最大帧长为1518字节,去除以太网、IP以及TCP头,还剩1460字节可供应用层协议的头或者数据使用。那么我们根据这个原则就能通过捕获数据包分析长度了解其分布然后对故障进行合理的分析和猜测。不过在OSSIM系统中这一功能交给Ntop来完成,下面我们看看如何通过一些表达式多包进行过滤。

1)针对长度的过虑(这里的长度指定的是数据段的长度)

表达式为:udp.length< 86

blob.png

5  长度过滤

我们知道以太网头是14字节(包括了4字节的CRC校验),IP头最小20字节,没有数据以及选项的TCP数据包也是20字节,这也就是说TCP用于控制的数据包,例如ACKRST以及FIN的大小大约是54字节。查看那些长度小于64字节的数据包。

过滤器表达式如下:

frame.len<=64

blob.png

6  长度过滤

同样方法可以使用如下表达式:

frame.number<=10   代表过滤出帧数小于10的所有包

fram.number= =10  代表过滤出帧数为10的包

通过以上的最基本的功能的学习,如果随意发挥,可以灵活应用,就基本上算是入门了。我们还可以根据IP地址+端口进行过滤,比如在Filter:后面输入:“ip.addr==192.168.11.1&& udp.port==53”效果如图7所示。

blob.png

7   根据IP+端口过滤

将以上方法经过组合应用就可发挥出强大的过滤效果。Wireshark除了GUI工具外还有对应的命令行工具tshark。在远程环境下相当实用。下面就简单的说说常用的一些功能。tshark平常远程登录时抓包很好用,而且可以直接解析,但总是不很记得如何打印出原本16进制的数据。抓包命令如下:

#tshark - w test.pcap -i eth0 - q

l  -w 将抓包的数据写入文件filename中。

l  -i指定要抓包的接口名称

l  -q 安静,在远程时最有用,否则会抓到SSH的报文

l  -r 指定要读取的包文件

l  -x 16进制原始包数据打印出来

l  -V 将包尽可能的解析(这个有时在包数量很多的情况下可以不使用,这样它会给出一个很简洁的报文解释)

blob.png

8  tshark抓包

2.5 操作举例:

每秒间隔,统计 IP 地址 192.168.120.78 的封包、字节数量。输入以下命令。

tshark -z io,stat,1,ip.addr==192.168.120.78

blob.pngblob.png

blob.png

图9   tshark抓包

实际上通过对网络数据包的分析可以找到不少网络***时的奥秘,因为素有的网络***行为一定是通过数据包传送,而每种不同的***方式在网络上都会产生某种行为特征,比如说,当Syn Flooding***时,网络上立刻会产生大量带有SYN标志位的数据包,通过抓包就能发现,再如Code red蠕虫在感染IIS 时,在网上也会出现发送给Web服务器80端口的数据包,而且其中包含“GET /.*.ida?*XX*%u{4}%u780*=.{7}HTTP /1.0\r\n’”特征的字符串特征信息。最为网络安全人员,我们要善于利用Web界面的Wireshark来分析网络的***行为,有的***产生小包(< 64 Bytes,而有的***则会产生巨人帧,我们通过不断总结***行为将行为特征记录到数据库,这样就能不断沉淀不断积累而形成一个大的适合企业自身的病毒查询知识库。


猜你喜欢

转载自blog.51cto.com/chenguang/2398488