程序员人生 网站导航

用开源工具Xplico助力网络应用层数据解码

栏目:服务器时间:2016-06-30 08:22:36

用开源工具Xplico助力网络利用层数据解码


首发:http://netsecurity.51cto.com/art/201606/513237.htm


0.概述

Xplico功能不但是1个网络协议分析工具,还是1个开源的网络取证分析工具(NFAT)。网络取证分析工具是1个科学的捕捉,记录和检测入侵并进行调查的网络流量分析处理系统。Xplico主要作用是从捕获网络利用层数据并显示出来,这指的是通过捕获Internet网络流量来提取各种网络利用中所包括的数据,并从中分析出各种不同的网络利用。例如Xplico可以实时解析通过网关的流量,也能够pcap文件中解析出IP流量数据,并解析每一个邮箱(包括POP、IMAP和SMTP协议),解析HTTP内容,和VOIP利用等。

注意:在后面设置中Xplico Web界面中的Menu→Dissectors能看到它所支持的利用层协议。

1.系统架构

XPlico系统由4个部份构成,分别是:

Ø 解码控制器

Ø IP/网络解码器(Xplico)

Ø 程序集来处理解码数据(ManiPulators)

Ø 可视化系统(用来查看结果)

解码器Xplico是全部系统的核心组件,它的特点是高度模块化,可扩大性和可配置性。它的主要工作进程是通过数据抓取模块(cap_dissector)抓取网络中的数据包,然后将数据包输入到各个解析组件(Dissectors)中,得出的解析结果通过分发组件(Dispatcher)存储到数据库中,最后再显示出来。其进程如图1所示。

用开源工具Xplico助力网络应用层数据解码

图1 Xplico原理图

从图1可以看出,Xplico对协议的分析进程采取自顶向下的流程,首先Xplico捕获到网络数据包,然后根据包中的不同字段,辨别出不同的协议,分成TCP、UDP等协议进行分析,其中对TCP协议和UDP协议再根据不同的端口号和利用层协议的特点进1步细分,使用不同的解析器对报文进行分析和处理,最后得出结论并保存结果。

2. Xplico的数据获得方法

在Xplico底层使用Libpcap来抓取数据包,它是1个专门用来捕获网络数据的编程接口。它在很多网络安全领域得到了广泛的利用,很多著名的网络安全系统都是基于LibPcap而开发的,如著名的网络数据包捕获和分析工具Tcpdump,网络入侵检测系统snort也是使用Libpcap来实现的。Libpcap几近成了网络数据包捕获的标准接口。Libpcap中使用了BPF(BSD Packet Filter)过滤机制,这部份是基于内核的过滤模块,它使Libpcap具有捕获特定数据包的功能,可以过滤掉网络上不需要的数据包,而只捕获用户感兴趣的数据包。使用Libpcap可以把从网络上捕获到的数据包存储到1个文件中,还可以把数据包信息从文件中读出,读出的结果与从网络上捕获数据包的结果是1样的。,

3.Xplico部署

Xplico目前最新版本为Xplico version 1.1.2(本文实验采取版本为1.1.0),其本身的运行需要其他1些软件的支持例如Apache、Sqlite、tcpdump、tshark等。在安装部署前,首先要准备好,这里以选用Ubuntu 系统。

环境:基础平台OS采取Ubuntu Linux 13.10,安装方法以下:

  1. $sudo apt-get update 
  2. $sudo apt-get install xplico 

注意:需要修改apache端口监听文件/etc/apache2/ports.conf,添加以下内容

  1. NameVirtualHost *:9876 
  2. Listen 9876 

另外还有1种方法可使用集成工具箱DEFT 8.2 Live,用此光盘启动系统后,进入控制台首先启动apache服务器,然后启动xplico服务(顺序反了不能成功)最后启动Xplico的Web界面。

4.利用Xplico

启动Xplico准备工作,首先启动Xplico之前现在交换机端口上做好SPAN然后启动Xplico。

步骤①:启动命令:

  1. #/opt/xplico/script/sqlite_demo.sh 

Web登录方法

阅读器输入地址http://ip:9876

登录页面比较简洁,只要输入用户名和密码就能够,在这里,我们可使用默许的用户名和密码登录XPlico系统"登录系统后,可以看到创建和显示实例的界面。在这个显示页面中,可以看到实例和会话的名称标识、分析开始和结束的时间、pcap文件上传选项、各个利用的分析结果等信息。

至此,Xplico系统使用之前的初始化设置完成了。现在我们选择的是“pcap文件分析模式”,所以我们就能够将Pcap文件提交到xPlico系统,查看和验证其分析结果"这里选取web利用和本地客户端收发邮件这两个例子进行介绍,Xplico的原始系统还支持DNS、FTP等利用的分析.

Xplico中的功能简化归类为4个方面,分别是网站访问、收发邮件、文件同享和即时通讯(MSN、IRC)其中收发邮件包括了POP3/SMTP收发邮件和网页收发邮件。

步骤②:管理员登录

默许使用以下用户名和密码登录系统。

Ø 用户名:admin

Ø 密码:xplico

登录成功后如图2所示。

用开源工具Xplico助力网络应用层数据解码

图2 Xplico控制面板

在控制台右边菜单栏Dissectors上我们能够轻松查看解析组件的分类,如图3所示。

用开源工具Xplico助力网络应用层数据解码

图3 xplico支持的组件

当我们监控时需要调剂为xplico用户名,xplico密码登录系统,首先在Case新建1个实例如图4所示,然后启动监听,xplico监控主界面如图6所示。

用开源工具Xplico助力网络应用层数据解码

图4 新建监控实例

选择start按钮开始实时监测,如图5所示。

用开源工具Xplico助力网络应用层数据解码

图5 开始监测

效果如图6所示。

用开源工具Xplico助力网络应用层数据解码

图6配置Xplico监听

在监听http利用层协议,来自哪一个IP,用户阅读了甚么样的网页信息都能1览无余显示出来,先看看客户端阅读网页时被还原的图片,如图7所示。

用开源工具Xplico助力网络应用层数据解码

图7 Web利用层数据包解码

注意:Skype正愈来愈普及,并遭到愈来愈多的关注,可是skype通讯软件内部使用了AES分组密码和RC4密钥流生成的RSA公钥密码系统,使得它的保密性非常强大,以致于没法被嗅探软件捕获并正确分析,自2012年微软收购了skype后对其内部架构进行了调剂,使得第3方程序也能对视频的聊天内容进行监听和存储。微软的Lync Server通讯件就是基于SIP协议。如图8所示。

用开源工具Xplico助力网络应用层数据解码

图 8 捕获SIP协议通讯

用开源工具Xplico助力网络应用层数据解码

图 9捕捉到ftp账号

图9中展现的是从1台计算机连接到1台FTP服务器的服务要求,和通过XPlico嗅探所传输的数据包。采取网络分析器取得用户名与密码是非常容易的事情(从数据包的内容可以很直接地知道用户名。图10展现了Facebook、MSN及IRC等聊天工具统统都在XPlico监控范围以内,但唯独Skype是个例外。

用开源工具Xplico助力网络应用层数据解码

图10捉MSN信息

在图11示了用Xplico截获两台主机(192.168.150.117和192.168.150.203之间的通讯)的syslog日志通讯内容。

用开源工具Xplico助力网络应用层数据解码

图11获的syslog日志信息

5.深入分析Xplico

由Xplico捕捉的数据包默许存储位置:/opt/xplico/pol_1/sol_1/raw/目录,当程序启动产生pol_1和pol_2两个目录用于承载数据,所以保证/opt分区为独立分区并且空间足够大。在/opt/xplico/pol_1/sol_1/目录下每一个协议生成1个目录,其内容是捕获的数据,如图12。

用开源工具Xplico助力网络应用层数据解码

图 12 xplico分类

例如查看详细FTP协议情况,FTP数据会放在./ftp目录下;在Msn目录下则是嗅探得到的用户对话记录,以此类推。Xplico所存储的重要数据放在/opt/xplico/xplico.db数据库文件中,这是sqlite3文件格式,包括了表视图等信息,但这些信息需要sqlite3的命令才能打开,而非普通的文本。可到http://sqlite.org/download.html下载工具如sqlitebrowser查看。

注意:Berkeley DB是Unix/Linux平台下的高性能的嵌入式数据库系统,这款开源软件比SQL Server、Oracle系统更加简单所以性能很高,经常使用在实时数据库领域,比如在LDAP服务的后台数据库,另外一款开源数据库就是用在xplico下的SQLite, SQLite是1款极为紧凑的可嵌入的数据库,1款能处理巨大数据量的数据库,有关它的详细信息,大家参考《SQLite权威指南》。

用开源工具Xplico助力网络应用层数据解码

图13 SQLite阅读Xlico数据库表结构

用开源工具Xplico助力网络应用层数据解码

图14 查看表内容

本章是实验中的1.1.0版本的xplico 在/opt/xplico/bin/modules下有65个模块,如图15所示。

用开源工具Xplico助力网络应用层数据解码

图15 支持的组件

当前,大量非关键业务流量协议可以自主变换端口,乃至假装自己为其他端口流量,如 QQ、BitTorrent、eMule 等。使用 Iptables 传统的匹配选项没有办法辨认出这些流量。因此,Iptables 提供了良好的扩大接口以实现更强大的功能,网络流量管理系统可在此基础上,开发能够辨认数据包第7层数据内容的分类器。

6.综合利用

用Google Earth监控IRC的通讯IP地址方位,IRC是互联网上经典的通讯工具它采取C/S架构。如图16所示开始抓IRC的通讯协议数据包,发现有两个以被捕获。然后就有Xplico对这类利用进行分析。在图中它正在吧捕捉到的irc.pcap上传到系统进行分析,很快就可以得到IP对应的地理信息位置信息。

用开源工具Xplico助力网络应用层数据解码

图16 捕获2个IRC协议数据包

用开源工具Xplico助力网络应用层数据解码

图17 保存kml信息

步骤①:上传捕获到的irc_1.pcap数据包文件,将geomap生成的irc_1pcap.kml文件保存下来。这是个Google Earth能够辨认的文件里面有IP的经度纬度的数值。如图17所示。

步骤②:用Google Earth打开KML文件便可看到效果,如图18所示。图中由1条绿线连接两台计算机节点。

图18 用谷歌地球软件打开KML效果

http://geolite.maxmind.com/download/geoip/database/

由Xplico系统将抓包取得的irc_1.pcap数据包文件提炼出Kml文件,导入到谷歌地球客户端,通过在kml文件中寻觅坐标并定位出线路的进程。这里的KML全称是Keyhole Markup Language,是1个基于XML语法和格式的文件,主要用来描写地理信息的点,线等信息在其中包括了每一个点的经度(Longitude)和纬度(Latitude)乃至是高度(Altitude)。

注意:GeoIP就是通过来访者的IP,定位它的经纬度、国家/地区、省市乃至街道等位置信息。这里面的技术不算困难,关键在于有个精准的数据库。但是免费提供的maxmind数据库不准,最少国内的IP定位不太精准,但收费服务的效果要比免费的强许多,大家可以到Maxmind网站(www.maxmind.com )查阅相干信息。

从前面的介绍我们可以看到,Xplico系统具有了上网行动审计和分析功能,包括对HTTP协议、SMTP、POP3和FTP协议的支持,并且己经可以推行应用到实际环境中。另外对XPlico系统进行了改进和优化后,新的系统还增加了对国内主流邮箱的WebMail协议的支持,并且添加了对即时通讯软件协议的支持,使其功能更加完善。由于目前Xplico所支持的协议还没有法完全满足市场的需求,这也是Xplico重点改进的地方。首发:http://netsecurity.51cto.com/art/201606/513237.htm

【责任编辑:蓝雨泪 TEL:(010)68476606】


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐