mitmproxy是一個(gè)支持HTTP和HTTPS的抓包程序串纺,類(lèi)似Fiddler、Charles的功能,只不過(guò)它通過(guò)控制臺(tái)的形式操作涧黄。
此外,mitmproxy還有兩個(gè)關(guān)聯(lián)組件赋荆,一個(gè)是mitmdump笋妥,它是mitmproxy的命令行接口,利用它可以對(duì)接Python腳本窄潭,實(shí)現(xiàn)監(jiān)聽(tīng)后的處理挽鞠;另一個(gè)是mitmweb,它是一個(gè)Web程序,通過(guò)它以清楚地觀察到mitmproxy捕獲的請(qǐng)求信认。
本節(jié)中材义,我們就來(lái)了解一下mitmproxy、mitmdump和mitmweb的安裝方式嫁赏。
1. 相關(guān)鏈接
GitHub:https://github.com/mitmproxy/mitmproxy
官方網(wǎng)站:https://mitmproxy.org
PyPI:https://pypi.python.org/pypi/mitmproxy
官方文檔:http://docs.mitmproxy.org
mitmdump腳本:http://docs.mitmproxy.org/en/stable/scripting/overview.html
2. pip安裝
最簡(jiǎn)單的安裝方式還是使用pip其掂,直接執(zhí)行如下命令即可安裝:
pip3 install mitmproxy
這是最簡(jiǎn)單和通用的安裝方式,執(zhí)行完畢之后即可完成mitmproxy的安裝潦蝇,另外還附帶安裝了mitmdump和mitmweb這兩個(gè)組件款熬。如果不想用這種方式安裝,也可以選擇后面列出的專(zhuān)門(mén)針對(duì)各個(gè)平臺(tái)的安裝方式或者Docker安裝方式攘乒。
3. Windows下的安裝
可以到GitHub上的Releases頁(yè)面(鏈接為:https://github.com/mitmproxy/mitmproxy/releases/)獲取安裝包贤牛,如圖1-59所示。
圖1-59 下載頁(yè)面
比如则酝,當(dāng)前的最新版本為2.0.2殉簸,則可以選擇下載Windows下的exe安裝包mitmproxy-2.0.2-windows-installer.exe,下載后直接雙擊安裝包即可安裝沽讹。
注意般卑,在Windows上不支持mitmproxy的控制臺(tái)接口,但是可以使用mitmdump和mitmweb爽雄。
4. Linux下的安裝
在Linux下蝠检,可以下載編譯好的二進(jìn)制包(下載地址https://github.com/mitmproxy/mitmproxy/releases/),此發(fā)行包一般是最新版本挚瘟,它包含了最新版本的mitmproxy和內(nèi)置的Python 3環(huán)境叹谁,以及最新的OpenSSL環(huán)境。
如果你的環(huán)境里沒(méi)有Python 3和OpenSSL環(huán)境乘盖,建議使用此種方式安裝焰檩。
下載之后,需要解壓并將其配置到環(huán)境變量:
tar -zxvf mitmproxy-2.0.2-linux.tar.gz
sudo mv mitmproxy mitmdump mitmweb /usr/bin
這樣就可以將3個(gè)可執(zhí)行文件移動(dòng)到了/usr/bin目錄侧漓。而一般情況下锅尘,/usr/bin目錄都已經(jīng)配置在了環(huán)境變量下,所以接下來(lái)可以直接調(diào)用這3個(gè)工具了布蔗。
5. Mac下的安裝
Mac下的安裝非常簡(jiǎn)單藤违,直接使用Homebrew即可,命令如下:
brew install mitmproxy
執(zhí)行命令后纵揍,即可完成mitmproxy的安裝顿乒。
6. Docker安裝
mitmproxy也支持Docker,其DockerHub的地址為https://hub.docker.com/r/mitmproxy/mitmproxy/泽谨。
在Docker下璧榄,mitmproxy的安裝命令為:
docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy mitmdump
這樣就在8080端口上啟動(dòng)了mitmproxy和mitmdump特漩。
如果想要獲取CA證書(shū),可以選擇掛載磁盤(pán)選項(xiàng)骨杂,命令如下:
docker run --rm -it -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy mitmdump
這樣就可以在~/.mitmproxy目錄下找到CA證書(shū)涂身。(C:\Users\Administrator\.mitmproxy)
另外,還可以在8081端口上啟動(dòng)mitmweb搓蚪,命令如下:
docker run --rm -it -p 8080:8080 -p 127.0.0.1:8081:8081 mitmproxy/mitmproxy mitmweb
更多啟動(dòng)方式可以參考Docker Hub的安裝說(shuō)明蛤售。
7. 證書(shū)配置
對(duì)于mitmproxy來(lái)說(shuō),如果想要截獲HTTPS請(qǐng)求妒潭,就需要設(shè)置證書(shū)悴能。mitmproxy在安裝后會(huì)提供一套CA證書(shū),只要客戶端信任了mitmproxy提供的證書(shū)雳灾,就可以通過(guò)mitmproxy獲取HTTPS請(qǐng)求的具體內(nèi)容漠酿,否則mitmproxy是無(wú)法解析HTTPS請(qǐng)求的。
首先谎亩,運(yùn)行以下命令產(chǎn)生CA證書(shū)炒嘲,并啟動(dòng)mitmdump:(C:\Users\Administrator\.mitmproxy)
mitmdump
接下來(lái),我們就可以在用戶目錄下的.mitmproxy目錄里面找到CA證書(shū)团驱,如圖1-60所示摸吠。
圖1-60 證書(shū)文件
證書(shū)一共5個(gè)空凸,表1-1簡(jiǎn)要說(shuō)明了這5個(gè)證書(shū)嚎花。
表1-1 5個(gè)證書(shū)及其說(shuō)明
名稱(chēng)描述
mitmproxy-ca.pemPEM格式的證書(shū)私鑰
mitmproxy-ca-cert.pemPEM格式證書(shū),適用于大多數(shù)非Windows平臺(tái)
mitmproxy-ca-cert.p12PKCS12格式的證書(shū)呀洲,適用于Windows平臺(tái)
mitmproxy-ca-cert.cer與mitmproxy-ca-cert.pem相同紊选,只是改變了后綴,適用于部分Android平臺(tái)
mitmproxy-dhparam.pemPEM格式的秘鑰文件道逗,用于增強(qiáng)SSL安全性
下面我們介紹一下Windows兵罢、Mac、iOS和Android平臺(tái)下的證書(shū)配置過(guò)程滓窍。
Windows
雙擊mitmproxy-ca.p12卖词,就會(huì)出現(xiàn)導(dǎo)入證書(shū)的引導(dǎo)頁(yè),如圖1-61所示吏夯。
圖1-61 證書(shū)導(dǎo)入向?qū)?/p>
直接點(diǎn)擊“下一步”按鈕即可此蜈,會(huì)出現(xiàn)密碼設(shè)置提示,如圖1-62所示噪生。
圖1-62 密碼設(shè)置提示
這里不需要設(shè)置密碼裆赵,直接點(diǎn)擊“下一步”按鈕即可。
接下來(lái)需要選擇證書(shū)的存儲(chǔ)區(qū)域跺嗽,如圖1-63所示战授。這里點(diǎn)擊第二個(gè)選項(xiàng)“將所有的證書(shū)都放入下列存儲(chǔ)”页藻,然后點(diǎn)擊“瀏覽”按鈕,選擇證書(shū)存儲(chǔ)位置為“受信任的根證書(shū)頒發(fā)機(jī)構(gòu)”植兰,接著點(diǎn)擊“確定”按鈕份帐,然后點(diǎn)擊“下一步”按鈕。
圖1-63 選擇證書(shū)存儲(chǔ)區(qū)域
最后楣导,如果有安全警告彈出弥鹦,如圖1-64所示,直接點(diǎn)擊“是”按鈕即可爷辙。
圖1-64 安全警告
這樣就在Windows下配置完CA證書(shū)了彬坏。
Mac
Mac下雙擊mitmproxy-ca-cert.pem即可彈出鑰匙串管理頁(yè)面,然后找到mitmproxy證書(shū)膝晾,打開(kāi)其設(shè)置選項(xiàng)栓始,選擇“始終信任”即可,如圖1-65所示血当。
圖1-65 證書(shū)配置
iOS
將mitmproxy-ca-cert.pem文件發(fā)送到iPhone上幻赚,推薦使用郵件方式發(fā)送,然后在iPhone上可以直接點(diǎn)擊附件并識(shí)別安裝臊旭,如圖1-66所示落恼。
圖1-66 證書(shū)安裝頁(yè)面
點(diǎn)擊“安裝”按鈕之后,會(huì)跳到安裝描述文件的頁(yè)面离熏,點(diǎn)擊“安裝”按鈕佳谦,此時(shí)會(huì)有警告提示,如圖1-67所示滋戳。
圖1-67 安裝警告頁(yè)面
繼續(xù)點(diǎn)擊右上角的“安裝”按鈕钻蔑,安裝成功之后會(huì)有已安裝的提示,如圖1-68所示奸鸯。
圖1-68 安裝成功頁(yè)面
如果你的iOS版本是10.3以下的話咪笑,此處信任CA證書(shū)的流程就已經(jīng)完成了。
如果你的iOS版本是10.3及以上版本娄涩,還需要在“設(shè)置”→“通用”→“關(guān)于本機(jī)”→“證書(shū)信任設(shè)置”將mitmproxy的完全信任開(kāi)關(guān)打開(kāi)窗怒,如圖1-69所示。此時(shí)蓄拣,在iOS上配置信任CA證書(shū)的流程就結(jié)束了扬虚。
圖1-69 證書(shū)信任設(shè)置
Android
在Android手機(jī)上,同樣需要將證書(shū)mitmproxy-ca-cert.pem文件發(fā)送到手機(jī)上弯蚜,例如直接復(fù)制文件孔轴。
接下來(lái),點(diǎn)擊證書(shū)碎捺,便會(huì)出現(xiàn)一個(gè)提示窗口路鹰,如圖1-70所示贷洲。
圖1-70 證書(shū)安裝頁(yè)面
這時(shí)輸入證書(shū)的名稱(chēng),然后點(diǎn)擊“確定”按鈕即可完成安裝晋柱。