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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

0.概述

Xplico功能不仅是一个网络协议分析工具,还是一个开源的网络取证分析工具(NFAT)。网络取证分析工具是一个科学的捕捉,记录和检测入侵并进行调查的网络流量分析处理系统。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协议再根据不同的端口号和应用层协议的特征进一步细分,使用不同的解析器对报文进行分析和处理,最后得出结论并保存结果。

2. Xplico的数据获取方法

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

3.Xplico部署

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

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

$sudo apt-get update

$sudo apt-get install xplico

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

NameVirtualHost *:9876

Listen 9876

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

4.应用Xplico

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

步骤①:启动命令:

#/opt/xplico/script/sqlite_demo.sh

Web登录方法

浏览器输入地址http://ip:9876

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

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

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

步骤②:管理员登录

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

用户名:admin

密码:xplico

登录成功后如图2所示。

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

  图2 Xplico控制面板

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

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

  图3 xplico支持的组件

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

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

  图4 新建监控实例

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

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

  图5 开始监测

效果如图6所示。

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

  图6配置Xplico监听

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

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

  图7 Web应用层数据包解码

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

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

  图 8 捕获SIP协议通讯

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

  图 9捕捉到ftp账号

图9中展示的是从一台计算机连接到一台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/目录下每个协议生成一个目录,其内容是捕获的数据,如图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是一款极其紧凑的可嵌入的数据库,一款能处理巨大数据量的数据库,有关它的详细信息,大家参考《SQLite权威指南》。

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

  图13 SQLite浏览Xlico数据库表结构

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

  图14 查看表内容

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

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

  图15 支持的组件

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

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所示。图中由一条绿线连接两台计算机节点。

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

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

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

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

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

本文转自d1net(转载)

相关文章
|
6天前
|
数据采集 人工智能 自然语言处理
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
FireCrawl 是一款开源的 AI 网络爬虫工具,专为处理动态网页内容、自动爬取网站及子页面而设计,支持多种数据提取和输出格式。
59 18
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
|
14天前
|
存储 安全 物联网
浅析Kismet:无线网络监测与分析工具
Kismet是一款开源的无线网络监测和入侵检测系统(IDS),支持Wi-Fi、Bluetooth、ZigBee等协议,具备被动监听、实时数据分析、地理定位等功能。广泛应用于安全审计、网络优化和频谱管理。本文介绍其安装配置、基本操作及高级应用技巧,帮助用户掌握这一强大的无线网络安全工具。
43 9
浅析Kismet:无线网络监测与分析工具
|
1天前
|
网络协议 安全 测试技术
Nping工具详解:网络工程师的瑞士军刀
### Nping工具详解:网络工程师的瑞士军刀 Nping是Nmap项目的一部分,支持TCP、UDP、ICMP和ARP等多种协议,用于生成和分析网络数据包。它提供灵活的命令行界面,适用于网络探测、安全测试和故障排除。本文介绍Nping的基础与高级用法,包括发送不同类型的网络请求、自定义TCP标志位、路由跟踪等,并通过实战案例展示其应用。掌握Nping有助于更好地理解和管理网络环境。 (239字符)
27 8
|
16天前
|
存储 监控 网络协议
一次读懂网络分层:应用层到物理层全解析
网络模型分为五层结构,从应用层到物理层逐层解析。应用层提供HTTP、SMTP、DNS等常见协议;传输层通过TCP和UDP确保数据可靠或高效传输;网络层利用IP和路由器实现跨网数据包路由;数据链路层通过MAC地址管理局域网设备;物理层负责比特流的物理传输。各层协同工作,使网络通信得以实现。
|
2月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
78 32
|
2月前
|
机器学习/深度学习
NeurIPS 2024:标签噪声下图神经网络有了首个综合基准库,还开源
NoisyGL是首个针对标签噪声下图神经网络(GLN)的综合基准库,由浙江大学和阿里巴巴集团的研究人员开发。该基准库旨在解决现有GLN研究中因数据集选择、划分及预处理技术差异导致的缺乏统一标准问题,提供了一个公平、用户友好的平台,支持多维分析,有助于深入理解GLN方法在处理标签噪声时的表现。通过17种代表性方法在8个常用数据集上的广泛实验,NoisyGL揭示了多个关键发现,推动了GLN领域的进步。尽管如此,NoisyGL目前主要适用于同质图,对异质图的支持有限。
45 7
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
130 4
|
2月前
|
存储 网络协议 定位技术
OSPF路由汇总:优化网络的强大工具
OSPF路由汇总:优化网络的强大工具
74 1
|
2月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
194 5

热门文章

最新文章

下一篇
开通oss服务