1、抓包工具概述
http/https
fiddler/burpsuite/charels
socket/tcp
抓網卡
wireshark/sniffer
防止DL
小米wifi+wpe
2、fiddler安裝及環境配置
(1)fiddler工具介紹
Fiddler是一款非常流行並且實用的http抓包工具,它的原理是在本機開啓了一個http的DL服務器,然後它會轉發所有的http請求和響應,因此,它比一般的firebug或者是chrome自帶的抓包工具要好用的多。不僅如此,它還可以支持請求重放等一些高級功能。顯然它是可以支持對手機應用進行http抓包的。本文就來介紹下如何用fiddler對手機應用來抓包。
fiddler工具安裝非常簡單,這裏就不説了。
fiddler工具抓包環境配置。
(2)啓動Fiddler,打開菜單欄中的 Tools > Fiddler Options,打開“Fiddler Options”對話框。
(3)在Fiddler Options”對話框切換到“Connections”選項卡,然後勾選“Allow romote computers to connect”後面的複選框,然後點擊“OK”按鈕。
(4)在本機命令行輸入:ipconfig,找到本機的ip地址。
(5)打開android設備的“設置”->“WLAN”,找到你要連接的網絡,在上面長按,然後選擇“修改網絡”,彈出網絡設置對話框,然後勾選“顯示高級選項”。
(6)在“DL”後面的輸入框選擇“手動”,在“DL服務器主機名”後面的輸入框輸入電腦的ip地址,在“DL服務器端口”後面的輸入框輸入8888,然後點擊“保存”按鈕。
(7)然後啓動android設備中的瀏覽器,訪問百度的首頁,在fiddler中可以看到完成的請求和響應數據。
(8)抓不到包原因
- ①如網遊副本,有的就是沒有包。
- ②fiddler只能抓HTTP/HTTPS,如果是socket抓不到的。
- ③在動態調試時,沒有走到發包的地方。
3、burpsuite
(1)burpsuite工具介紹
BurpSuite是一款基於java開發的抓包工具,能夠抓取http/https/websocket協議的數據包。
burpsuite工具安裝非常簡單,這裏就不説了。
burpsuite工具抓包環境配置。
(2)啓動burpsuite,簡單介紹的來介紹一下burpsuite工具的菜單
欄。
Target(目標):顯示目標目錄結構的的一個功能
Proxy(DL):是一個攔截HTTP/S的DL服務器(抓包),作為一個在瀏覽器和目標應用程序之間的中間人,允許你攔截,查看,修改在兩個方向上的原始數據流。
Spider(爬蟲):是一個應用智能感應的網絡爬蟲,它能完整的枚舉應用程序的內容和功能。
Scanner(掃描器)[僅限專業版]:是一個高級的工具,執行後,它能自動地發現web 應用程序的安全漏洞。
lntruder(入侵):是一個定製的高度可配置的工具,對web應用程序進行自動化攻擊,如:枚舉標識符,收集有用的數據,以及使用fuzzing 技術探測常規漏洞。
Repeater(中繼器):是一個靠手動操作來補發單獨的HTTP 請求,並分析應用程序響應的工具。
Sequencer(會話):是一個用來分析那些不可預知的應用程序會話令牌和重要數據項的隨機性的工具。
Decoder(解碼器):是一個進行手動執行或對應用程序數據者智能解碼編碼的工具。
Comparer(對比):是一個實用的工具,通常是通過一些相關的請求和響應得到兩項數據的一個可視化的“差異”。
Extender(擴展):可以讓你加載Burp Suite的擴展,使用你自己的或第三方代碼來擴展Burp Suit的功能。
(3)Proxy模塊
Intercept選項
Forward:用於發送數據。當把所需要的HTTP請求編輯編輯完成後,手 動發送數據。
Drop:將該請求包丟棄。
Intercept is off/on:攔截開關。當處於off狀態下時,BurpSuite會 自動轉發所攔截的所有請求;當處於on狀態下時,BurpSuite會將所有 攔截所有符合規則的請求並將它顯示出來等待編輯或其他操作。
Action:功能菜單,與右鍵菜單內容相同,在這可以將請求包發送到其 他的模塊或者對數據包進行其他的操作。
HTTP hisstory選項
(請求索引號)、Host(主機)、Method(請求方式)、URL(請求地址)、
Params(參數)、Edited(編輯)、Status(狀態)、
Length(響應字 節長度)、MIME type(響應的MLME類型)、
Extension(地址文件擴展名)、Title(頁面標題)、Comment(註釋)、
SSL、IP(目標IP地址)、Cookies、Time(發出請求時間)、
Listener port(監聽端口)。
WebSockets history選項
這個版塊用於記錄WebSockets的數據包,是HTML5中最強大的通信功能,定義了一個全雙工的通信信道,只需Web上的一個 Socket即可進行通信,能減少不必要的網絡流量並降低網絡延遲。
Options選項
DL偵聽器是偵聽從您的瀏覽器傳入的連接本地HTTPDL服務器。它允許您監視和攔截所有的請求和響應,並且位於BurpProxy的工作流的心臟。默認情況下,Burp默認監挺127.0.0.1地址,端口8080。要使用這個監聽器,你需要配置你的瀏覽器使用127.0.0.1:8080作為DL服務器。此默認監聽器是必需的測試幾乎所有的基於瀏覽器的所有Web應用程序。
add:添加一個新的DL地址。
binding:新建一個DL,bind to port-綁定端口號,bind to address -綁定ip地址。
request hadning:這些設置包括選項來控制是否BurpSuite重定向通過此偵聽器接收到的請求:
- Redirect to host -如果配置了這個選項,Burp會在每次請求轉發到指定的主機,而不必受限於覽器所請求的目標。需要注意的是,如果你正使用該選項,則可能需要配置匹配/替換規則重寫的主機中的請求,如果服務器中,您重定向請求預期,不同於由瀏覽器發送一個主機頭。
-Redirect to port - 如果配置了這個選項,Burp會在每次請求轉發到指定的端口,而不必受限於瀏覽。
-Force use of SSL - 如果配置了這個選項,Burp會使用HTTPS在所有向外的連接,即使傳入的請求中使用普通的HTTP。您可以使用此選項,在與SSL相關的響應修改選項結合,開展sslstrip般的攻擊使用Burp,其中,強制執行HTTPS的應用程序可以降級為普通的HTTP的受害用户的流量在不知不覺中通過BurpProxyDL。
Certificate:這些設置控制呈現給客户端的SSL服務器的SSL證書。
Generate CA-signed per-host certificate-這是默認選項。安裝後,BurpSuite創造了一個獨特的自簽名的證書頒發機構(CA)證書,並將此計算機上使用,每次BurpSuite運行。當你的瀏覽器發出SSL連接到指定的主機,Burp產生該主機,通過CA證書籤名的SSL證書。您可以安裝BurpSuite的CA證書作為在瀏覽器中受信任的根,從而使每個主機的證書被接受,沒有任何警報。您還可以導出其他工具或Burp的其他實例使用CA證書。
Generate a CA-signed certificate with a specific hostname-這類似於前面的選項;然而,Burp會產生一個單一的主機證書與每一個SSL連接使用,使用您指定的主機名。在進行無形的DL時,此選項有時是必要的,因為客户端沒有發送連接請求,因此Burp不能確定SSL協議所需的主機名。你也可以安裝BurpSuite的CA證書作為受信任的根。
Use a custom certificate-此選項使您可以加載一個特定的證書(在PKCS#12格式)呈現給你的瀏覽器。如果應用程序使用它需要特定的服務器證書(例如一個給定序列號或證書鏈)的客户端應該使用這個選項。
edit:編輯選中的DL地址。相關選項類似於add,不再敍述。
remove:刪除選中DL地址。
(3)配置burpsuite抓包環境
打開burpsuite,切換到Proxy,然後切換到下面的Options選項,然後點擊add,然後配置好端口,ip選擇本機的ip地址,然後點擊ok添加。
將running框勾選上
4)下載burpsuite證書
在電腦端使用瀏覽器訪問設置的DLip:端口,下載burpsuite證書,比如我上面的ip為192.168.0.119,端口為8080,就訪問
http://192.168.0.119:8080/然後去下載證書。
點擊CA certificate下載burpsuite的證書,保存證書文件。
(5)安裝證書
找到下載的cacert.der證書文件,選中該文件右鍵選擇“安裝證書”選項,之後一路點擊“下一步”就安裝完成了。安裝完成後按“win+R”輸入“certmgr.msc ”命令打開證書管理器,找到“中間證書頒發機構”下的“證書”選項,點擊打開找到“PortSwigger CA”選項右鍵“所有任務”=>“導出”,將會彈出證書導出嚮導對話框,直接點擊下一步,選擇要導出的證書格式為“DER 編碼二進制X.509(.CER)(D)”選項,然後一路點擊下一步保存證書文件。這樣操作的原因是因為手機上面識別不了burpsuite默認導出的證書格式,要轉換一下。
導出之後,將證書放到手機的sd卡中,然後進入手機設置,安全,從 sd卡安裝,然後選擇放到手機的證書文件,如果手機沒有設置鎖屏密碼,這裏會要求設置手機鎖屏密碼。不同的手機導入略微有些不同,但是都是在設置,安全設置裏面去導入證書。
點擊從sd卡安裝就可以選擇sd卡中的證書文件,然後安裝了。
(6)配置DL服務器
進入手機設置,將手機和wifi連接到同一個路由器上面,然後長按當前連接的wifi,選擇修改網絡,滑到最下面,勾選顯示高級選項,然後選擇DL設置為手動DL服務器主機名字填電腦ip,端口填你剛剛設置的端口。然後確定,就設置成功了。具體的操作和fiddler工具是一樣的,在這裏就不截圖了。
設置好之後便可以抓取https的數據包了。
上面講的都是PC端的抓包工具。
接下來我們來了解一下手機端
常用的兩款抓包工具,HttpCanary和packetcapture。
4、HttpCanary
HttpCanary是一款功能強大的HTTP/HTTPS/HTTP2網絡包抓取和分析工具,你可以把他看成是移動端的Fiddler或者Charles,但是HttpCanary使用起來更加地簡單容易,因為它是專門為移動端設計的!
最重要的是:無需root權限!無需root權限!無需root權限!
(1)支持協議
HTTP1.0, HTTP1.1, HTTP2.0, WebSocket 和 TLS/SSL。
(2)注入功能
HttpCanary支持修改請求和響應數據,然後提交到客户端或服務端,也就是注入功能。HttpCanary提供了兩種不同的注入模式:靜態注入和動態注入。使用這兩種模式,可以實現對請求參數,請求/響應頭,請求/響應體,響應行的注入。您還可以創建不同需求的注入器,因為靜態注入可以支持多個注入器同時工作。
(3)數據瀏覽
- HttpCanary具有多種不同的視圖瀏覽功能。
- Raw視圖:可以查看原始數據;
- Text視圖:以Text的形式查看請求/響應體內容;
- Hex視圖:以Hex的形式查看請求/響應體內容;
- Json視圖:格式化Json字符串,支持節點的展開、關閉和複製等操作;
- 圖片視圖:可以預覽BPM、PNG、GIF、JPG、WEBP等格式的圖片內容;
- 音頻視圖:可以播放AAC、WAC、 MP3、OGG、MPEG等格式的音頻內容;
(4)內容總覽
HttpCanary支持瀏覽一個網絡請求的總體概況,包括URL、HTTP協議、HTTP方法、響應碼、服務器Host、服務器IP和端口、Content-Type、Keep-Alive、時間信息、數據大小信息等。
(5) 數據篩選和搜索
HttpCanary提供了多維度的數據過濾器和搜索功能,比如通過應用、Host、協議、方法、IP、端口、關鍵詞搜索過濾等。
(6)屏蔽設定
HttpCanary可以對網絡請求的數據發送以及服務器響應進行屏蔽操作,這個功能可以非常方便地幫助開發者進行Reset API的調試。
(7)插件
HttpCanary提供了豐富的擴展插件,包括Host屏蔽、Mime-Type屏蔽、圖片音頻視頻下載、請求性能統計、微信定位漂移等。按照設計,開發者還可以開發自己的Plugin集成進HttpCanary中,也可以安裝擴展Plugin(功能尚未開放)。
5、Packet Capture
Packet Capture 一款依託安卓系統自身V某N來達到免Root抓取數據包的應用程序。
Packet Capture一個使用SSL網絡解密的 捕獲數據包/網絡嗅探 工具,雖然它的功能並不豐富,但是當你開發一個應用時,卻不得不説它是一款強大的工具。
特點:捕獲網絡數據包,並記錄它們使用中間人技術對SSL解密,無須root權限。
小結
1、常用抓包工具的介紹及適用場景。
2、fiddler工具的安裝及抓包環境配置。
3、burpsuite工具的安裝及使用,抓包環境配置、證書安裝。
4、詳細介紹了兩款常用的手機端抓包工具,HttpCanary和Packet Capture。