使用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插件處理。
## 項目地址
Github:https://github.com/summitt/Burp-Non-HTTP-Extension
## 安裝
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無法攔截請求短信驗證碼的數據包。
### 手機端配置
為了抓取HTTPS流量,手機端需要導入Burpsuite證書,導入方法參考[這篇文章](http://www.freebuf.com/articles/terminal/113940.html)
證書導入后,配置手機代理,
### 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