mitmproxy設置二級代理


1、應用場景

需要對設備進行監聽抓包,且設備需要通過代理ip與外部進行通信。

2、基本原理

受監聽設備通過mitmproxy代理,然后mitmproxy將設備的請求轉發到與外部交互的代理(下面稱為外層代理),從外部代理返回的響應也會經過mitmproxy再給到設備。相當於在設備與外部代理之間加上了一個mitmproxy代理進行監聽。

3、操作流程

1)將mitmproxy正常抓包所要求的環境配置好,如安裝mitmproxy到監聽設備,安裝證書到受監聽設備並使證書被信任等等。

2)建立操控mitmproxy轉發請求,處理響應的py文件。

import mitmproxy.http
from mitmproxy import ctx

class MitmProxy:
   def __init__(self):
       self.name = 'mitmproxy'

   def request(self, flow):
       """
      處理經過mitmproxy的請求
      """
       address = ('100.10.10.10', 2002)  # 這里輸入的是外層代理
       if flow.live:
           flow.live.change_upstream_proxy_server(address) # 這里將請求轉發到了外部代理

   def response(self, flow):
       """
      處理經過mitmproxy的響應
      """
       request_url = flow.request.url
       print(request_url)


addons = [
   MitmProxy()
]

3)啟動

終端輸入如下命令:
mitmdump --mode upstream:http://100.10.10.10:2002/(即外層代理) -s 2)處建立腳本的路徑

補充:

1)如果想要用梯子作代理,那么梯子軟件啟用的本地端口就是外部代理的端口,ip是localhost;

2)如果需要經常性地變換與外部交互的ip,那么需要搭建隧道代理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM