經驗分享 | Burpsuite抓取非HTTP流量
使用Burp對安卓應用進行滲透測試的過程中,有時候會遇到某些流量無法攔截的情況,這些流量可能不是HTTP協議的,或者是“比較特殊”的HTTP協議(以下統稱非HTTP流量)。遇到這種情況,大多數人會選擇切換到Wireshark等抓包工具來分析。下面要介紹的,是給測試人員另一個選擇——通過Burpsuite外掛NoPE Proxy對非HTTP流量抓包分析,並可實現資料包截斷修改、重放等功能。
## NoPE Proxy簡介
NoPE Proxy外掛為Burpsuite擴充套件了兩個新的特性:
1. 一個可配置的DNS伺服器
這個DNS伺服器將所有的域名解析到Burp所在主機或其它預先配置好的主機,幫助我們輕鬆的將所有手機流量傳送到Burp。
2. 非HTTP協議截斷代理
Burp的監聽器開啟允許invisable流量,這些就能使用Burp截斷HTTP流量,Burp無法處理的非HTTP流量,通過NoPE Proxy外掛處理。
## 專案地址
## 安裝
NoPE Proxy專案Github [Relaases](https://github.com/summitt/Burp-Non-HTTP-Extension/releases)頁面下載最新版本的NopeProxy.jar檔案,在Burp的Extender中安裝,安裝完成後Burpsuite新增一個Tab。
## 使用演示
### 演示環境
測試工具:Win 10 + VMware 14 + Kali 2017.3 + Burpsuite 1.7.30
物理機為Win 10,通過VMware執行Kali虛擬機器,Kali通過NAT網路訪問網際網路,Kali的IP為192.168.211.100。在Kali上開啟Burpsuite(我在Windows下測試NoPE Proxy外掛無法抓包,沒細查原因)。
測試物件:夜神模擬器6.0(Android版本4.4.2) + 四川移動掌上營業廳
安卓4.4之後的版本無法將所有流量通過配置的代理伺服器傳輸。
四川移動掌上營業廳在賬號登陸時,Burpsuite無法攔截請求簡訊驗證碼的資料包。
### 手機端配置
證書匯入後,配置手機代理,
### DNS服務配置
選擇需要監聽的網絡卡,填寫序號,然後點選綠色按鈕開始執行DNS服務端。
### Burp Proxy設定
所有埠開啟Invisible。
### 手機端設定
安卓的設定中,修改手機的代理伺服器,填寫Burp監聽IP和埠,DNS伺服器填寫之前設定的192.168.211.100。
### 開啟流量監聽
NoPE Proxy的DNS History標籤下,點選Port Monitor按鈕,開始流量監聽。
手機端開啟APP,NoPE開始接收到DNS解析請求並將所有域名解析到Burpsuite地址。
手機端切換到賬號登陸介面,填寫手機號獲取簡訊驗證碼。
請求地址為wap.sc.10086.cn,右邊的監流量監聽發現獲取簡訊時的通訊埠為18080。
切換到NoPE Server的Server Config標籤,新增流量記錄中發現的地址和埠。
再次傳送獲取簡訊驗證碼請求,可以看到NoPE Proxy已攔截到該請求內容。
TCP流量資料重放。
TCP流量歷史記錄
Automated
## 結語
對安卓手機APP測試遇到Burpsuite無法攔截的流量時,可以試試NoPE Proxy外掛,說不定會有意想不到的收穫。