以Mitmproxy代理監測手機App封包數據
Mitmproxy運作方式 Mitmproxy是一個開源代理應用程式,這個工具允許使用典型的中間人攻擊(MITM)攔截任何HTTP(S)用戶端(例如行動或桌面瀏覽器)和Web伺服器之間的HTTP和HTTPS連接。與其他代理伺服器例如Squid類似,它接受來自用戶端的連接並將其轉發到目標伺服器。但是,其他代理伺服器通常是透過快取來做內容過濾或者速度優化,而攻擊者的目標是讓攻擊者能夠實時監控、抓取和更改這些網路連接。 為了能夠監測到HTTPS連接,mitmproxy會扮演成一個憑證授權中心,但是此憑證授權並非值得信賴的:不是授予憑證給真正的個人或組織,而是透過mitmproxy動態地生成憑證並授予給任何所需的伺服器主機。 要使這種攻擊能正確執行,必須滿足以下條件: ⬧閘道位址為Mitmproxy主機位址(適用於HTTP和HTTPS):運行mitmproxy的伺服器必須能夠攔截IP封包,也就是它必須位於封包路徑的某處。 最簡單的方法是將用戶端設備中的預設閘道更改為mitmproxy伺服器位址。 ⬧Mitmproxy CA能被裝置信任(僅限HTTPS):為了讓HTTPS代理能正常運作,用戶端必須信任mitmproxy產生的CA,因此必須將CA憑證檔新增到用戶端的儲存設備(例如手機記憶卡或硬碟)並安裝此憑證至手機或電腦。 安裝並執行mitmproxy 安裝mitmproxy mitmproxy的安裝非常簡單,因為是使用Python軟體打包管理系統(pip)所打包的。其他的mitmproxy依賴包則可以用apt-get來安裝,以下為安裝mitmproxy主程式與相關依賴包的指令。 1.sudo apt - get install python3 - dev python3 - pip libffi - dev libssl - dev #安裝mitmproxy依賴包 2.sudo pip3 install mitmproxy #安裝mitmproxy主程式 啟用IP轉發和通訊傅重導向 mitmproxy應用程式內部在TCP port 8080上運行,但外部必須監聽 port 80/HTTP 和 port443/HTTPS。 因此,若要監聽被送來的IP封包