mitmproxy 環境配置 安裝 例項

2021-08-31 21:26:18 字數 2779 閱讀 3554

mitmproxy是乙個開源免費的https**工具。它有三個使用介面:command line(命令列),web inte***ce(web介面),python api(python程式設計介面)。

它可以用於攔截、檢查、修改和重放web流量,例如http/1、http/2、websockets或任何其他ssl/ tls保護協議。它可以幫助我們對從html到protobuf的各種訊息型別進行修改和解碼,實時攔截特定的訊息,在訊息到達目的地之前對其進行修改,稍後將其重放到客戶端或伺服器上。

簡單介紹:

命令列:

命令列工具包括mitmproxy和mi***ump。

mitmproxy和mi***ump的主要區別在於mitmproxy將嗅探的資料報儲存在記憶體中,適用於小樣本,是實時處理資料報的工具。而mi***ump則是將攔截的資料報匯出來,進行分析,非實時的處理資料報的,類似於tcpdump。

web介面:

mitmweb類似於google devtools,可以攔截**的流量包。

mitmproxy的安裝本身非常簡單,但是我想在ubuntu16.04下使用,在這個過程中踩了非常多的坑,記錄下來為他人鋪路。

首先mitmproxy是僅支援python3.6及其以上版本的,因此首先需要安裝python3.6.然而,ubuntu自帶了python3.5,這裡就涉及到了python多個版本的管理問題,以及pip的安裝及公升級。首先,要先按照這個教程(把python3.6安裝完。

為了攔截資料,我需要在ubuntu上建立熱點hotspot。直接走這個教程:

熱點建立好了,python3.6也安裝完成了,下面一行命令執行完,mitmproxy就安裝完成了。

sudo pip3 install mitmproxy
功能需求:想測試裝置是否對伺服器證書進行了校驗。實現針對無法替換證書的裝置進行中間人攻擊。

環境:一台安裝了mitmproxy(4.0.4)的主機,開啟熱點,充當閘道器(ubuntu16.04)。

乙個物聯網裝置,與伺服器的通訊協議為tcp,sslv3。

這個例項面對的問題是,裝置無法設定**。那麼如何攔截無法設定**的資料報呢?

實際上mitmproxy支援多種**模式,包括正向**,反向**和透明**。

正向**就是我們平常使用filder等抓包工具,需要在android手機上設定**。

而透明**則是客戶端根本不需要知道**伺服器的存在,**伺服器會根據策略攔截並修改使用者a或b的報文,並作為實際的請求方,向伺服器傳送請求。

**的相關知識參考(**正向**、反向**、透明**

所以為了不在裝置上配置**,本文將使用透明**的方式來攔截資料報。

值得注意的是,只是不需要設定**,不是不需要安裝證書哦!雖然裝置不用設定**了,但是如果採用了ssl,要想解密還是需要在裝置上安裝證書的。這是我後面分析失敗的原因。

本文的環境是ubuntu16.04,用它開放熱點,並且讓裝置連線到它開放的熱點上。這樣做的目的是:ubuntu主機的ip位址就作為了裝置的閘道器,才能使用透明**。 ubuntu建立熱點 參考:

建立熱點以後,ubuntu主機進行如下配置:(要記得重啟後需要重新設定奧!)

1.啟用ip**

sysctl -w net.ipv4.ip_forward=1

sysctl -w net.ipv6.conf.all.forwarding=1

2.禁用icmp重定向

sysctl -w net.ipv4.conf.all.send_redirects=0
3.建立乙個iptables規則集,將所需的流量重定向到mitmproxy (將下面的eth0替換為你的網路介面)

iptables -t nat -a prerouting -i eth0 -p tcp --dport 80 -j redirect --to-port 8080

iptables -t nat -a prerouting -i eth0 -p tcp --dport 443 -j redirect --to-port 8080

ip6tables -t nat -a prerouting -i eth0 -p tcp --dport 80 -j redirect --to-port 8080

ip6tables -t nat -a prerouting -i eth0 -p tcp --dport 443 -j redirect --to-port 8080

4.以透明**的模式啟動mitmproxy,其中showhost代表告訴mitmproxy使用host標頭的值進行url顯示

mitmproxy --mode transparent --showhost
下面介紹一些mitmproxy的常用命令

mitmproxy進入以後是這個樣子的:

在這個介面裡:

使用j,k或者上下方向鍵在列表上瀏覽;

使用enter進入資料報檢視詳細資訊,tab鍵進行標籤轉換;

使用q,退出,或返回上級介面;

使用w,儲存flows;

使用g,跳轉到最新請求;

使用g,跳轉到第乙個請求;

使用z,清空所有的flows;

待補充。

如果你想攔截tcp+ssl的話,可以使用如下命令:

mitmproxy --tcp :443

mitmproxy環境搭建

部落格 一.基本介紹 官網 三大元件 mitmproxy mi ump mitmweb 配置流程類似fiddler 二.windows 1.pip install mitmproxy i 2.命令列 mitmproxy 三.linux 1.pip install mitmproxy i 2.命令列 ...

Linux 安裝mitmproxy抓包基礎教程

上傳 rz 安裝包的本地路徑 解壓tar zxvf mitmproxy 5.2.tar.gz 執行.dev.sh 移動檔案 cd venv cd bin cp mi ump mitmproxy mitmweb usr bin 三 安裝證書 先cd mitmproxy 5.2目錄中 cd test m...

phpBB安裝環境配置

apache php jsp mysql phpmyadmin全攻略 windows安裝 win apache php mysql t cat phpmyadmin 所需軟體列表 本配置以下列軟體版本完成 jakarta tomcat 5.0.29.exe apache 2.0.52 win32 x...