全網最全的爆款抓包工具的綜合對比

在處理 IP 網絡的故障時,經常使用以太網抓包工具來查看和抓取 IP 網絡上某些端口或某些網段的數據包,並對這些數據包進行分析,定位問題。

在 IMON 項目裏,使用抓包工具抓包進行分析的場景在 EPG 採集、引流模塊和軟終端監看模塊,一般情況下 EPG 採集和引流模塊比較穩定,軟終端監看還涉及 SS5 代理,這部分出問題的幾率比較大,這是就有可能要現場維護人員抓包進行分析、排查、定位問題,確定是網絡問題還是軟件問題,如果是軟件問題則要將抓回的包發給研發解決。

EPG 抓包可分爲對鑑權過程、採集過程抓包驗證,主要是通過通過抓包分析與 IPTV  鑑 權服務器之間的 TCP 交互。

流媒體交互抓包可分爲對組播、點播進行抓包,一般交互的協議分爲 IGMP、RTSP、RTMP 等,組播一般是基於 UDP 的 IGMP 流,點播是基於 RTP 的 RTSP 流或基於 TCP 的 RTMP 流。

軟終端抓包主要是抓取軟終端與 IPTV 服務器交互、SS5 與 IPTV 服務器交互的數據包,一般跟流媒體交互的報文協議差不多,也是分爲組播 IGMP 、點播 RTSP 等協議,不過經過測試發現江蘇的部分組播(可能是用戶不同所致)發送的是 RTSP 的包。

Fiddler

Fiddler 是一個使用 C# 編寫的 http 抓包工具。它使用靈活,功能強大,支持衆多的 http 調試任務,是 web、移動應用的開發調試利器。所以 Fiddler 經常被運用在網絡爬蟲抓包、HTTP API 測試、手機抓包等場景。

推薦原因:

操作簡單,上手容易,學習成本低。

能夠抓取 HTTP/HTTPS 協議的數據包。

支持僞造 CA 證書來欺騙瀏覽器和服務器,從而實現解密 HTTPS 數據包。

不僅支持抓取 PC 瀏覽器的數據包,而且支持抓取手機數據包。

支持設置 “斷點”,從而能夠修改 HTTP 的請求頭信息以及請求體的數據。

Charles

Fiddler 雖然強大且好用,但是不支持 Mac OS 系統。Charles 是 Fiddler 在 Mac 系統上的代替品。目前 Charles 算是 Mac 系統上最好用的抓包工具。它使用 Java 語言開發的,所以安裝以及使用之前,要事先安裝好 Java 環境。另外,它還支持 Windows、Linux 等操作系統。

推薦原因:

Wireshark

Wireshark 也可以在各個平臺都可以安裝使用,不過它的功能側重點和 Charles&Fiddler 有所不同,它主要用來抓取網絡中的所有協議的數據報文,對於分析網絡協議以及網絡問題方面非常專業!

Wireshark 工具的優點:①可以選擇特定的網卡進行流量的捕獲,那麼就只會抓取關心的網卡經過的數據,針對性很強;

②可以抓取所有協議的報文,並且抓取的報文可以完整的以 OSI 七層網絡模型的格式顯示,可以清晰的看到客戶端和服務器之間每一個交互報文,以及每一個數據包的網絡各層級的詳細內容顯示。所以,這個工具抓包非常適合學習和分析網絡協議。

③提供了非常強大的過濾規則。Wireshark 可以提供捕獲前過濾,也可以捕獲後過濾,並且過濾規則非常詳細,可以實現精度和細粒度非常高的包過濾;可以結合 TCPdump 使用,分析線上服務器(Linux 系統)下抓取的數據報文,定位線上問題。

Wireshark 工具的缺點:

如果要靈活的使用它需要具備一定的網絡基礎,對於初學者有一定的難度;

無法分析 https 數據包,由於 wireshark 是在鏈路層獲取的數據包信息,所以獲取到的 https 包是加密後的數據,因此無法分析包內容。當然,我們可以對 https 數據包進行解密, 但是操作具有一定的複雜度,可能要消耗很多時間。

BurpSuite

Burpsuite 工具也是基於 Java 語言開發的,所以它也可以跨各平臺使用,包括 Windows,MacOS 及 Linux等系統平臺。

Burpsuite 可以提供抓包功能,它的工作方式同樣也是在瀏覽器和網站之間做了代理從而實現報文截取的;也能夠修改數據內容並轉發的功能;甚至還可以選擇使用爬蟲爬下網站相關的數據...

但是,它絕對不僅僅是一款抓包工具,**它集成了很多實用的小工具可以完成更加強大的功能,比如 http 請求的轉發、修改、掃描等。**同時這些小工具之間還可以互相協作,在 BurpSuite 這個框架下進行定製的攻擊和掃描方案。

所以這個工具很多功能測試的人員會使用它進行報文抓取和篡改數據,很多安全測試人員會借用它進行半自動的網絡安全審計,開發人員也可以使用它的掃描工具進行網站壓力測試與攻擊測試,功能作用範圍更加廣泛。

**不過它也有自己的缺點,就是不免費!**每個用戶一年的費用爲 299$,使用成本相對來說有點高。

F12

F12 是衆多抓包工具中最簡單、最輕量級的,因爲它是瀏覽器內置的開發者工具來提供捕獲瀏覽器的數據報文的功能。它免安裝,直接打開瀏覽器就可以直接使用,所有使用非常好上手,適合入門級別的新手學習。

它主要針對的是 HTTP 協議和 HTTPS 協議, 可以確認我們的網絡數據包的一個狀態, 通過分析請求和響應報文裏面的內容, 分析出來請求數據和響應數據是否正確, 定位問題是前端問題還是後端問題。

而且 F12 作爲瀏覽器的一部分,是數據收發的一端,抓取到的 HTTPs 報文是可以得到明文數據的;不過因爲只能抓當前瀏覽器的收發報文,層次只能是在應用層 Http(s) 協議,不能抓取其他的數據報文。

雖然 F12 抓包調試也能滿足我們基本的測試工作需求,但是作用面和強大性和其他的抓包工具還是有一定差距的。

TCPdump ●

TCPdump 我上週發過一篇文章專門介紹過,這是專門作用於 Linux 命令行的抓包工具,它可以提供非常多的參數來對網絡數據包進行過濾和定義。

而它抓取到的報文可以直接打印在 Linux 的命令行界面,也可以進行保存成文件,並用 Wireshark 工具打開進行更加細緻的分析。

1、tcpdump 的選項介紹

-a 將網絡地址和廣播地址轉變成名字;

-d 將匹配信息包的代碼以人們能夠理解的彙編格式給出;

-dd 將匹配信息包的代碼以 c 語言程序段的格式給出;

-ddd 將匹配信息包的代碼以十進制的形式給出;

-e 在輸出行打印出數據鏈路層的頭部信息;

-f 將外部的 Internet 地址以數字的形式打印出來;

-l 使標準輸出變爲緩衝型形式;

-n 不把網絡地址轉換成名字;

-t 在輸出的每一行不打印時間戳;

-v 輸出一個稍微詳細的信息,例如在 ip 包中可以包括 ttl 和服務類型的信息;

-vv 輸出詳細的報文信息;

-c 在收到指定的包的數目後,tcpdump 就會停止;

-F 從指定的文件中讀取表達式, 忽略其它的表達式;

-i 指定監聽的網絡接口;

-r 從指定的文件中讀取包 (這些包一般通過 - w 選項產生);

-w 直接將包寫入文件中,並不分析和打印出來;

-T 將監聽到的包直接解釋爲指定的類型的報文,常見的類型有 rpc  (遠程過程調用)和 snmp(簡單網絡管理協議; )

Linux 系統下測試

 軟終端在通過 SS5 代理服務器進行接入 IPTV 環境時,可能需要到 SS5 所在的代理服務器上去抓包,抓包方式就是通過 TCPDUMP 命令來抓取,一般我們把與 IPTV 網口相關的所有包都抓下來存爲 PCAP 文件進行分析。

抓包命令爲 tcpdump -i eth1 -wxx.pcap,這樣可以把抓過來的包保存到 linux 服務器的用戶登錄當前文件夾下,然後通過 SSH 傳到本地進行分析,當然了也可以通過過濾規則抓包,詳見 TCPDUMP 的常用命令。

總結

綜上所述,測試可以用的抓包工具非常多,然而它們各有各的優勢,也有對應的不足,所以根據自己的使用場景,選擇最適合的抓包工具纔是最重要的!

軟件測試面試彙總

微信號:Tester006

QQ : 869120106

公衆號:TestMadman

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/aMj7bS_z5fe-4dgQqCs2jg