Skip to content

k-tkym/mitmproxy-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

mitmproxy Docker + WireGuard 透過プロキシ環境

Docker と mitmproxy の WireGuard モード(--mode wireguard)を利用し、OSプロキシ設定を無視するアプリ(Flutter等)のHTTPS通信をネットワーク(VPN)レベルで傍受・解析するための超シンプルなプロキシ環境です。

物理的な専用デバイスや複雑なネットワーク設定(iptables 等)を必要とせず、お使いの PC/Mac 1台とスマホがあればすぐに透過プロキシ環境を構築できます。


🛠️ 前提条件

  • Docker Desktop (Mac / Windows) または Docker (Linux)
  • スマートフォン側: 公式の WireGuard アプリをインストールしておいてください。

🚀 セットアップと起動手順

1. ローカル設定ファイルの作成

リポジトリのルートディレクトリで以下のコマンドを実行し、テンプレートから .env ファイルを作成します。

cp .env.example .env

2. パスワードの設定

作成した .env ファイルをテキストエディタで開き、Web UI のログインパスワード(WEB_PASSWORD)を任意の安全な値に変更します。

# Web UI のログインパスワード
WEB_PASSWORD=your_secure_password

3. コンテナの起動

以下のコマンドを実行します。

docker compose up -d

4. Web UI へのアクセスと QR コードの表示

  1. PC/Mac のブラウザで http://localhost:8081 にアクセスします。
  2. .env に設定したパスワード(デフォルト: password)を入力してログインします。
  3. ログインすると、画面に WireGuard の接続用 QR コード が表示されます!

📱 スマホ側の設定(⚠️ 重要ステップ)

Docker コンテナ内で動作している関係上、mitmproxy から出力される QR コード内の接続先(Endpoint)は、コンテナ内のローカルIP(172.20.0.X:51820 等)になっています。

スマホから Mac/PC の Docker へ正しくパケットを送るため、スキャン後にスマホ側でエンドポイントを手動で書き換える必要があります。

1. QR コードのスキャン

  1. スマホの WireGuard アプリを起動し、右上の「+」ボタンから 「QRコードから作成」 を選択します。
  2. ブラウザ画面上の QR コードをスキャンし、適当なトンネル名(例: mitm-proxy)を入力して一旦保存します。

2. エンドポイントの書き換え(Mac/PC の IP アドレスを指定)

  1. 登録したトンネル(mitm-proxy)の画面を開き、右上の 「編集(Edit)」 をタップします。
  2. [Peer] セクションにある Endpoint 欄を見つけます(デフォルトでは 172.20.0.2:51820 等のコンテナ内IPになっています)。
  3. この値を あなたの PC/Mac の実際のローカル IP アドレス に書き換えます。

    例: 192.168.1.150:51820

  4. 右上の「保存(Save)」をタップし、VPN をオンにします。

💡 ローカル IP アドレスの確認方法

  • Mac: ターミナルで ipconfig getifaddr en0 を実行するか、「システム設定」→「Wi-Fi」→「詳細...」から確認。
  • Windows: コマンドプロンプトで ipconfig を実行し、IPv4 アドレスを確認。
  • Linux: ターミナルで hostname -I を実行。

🔑 CA証明書のインストールと信頼設定(HTTPS通信の解析)

VPN をオンにした状態で、スマホのブラウザ(Safari/Chrome)から以下にアクセスします。

http://mitm.it

画面の指示に従ってプロファイルをダウンロードし、以下の手順で証明書を信頼してください。

  • iOS の場合:
    1. 「設定」→「プロファイルがダウンロード済み」から mitmproxy をインストール。
    2. 「設定」→「一般」→「情報」→「証明書信頼設定」(一番下)を開く。
    3. mitmproxy のスイッチをオン(信頼)にする。
  • Android の場合:
    1. 「設定」→「セキュリティ」→「暗号化と認証情報」→「資格情報のインストール」→「CA証明書」から、ダウンロードした証明書を選択してインストール。

🔍 通信の監視方法

VPN 接続と証明書の設定が完了したら、mitmwebhttp://localhost:8081)のダッシュボードに自動的にトラフィックが流れ込みます。 スマホでアプリを操作すると、SSL/TLS で暗号化されていたはずの通信も含めて、リクエストとレスポンスがリアルタイムに平文で表示されます!


🛑 終了方法

終了する際は、スマホの WireGuard アプリで VPN をオフにし、PC/Mac 側で以下のコマンドを実行してコンテナを停止します。

docker compose down

About

DockerとWireGuard(mitmproxy)によるモバイルアプリ通信解析環境の設定ファイル

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors