mitmproxy從入門到放棄

mitmproxy
和我們常用的burp
一樣,是一款抓包工具。和其他抓包工具相比,不僅可以抓包 還可以對包進(jìn)行2次過濾 并且偽裝請求 與python 進(jìn)行交互,相比fiddler 和burp更為靈活。本文讓我們一起來學(xué)習(xí)他的使用吧。
mitmproxy工作原理
特性
攔截
HTTP
和HTTPS
請求和響應(yīng)并即時(shí)修改它們;保存完整的
HTTP
對話以供以后重播和分析;重播
HTTP
對話的客戶端;重播先前記錄的服務(wù)器的HTTP響應(yīng);
反向代理模式將流量轉(zhuǎn)發(fā)到指定的服務(wù)器;
macOS和Linux上的透明代理模式;
使用
Python
對HTTP流量進(jìn)行腳本化更改;即時(shí)生成用于攔截的
SSL/TLS
證書
安裝
在kali中已經(jīng)默認(rèn)安裝了。其他系統(tǒng)我們需要安裝python
環(huán)境。然后再執(zhí)行下面命令就行安裝。
查看幫助

抓手機(jī)數(shù)據(jù)包
在終端執(zhí)行命令mitmproxy
會啟動默認(rèn)的8080
端口。如果要改變端口號 使用如下命令
監(jiān)聽的端口號就變成了8888 然后手機(jī)WiFi中設(shè)置手動代理和端口。保存后關(guān)閉WiFi并重新連接。

當(dāng)手機(jī)訪問網(wǎng)頁時(shí),我們在mitmproxy
的窗口中便可以看到相關(guān)的數(shù)據(jù)了。

證書配置
目前我們只能得到http的數(shù)據(jù),對于https的數(shù)據(jù)包,我們需要在手機(jī)端設(shè)置證書。
這里我們已miui14
為例。首先瀏覽器打開mitm.it,下載安卓證書。

默認(rèn)下載位置download
。然后設(shè)置
-安全
-更多安全設(shè)置
-加密與憑證
-安裝證書
-CA證書
選擇剛才下載的證書安裝就行了。

測試
現(xiàn)在我們在手機(jī)瀏覽器中訪問https
的站點(diǎn),便可以看到相關(guān)的數(shù)據(jù)包了。

鍵位操作說明:
上下鍵
選擇數(shù)據(jù)包 回車進(jìn)入詳細(xì)數(shù)據(jù)包q
退出某個(gè)數(shù)據(jù)包z
清除數(shù)據(jù)包按下
q
然后再使用y
完成退出
數(shù)據(jù)包的過濾
當(dāng)有很多數(shù)據(jù)包請求時(shí),我們需要對數(shù)據(jù)包進(jìn)行篩選。在界面中輸入f
,根據(jù)匹配規(guī)則進(jìn)行篩選即可。
如篩選所有域名blog.bbskali.cn
的請求,我們需要輸入規(guī)則~d blog.bbskali.cn

常用過濾表達(dá)式

斷點(diǎn)攔截
輸入字母i
以此來 寫斷點(diǎn)條件
如:域名是blog.bbskal.cn 請求是post
的條件。
~d?blog.bbskal.cn?&?~m?post

然后選擇紅色的數(shù)據(jù)包 點(diǎn)擊回車進(jìn)入,輸入e
可修改。
選擇要修改的字段,如URLencoded form
字段中的password的值。

通過選擇修改的字段,選擇后對應(yīng)的字段會變成灰色。然后輸入e
進(jìn)行編輯值。修改完成后,輸入q
返回到攔截頁面,然后再輸入a
重新加載數(shù)據(jù)。

修改數(shù)據(jù)
利用同上的方法,我們對請求的數(shù)據(jù)斷點(diǎn)抓包。修改response.body
的值,便可以完成數(shù)據(jù)的篡改。

效果如下

后記
這里我們僅對手機(jī)端的數(shù)據(jù)抓包進(jìn)行了簡單的說明。對于電腦端也是同樣的道理,只需要下載相應(yīng)的證書并安裝。即可抓相關(guān)的數(shù)據(jù)包。當(dāng)然這款工具僅僅抓包和攔截?cái)?shù)據(jù)就足夠用了。如果還想處理其他的事務(wù),這時(shí)就需要我們的神器burp
來解決了。
更多精彩文章 歡迎關(guān)注微信公眾號 kali黑客筆記