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所示。
圖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所示。
圖2 Xplico控制面板
在控制臺右側菜單欄Dissectors上我們能夠輕松查看解析組件的分類,如圖3所示。
圖3 xplico支持的組件
當我們監控時需要調整為xplico用戶名,xplico密碼登錄系統,首先在Case新建一個實例如圖4所示,然后啟動監聽,xplico監控主界面如圖6所示。
圖4 新建監控實例
選擇start按鈕開始實時監測,如圖5所示。
圖5 開始監測
效果如圖6所示。
圖6配置Xplico監聽
在監聽http應用層協議,來自哪個IP,用戶瀏覽了什么樣的網頁信息都能一覽無余顯示出來,先看看客戶端瀏覽網頁時被還原的圖片,如圖7所示。
圖7 Web應用層數據包解碼
注意:Skype正越來越普及,并受到越來越多的關注,可是skype通訊軟件內部使用了AES分組密碼和RC4密鑰流生成的RSA公鑰密碼系統,使得它的保密性非常強大,以至于無法被嗅探軟件捕獲并正確分析,自2012年微軟收購了skype后對其內部架構進行了調整,使得第三方程序也能對視頻的聊天內容進行監聽和存儲。微軟的Lync Server通信件就是基于SIP協議。如圖8所示。
圖 8 捕獲SIP協議通訊
圖 9捕捉到ftp賬號
圖9中展示的是從一臺計算機連接到一臺FTP服務器的服務請求,以及通過XPlico嗅探所傳輸的數據包。采用網絡分析器獲得用戶名與密碼是非常容易的事情(從數據包的內容可以很直接地知道用戶名。圖10展示了Facebook、MSN及IRC等聊天工具統統都在XPlico監控范圍之內,但惟獨Skype是個例外。
圖10捉MSN信息
在圖11示了用Xplico截獲兩臺主機(192.168.150.117和192.168.150.203之間的通訊)的syslog日志通訊內容。
圖11獲的syslog日志信息
5.深入分析Xplico
由Xplico捕捉的數據包默認存儲位置:/opt/xplico/pol_1/sol_1/raw/目錄,當程序啟動產生pol_1和pol_2兩個目錄用于承載數據,所以保證/opt分區為獨立分區并且空間足夠大。在/opt/xplico/pol_1/sol_1/目錄下每個協議生成一個目錄,其內容是捕獲的數據,如圖12。
圖 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權威指南》。
圖13 SQLite瀏覽Xlico數據庫表結構
圖14 查看表內容
本章是實驗中的1.1.0版本的xplico 在/opt/xplico/bin/modules下有65個模塊,如圖15所示。
圖15 支持的組件
當前,大量非關鍵業務流量協議可以自主變換端口,甚至偽裝自己為其他端口流量,如 QQ、BitTorrent、eMule 等。使用 Iptables 傳統的匹配選項沒有辦法識別出這些流量。因此,Iptables 提供了良好的擴展接口以實現更強大的功能,網絡流量管理系統可在此基礎上,開發能夠識別數據包第七層數據內容的分類器。
6.綜合應用
用Google Earth監控IRC的通訊IP地址方位,IRC是互聯網上經典的通訊工具它采用C/S架構。如圖16所示開始抓IRC的通訊協議數據包,發現有兩個以被捕獲。然后就有Xplico對這種應用進行分析。在圖中它正在吧捕捉到的irc.pcap上傳到系統進行分析,很快就能得到IP對應的地理信息位置信息。
圖16 捕獲2個IRC協議數據包
圖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重點改進的地方。
原文鏈接:http://netsecurity.51cto.com/art/201606/513237.htm