基于OSSIM平台的多点采集网络报文分析实战
2022-10-26 00:2:46 Author: LemonSec(查看原文) 阅读量:17 收藏

本文为大家介绍分布式OSSIM环境中,利用OSSIM系统中一种基于Web的数据包分析工具tshark。结合分布式OSSIM部署特点实现远程多点采集数据包进行分析的实例。

Wireshark是一种网络数据包分析软件,它能在图形化界面中抓取网络封包,并显示出详细的数据包信息,网络日常运维中的数据包分析利器,而tshark则是它的命令行版本。

我们在复杂网络环境中采用tcpdump或wirshark抓包分析网络故障,往往不是一个工程师能搞定的。很多情况下需要多人配合,彻底解决故障,非常不方便。例如要想以每秒间隔,统计 IP 地址 192.168.120.78 的封包、字节数量,就要输入一串的的命令。


我们既需要命令行功能强大,还需要友好的交互界面,下面介绍的OSSIM将它集成进来之后,并用Python语言对其功能扩展,形成了一套基于Web模式多点(多Sensor)网络分析利器。下面我们看看它是如何使用的吧。

1.分布式OSSIM环境

为了实现多点采集我们必须先将分布式OSSIM系统部署完成。每个传感器和OSSIM Server之间通讯正常。各个传感器所连接的均为相应交换机的SPAN口。在Web UI界面中操作路径为Environment→Traffic Capture,界面如下图所示。

操作方法非常简单,选择传感器,输入源地址和目标地址,然后点击捕捉按钮即可。应用该工具之前,需要操作者对最基础的TCPUDPIP协议、ICMP协议掌握,还需熟悉HTTPDHCPDNSFTP等常见应用层协议。
注意,在设置(settings)选项下方源地址和目标地址均为可选项。抓包时可以不必输入,除非确切知道要捕获的机器之间通讯。

在分布式OSSIM系统中,在分析远程某个网段的数据包,由受控网段内的Sensor抓包,存储在Sensor/var/ossim/traffic/目录下,命名为netscan_admin_IP.pcap,前提是这台Sensor/var目录剩余空间大于5GB

2.数据包设定

在设定数据包时,可以在Sensor下拉菜单中选择需要监控网段的传感器,选定网络接口,以及捕包时间(10s~180s,时间一到自动停止捕获)选择源地址、目标地址,设定过滤选项(Raw Filter)以及设定每个捕获数据包的大小等几个步骤。
Raw filter可设置过滤协议例如过滤TCPIPUDP等协议,其可能的值为tcpupdipicmparprarp等,如果不填写,则代表所有协议。在过滤条件的功能上不及wireshark丰富,在过滤的使用上不及第2章介绍的SIEM控制台的过滤选项丰富,很多过滤条件需要手工输入,另外填写在Raw filter后面的一定是协议名称的小写字母。捕捉到数据包以后下面开始查看细节,如下图所示。


最上方显示捕获数据包的开始时间结束时间和持续时间,再往下的主窗口上有三个面板,分别是包列表,包细节和包字节3部分

1)包列表。最上面的面板显示了当前捕获文件中的所有数据包,包括了数据包序号(NO.)、数据包捕获的相对时间(Time)、源地址(Source)、目的地址(Destination)、协议(Protocol)、数据包长度(Length)以及概况信息等。为了便于观察,对于选中的包系统会用绿色高亮显示出来。

2)包细节。中间面板显示了一个数据包中的内容,并且可以通过展开或者收缩来显示这个数据包中所捕获到的全部信息。

3)包字节。最下面的面板可能是比较让人头痛的了,因为它显示了一个数据包的真实面目,如果用过16进制编辑的就明白,下图中左边方框内显示的是偏移量,中间显示的是16进制。右边方框显示的是中间内容的可显示字符。

3.故障实例分析

下面我们看看通过分布式OSSIM部署的解决方法,公司总部C部署了一台高性能OSSIM服务器,在异地分公司A机房和B机房分别部署Sensor,它们通过VPNOssim Server连接。异地机房的Sensor分别连入交换机的SPAN口,当工作需要时,能够实时抓取网络数据。

A机房内服务器出现故障,需要总部运维人员支持时,他们可以连接到OSSIMWeb UI界面,通过Traffic capture并选择对应的Sensor,然后开始抓包,并进行后续分析,这样部署大大提高了远程机房之间数据包分析的效率对于抓包存放位置是操作者必须了解的内容,系统抓的pcap数据包存放在/var/ossim/traffic/目录。

4.编写表达式

我们在使用tcpdump或者wireshark一般都会编写表达式以便过滤出想要的数据包。在这里也是一样,在这里的表达式跟wireshark稍有不同,下面列出常用的几种方式:

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的数据包。

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

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

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

5.协议过滤

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

表达式为:http

那么在进行数据包过滤时在Filter:输入http即可。如图10-7所示。

图  过滤Http协议

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

表达式为:!tcp 

排除IP协议:

6. 端口过

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

表达式为:tcp.port == 80

图  端口过滤

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

表达式为:udp.port>= 2048

7.数据长度过滤

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

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

表达式为:udp.length< 86

图 长度过滤

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

过滤器表达式如下:

frame.len<=64

图  长度过滤

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

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

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

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

图  根据IP+端口过滤

8.IE浏览器漏洞的攻击分析

背景:下面将要为读者分析的来自于2010年的一个0day漏洞名叫极光漏洞,它是IE的一个缓冲区溢出漏洞,而利用这个漏洞进行攻击的程序。接着看个实例:

受害者IP:192.168.100.206;攻击者IP:192.168.100.200。

由于在在Windows系统的IE6/7/8等版本中,存在零日漏洞,没有修复次漏洞的客户端,有可能被攻击者的网页挂马导致任意代码执行,这里举的例子中受害者就是使用了Windows XP+SP3+IE6的系统。下面本节讲述了通过OSSIM抓包并分析可疑数据包的过程。

在OSSIM下抓包发现了一些可疑数据包,下面我们分析这些数据包的内容,首先受害者和攻击者之间进行了三次握手,而且初始化连接的目标端口是80,很显然属于HTTP流量。从第13个数据包,能看出这是一个对/info的HTTP GET 请求,在图中用绿色标出的部分。

当攻击者的机器收到GET请求后,并在第50个数据包中返回了一个302 返回码,其含义是用于浏览器重定向到另一个页面。

注意这个Location域,它指明重定向的位置是/info?rFfWELUjLJHpP,这些内容好像是<script>标签内的一些随机字母,而这些类似乱码的随机字母,则可能被攻击者经过了特殊编码而逃避检测。接下来,我们发现了一些更有用的信息。

注意,图中URI:

/infowTVeeGDYJWNfsrdrvXiYApnuPoCMjRrSZuKtbVgwuZCXwxKjtEclbPuJPPctcflhsttMRrSyxl.gif:/infowTVeeGDYJWNfsrdrvXiYApnuPoCMjRrSZuKtbVgwuZCXwxKjtEclbPuJPPctcflhsttMRrSyxl.gif,这是个恶意的嵌套,很可能是包含在<span></span>标签内,这些文本很长,包含了不可阅读的字符创,这是攻击者管用的手法。这样用户无法察觉,这个奇怪的GIF文件有什么用呢,这绝不是什么图片。另外,大家注意Graphs按钮内容,显示了Wireshark的I/O图像,它可以描绘网络上的吞吐量,分析者利用这些图便可找到不同协议数据吞吐的峰值。如图所示。

GIF文件很有可能用来被触发某种代码,从图10-17可以了解到。

从图10-18我们清楚看到,一个Windows命令行解释器,这个shell是由受害者发给服务器的,这表示攻击者成功利用了漏洞,我们甚至可以看到攻击者和受害者的交互,即输入dir命令,列出受害者机器的目录。这样攻击者对受害者机器就有了管理权限。

受害者接收到了可疑的邮件里面的图片,并点击了图片,这对于浏览者而言在平常不过了,可是图片背后的链接却向攻击者的恶意网站发送了一个GET请求。接着,攻击者的Web服务器向受害者发送了302重定向,这样一来,受害者的浏览器就向重定向后的URL发起了另一个GET请求。攻击者的Web服务器向这位客户端发送了含有恶意嵌套GIF图像连接的帧(iframe),受害者从服务器上下载了GIF,这样利用IE浏览器漏洞,便执行了隐藏的PayLoad,并打通了受害者到攻击者的网络通道,该Payload产生了一个命令行解释器到攻击者的计算机,以便远程控制目标。

以上整个微妙的过程只需要几秒钟,而对于管理员很难捕获到这一变化,下面我们开始梳理OSSIM中的流量抓包功能(Traffic Capture),看看它如何找到这些可疑数据包。下图是在OSSIM漏洞库中的有关极光IE 0 day漏洞的信息。

有关OSSIM抓包分析里的更多案例,感兴趣的读者可以参阅图书《开源安全运维平台OSSIM疑难解析》入门篇和提高篇。

侵权请私聊公众号删文

 热文推荐  

欢迎关注LemonSec
觉得不错点个“赞”、“在

文章来源: http://mp.weixin.qq.com/s?__biz=MzUyMTA0MjQ4NA==&mid=2247536788&idx=2&sn=f7de361e5953cb0b3701f4b928a4eff6&chksm=f9e33fcfce94b6d9969bf4a47287093ceee93b226bf7a5f47c4f808cd8276f1220419d8d52e5#rd
如有侵权请联系:admin#unsafe.sh