ネットワーク・トラフィックの拡大鏡が必要だと感じたことはないだろうか。
Mitmproxyをご紹介します。
HTTP/1、HTTP/2、WebSocketのトラフィックを傍受、変更、分析できるオープンソースの強力なツールです。ウェブ開発者、ネットワーク管理者、理想的なセキュリティ専門家に最適です。
この記事では、Mitmproxyについて知っておく必要があるすべてのことを扱っています(初心者の場合)。 サービスの概要、長所と短所、インストール手順、基本的な使い方、そしてSSL/TLSのセットアップ、Pythonによる自動化、Dockerとの統合といった高度な機能を紹介している。

免責事項: 本資料は、情報提供のみを目的として作成されたものです。いかなる活動(違法行為を含む)、製品、サービスを推奨するものではありません。当社のサービスを利用する場合、またはここに記載されている情報に依拠する場合は、知的財産権法を含む適用法を遵守する責任を負うものとします。当社は、法律で明示的に義務付けられている場合を除き、いかなる方法であれ、当社のサービスまたはここに含まれる情報の使用から生じる損害について一切の責任を負いません。
目次
- Mitmproxyの概要
- それが何なのか。
- 長所と短所
- Mitmproxyの使用例
- Mitmproxyのインストール方法 (ステップバイステップガイド)
- Windows
- Linux:
- macOS:
- Mitmproxyを使い始める
- Mitmproxyを起動する
- ブラウザまたはデバイスの設定
- 設定の確認
- Mitmproxyの使い方
- Mitmproxyでできること
- ウェブインターフェースを使用する
- Mitmdumpを使う
- SSL/TLS証明書の設定
- Pythonでタスクを自動化する
- DockerでMitmproxyを実行する
- FAQセクション
- まとめ
1.Mitmproxyの概要
Mitmproxy is an open-source powerful toolset for intercepting, modifying, and analyzing network traffic (specifically HTTP/1, HTTP/2, and WebSockets). It’s an SSL/TLS-capable intercepting proxy. It is perfect for debugging, testing, and security assessments. 3種類のフレーバーがあり、あらゆるニーズに対応できる:
- Mitmproxy: トラフィックの遮断を詳細に調査できるインタラクティブなコンソール。
- Mitmweb: ChromeのDevToolsのような使いやすいウェブインターフェイス。
- Mitmdump: スクリプト作成と自動化のためのtcpdumpのように動作するコマンドラインツール。
Mitmproxyとはどういう意味ですか?
言葉の最初の部分→MitM(Man-in-the-Middle)とはサイバーセキュリティ用語で、攻撃や手法の一種を指す。ここで攻撃者は、互いに直接通信していると思っている2者間の通信を密かに傍受し、場合によっては改ざんする。プロキシ」(またはミドルマン)という言葉の反対側は、クライアントとサーバーの間の仲介者を指す。これにより、ユーザーはネットワーク・トラフィックを傍受、検査、変更することができる。 Mitmproxyはこのコンセプトを使用しているが、管理された倫理的な方法で行っている。
ミトンプロキシ 長所と短所
どんなツールにも長所と短所があり、このツールも例外ではない。 このセクションでは、このツールの主な利点と落とし穴について説明する。 そうすることで、自分のニーズにぴったり合うかどうかを判断することができる。
| 長所 | 短所 |
| インタラクティブなトラフィック遮断と分析: HTTP/HTTPSトラフィックをリアルタイムでキャプチャ、変更、再生。 | 険しい学習曲線: ネットワークと証明書の知識が必要。 |
| SSL/TLS機能: 安全な傍受のためにSSL/TLS証明書を生成する。 | コマンドライン駆動: CLIに依存することは、GUIユーザーにとっては難しいことかもしれない。 |
| デュアルインターフェースと高度なフィルタリング: 強力なフィルタリングオプションを備えたCLIおよびウェブインターフェース(mitmweb)。 | リソース集約型: 大量のトラフィックに対する高い計算要求。 |
| スクリプト、自動化、カスタムアドオン: カスタムスクリプトやアドオン用のPython API。 | 互換性の問題: 特定のアプリや複雑なセットアップでの問題。 |
| クロスプラットフォーム対応: Windows、Linux、macOSで利用可能。 | セキュリティリスク: 攻撃を避けるために厳重なセキュリティ対策が必要。 |
| フリー&オープンソース: 地域の支援でアクセス可能。 | マニュアル設定: Dockerとクラウド環境の複雑なセットアップ。 |
どのような用途におすすめですか?Mitmproxyの使用例
- アプリケーションのデバッグ Mitmproxy を使用して HTTP リクエストとレスポンスをキャプチャし、分析します。これは、遅いレスポンスやオーバーサイズのペイロードを特定し、遅延を修正するのに役立ちます。トラフィックを傍受して送受信されるデータを確認することは、データ関連の問題のデバッグにも役立ちます。さらに、さまざまなサーバー応答をシミュレートして、アプリがエラーをどのように処理するかを確認するのにも役立ちます。
- 侵入テスト。 Mitmproxyを使用すると、HTTP/HTTPSトラフィックをキャプチャして微調整し、攻撃(SQLインジェクション、XSSなど)を模倣して脆弱性を特定することができます。さらに、リプレイ攻撃やセッション固定などの弱点をテストするために、正当なトラフィックを記録して調整することもできます。この分野では、Mitmproxy は暗号化されたトラフィックを傍受して、証明書の取り扱い、暗号化標準、および全体的な HTTPS セキュリティを検証するのにも役立ちます。
- プライバシー測定。 Mitmproxyは、機密情報が漏えいしていないことを確認するために、トラフィックをキャプチャして検査するのに便利です。また、データの取り扱いと送信がGDPRのようなプライバシー規制に準拠しているかどうかを確認するためにも使用できます。また、サードパーティのサービス分析にも利用されています。アプリとサードパーティ・サービス間のトラフィックを分析し、不要なデータを収集していないことを確認します。
2.Mitmproxy のインストール方法 (ステップバイステップガイド)
a.ウィンドウズステップバイステップインストールガイド
- インストーラーをダウンロードする: Windowsインストーラーは 公式サイト.
- インストーラーを実行します: ダウンロードしたファイルを実行し、画面の指示に従ってインストールを完了します。

- インストールを確認する: コマンドプロンプトを開き、mitmproxy、mitmweb、またはmitmdumpと入力してインストールを確認します。ツールが正しく起動すれば、インストールが成功したことになります。しかし、それでもトラフィックフローはキャプチャされません。

b.Linuxパッケージ・マネージャーの使用とソースのインストール
LinuxにMitmproxyをインストールするには、パッケージマネージャを使うか、ソースからインストールしてください。
パッケージマネージャの使用
特定のディストリビューション用のスタンドアロン・バイナリをダウンロードできます。 公式サイト を使用してこれらのバイナリを見つけるか、各ディストリビューションのパッケージマネージャを使用します。どちらの方法もコンパイル済みのバイナリを提供し、mitmproxy のインストールを簡素化します。それでも、パッケージマネージャは自動依存関係管理とアップデートを提供します。
Arch Linux:
|
1 |
sudo パックマン -S ミトンプロキシ |
フェドラ
|
1 |
sudo ディーンフ install ミトンプロキシ |
Debian/Ubuntu:
|
1 2 |
sudo apt 更新 sudo apt install ミトンプロキシ |

ソースの設置:
お望みであれば、ソースからインストールすることもできます。すべての手順は以下の通りです。
|
1 2 |
ギット クローン https://github.com/mitmproxy/mitmproxy.git cd ミトンプロキシ |
依存関係をインストールしてビルドする:
|
1 2 |
ピップ install -r 要件.テキスト パイソン セットアップ.パイ install |
Pythonパッケージ管理にpipxを使う:
pipxをインストールします:
|
1 2 |
パイソン -m ピップ install --ユーザー ピップス パイソン -m ピップス セキュアパス |
mitmproxy をインストールします:
|
1 |
ピップス install ミトンプロキシ |
c. macOS: Homebrew経由でのインストール
前提条件Homebrewのインストール:まだHomebrewをインストールしていない場合は、以下の手順に従ってください。 ホームブリュー公式サイト.
mitmproxyをインストールする:
|
1 |
醸造 install ミトンプロキシ |

インストールを確認する:
ターミナルを開き、mitmproxy、mitmweb、または mitmdump と入力してインストールを確認します。

Mitmproxyのユーザーで、スケーラビリティとパフォーマンスをお探しですか?
Rapidseedboxはどのように役立ちますか?
高トラフィック量への対応
アップタイムの保証
グローバルなアクセス
匿名性の強化
---
3.Mitmproxy を始める
プラットフォームにインストールしたら、いよいよ使ってみましょう。このセクションでは、基本的な設定とセットアップ、基本的なコマンド、さまざまなデバイスやブラウザでの設定方法を学びます。
注意: デフォルトでは、Mitmproxy は Proxy HTTP.また、http://localhost:8080。
a.Mitmproxy を起動します:
- (ターミナルを開き、「mitmproxy」と入力してコマンドラインインターフェースを起動します。mitmproxy インターフェースは、次のスクリーンショットのように表示されます:

- mitmweb」と入力してウェブインターフェースを起動します。自動的に起動します(以下のスクリーンショットのとおり)。
- 起動しない場合は、ブラウザを開き、http://localhost:8081。

- Mitmdump: スクリプト用のコマンドラインツールを使用するには、「mitmdump」と入力してください。

トラブルシューティング
次のような行があったら "[12:10:38.265] mitmproxy認証局の有効期限が切れました! 以下を実行する...
このエラーメッセージはMitmproxyの認証局(CA)の有効期限が切れていることを示しています。これを解決するには、.mitmproxyフォルダ内のCA関連ファイルを削除して、新しいCAを生成できるようにしてください。期限切れのCAファイルを削除すると、ツールの再起動時に新しいCAが自動的に再生成されます。
この問題を解決する手順は以下の通り:
CA関連ファイルを削除する:
|
1 |
rm -rf ~/.ミトンプロキシ |
Mitmproxyを再起動します:
|
1 |
ミットエムダンプ |

b.ブラウザまたはデバイスを設定します。
使用するには、すべてのトラフィックがMitmproxyを経由するようにブラウザまたはデバイスを設定します。Google Chrome、Mozilla Firefox、Microsoft Edge、またはiOS (iPhone / iPad)やAndroidなどのデバイスでプロキシを設定できます。ただし、プロキシの設定はブラウザやデバイスによって変わることを覚えておいてください。
HTTPプロキシを設定します:
- ブラウザまたはデバイスのネットワーク設定を開きます。HTTPプロキシとは何かご存知ですか?詳しくはこちら (HTTPプロキシ、)との違いを学ぶ。 SOCKS5プロキシ.
- プロキシ設定を見つける(これは通常、詳細設定または接続設定の下にあります)。
- Web HTTPプロキシ(1)をhttp://localhost:8080、または127.0.0.1:8080(2)に設定し、ok(3)をクリックします。

Mitmproxy CAのインストール
- ブラウザを開き、次のページに移動する。 http://mitm.it.Mitmproxy 認証局 (CA) のインストールを指示するページが表示されます。
- 各プラットフォームを検索し、証明書をダウンロードします。ダウンロードがうまくいかない場合は......そのプラットフォームに表示されている指示に従ってください。 http://mitm.it ページを参照されたい。

- mtimproxy CA証明書がインストールされていることは、システムの証明書をチェックすることで確認できます。
- macOSの場合は、「キーチェーンアクセス」>「証明書」と進んでください。SSLが "常に信頼 "に設定されていることを確認する。

WebトラフィックをMitmproxyでルーティングできない場合
- もし、ウェブページ(http://mitm.itというメッセージが表示された場合は、Webトラフィックがmitmproxyによって傍受されていないことを意味します。
- ほとんどの場合、(ブラウザまたはデバイスの)プロキシサーバー設定が正しく設定されていないことが原因です。また、mitmproxyが正しく設定され、実行されていることを確認してください。そしてもう一度試してください。

c.設定を確認する。
- ターミナルを開き、次のコマンドでサービスを開始します:mitmproxy'
- 適切に設定されていれば)起動すると、端末がHTTPとWSSのフローを受信するのがわかる。

4.Mitmproxyの使い方
インターフェイスには以下の情報が表示される。
- フローセクション: 画面のメイン部分には、インターセプトされたHTTPおよびWebSocketフローのリストが表示されます。各行はHTTP/WebSocketのリクエストとレスポンスを表しています。
- コラム
- 時間: リクエストがキャプチャされた時間を表示します。
- プロトコル:使用されるプロトコルを示す(例:HTTP、WebSocketのWS)。
- メソッド:使用されるHTTPメソッド(例:GET)。
- ホストとパス:リクエストのターゲットホストとパス。
- ステータスコード:サーバーが返すHTTPステータスコード。
- 内容:レスポンスにコンテンツがあるかどうかを示します。
- 継続時間:リクエストを処理するのにかかった時間 (ミリ秒単位)。
詳細なフロー情報
- 厳選されたフロー: 下部に、選択されたフローの数と小さなメニューが表示されます。
- 流れだ: 選択されたフローの数を示す。
- プロシキ: アクティブなプロキシ設定を表示します。
- その他のオプション oキーでオプション、eキーでイベント、qキーで終了、その他さまざまなコマンドを使ってフローを操作することができる。(詳細は後述)

- 流れを検査する:
- 矢印キーを使用して、フローのリストを移動します。フローを上下に移動する「>>」マークが表示されます。
- 特定のフローを詳細に調べるには、Enterキーを押します。これにより、リクエストとレスポンスに関するヘッダー、コンテンツ、その他の情報を見ることができます。
- たとえば、ホストがmitm.itのフローを選択しました。このセクションでは、ヘッダーに関するすべての情報が表示されます。また、タブを移動することもできます:リクエスト、レスポンス、その他の詳細。

- フローをフィルタリングする: fを押して、特定のホスト名やリクエストタイプなどのフィルタ条件を入力することで、フローをフィルタリングすることができます。
- 例えば、フィルターを使って「mitm.it」と入力すると、mitm.itのホストだけを見ることができる。

- オプションと設定: o を押すとオプションメニューが開き、Mitmproxy のさまざまな設定を行うことができます。これらのオプションはメソッド、サイズ、時間、URL です。

Mitmproxyの下部メニューオプション
- インターフェイスでは、キャプチャしたフローを操作したり、Mitmproxy の設定を行ったりするためのさまざまなオプションが下のメニューに用意されている。

ここでは、下部メニューに表示されるすべてのオプションについて詳しく説明する:
- 流れだ: 現在ハイライトされているフローを選択して、詳細な検査や操作を行うことができます。
- 選択する: バッチ操作で複数のフローを選択できる。
- 助けてくれ: Mitmproxy を使用するためのヘルプとドキュメントにアクセスします。
- q やめる: セッションを終了する。
- rリプレー 選択したHTTPリクエストを再生します。
- Eイベント: 重要なメッセージやエラーを含む Mitmproxy のイベントログを表示します。
- 輸出する: 選択したフローをファイルにエクスポートして、後で分析したり共有したりできます。
- オプション オプションメニューを開いて設定を行います。
- d 削除する: リストから選択したフローを削除します。
- iインターセプト: リクエストをサーバーに転送する前に、それを修正したり検査したりするために、リクエストをインターセプトする。
- マーク 削除やエクスポートなどのバッチ操作を実行するフローをマークします。
- フィルター ホスト、メソッド、ステータスコードなどの条件に基づいて特定のフローのみを表示するフィルタを適用します。
- e 編集する: 選択したフローのリクエストまたはレスポンスを編集します。
- b セーブボディ: 選択したフローの本文をファイルに保存する。
- z リストを消去します: リストからすべてのフローを消去する。
- フローを保存する: キャプチャしたすべてのフローをファイルに保存する。
- レイアウトを変更する: インターフェイスで異なるレイアウトモードを切り替える。
- Ctrl+F Follow new: 新しいフローがキャプチャされると自動的にフォローし、ハイライト表示します。
Mitmproxyについてもっと知りたいですか?
ヘルプを表示します:コンテキスト依存のヘルプを表示するには、mitmproxy インターフェース内で「?

次はどうする?
さて、あなたは Mitmproxy を使い始めるための知識を得ました。では、次は何でしょう?
- キャプチャを開始する: トラフィックが Mitmproxy を通過すると、HTTP (または WSS) リクエストとレスポンスがリアルタイムで表示されます。インターフェイスを使用して、それらをオンザフライで検査し、変更します。
- トラフィックを分析する: キャプチャされたトラフィック内のパターン、異常、または特定のデータを検索します。このツールを使用すると、各リクエストとレスポンスを細部まで分析できます。
5.Mitmproxyでできること
Mitmproxyは単なるウェブトラフィックインターセプターではありません。以下は、このツールでできるさらに5つのクールなことです。
a.ウェブインターフェースを使用します。
トラフィックの解析と操作を容易にするGUIを備えた内蔵のウェブベース・インターフェースをご利用ください。起動方法は?
- mitmwebを起動します: 'mitmweb'
- ウェブインターフェースを開く: ブラウザでhttp://localhost:8081。
b.Mitmdumpを使う。
Mitmdump は Mitmproxy のインストールに付属しています。これはスクリプトと自動化のために設計された非対話型コマンドラインツールです。
- mitmdumpの開始: mitmdump
- トラフィックをファイルに保存: mitmdump -w outfile
- トラフィックのフィルタリングと再生: mitmdump -nr infile -w outfile "~m post"
c.SSL/TLS証明書の設定
Traffic Interception isn’t complete without handling encrypted traffic. Mitmproxy simplifies SSL/TLS certificate setup so you can peek into HTTPS traffic seamlessly. How to do this?
- このサービスは、遮断されたトラフィックに署名するために使用するCA証明書を作成します。
- ブラウザで http://mitm.it に移動し、指示に従って CA 証明書をデバイスにインストールします。
- CA 証明書をインストールすると、Mitmproxy は HTTPS トラフィックを復号化し、暗号化されていない HTTP トラフィックと同じように安全な通信を検査、変更、分析できるようになります。
d.Pythonでタスクを自動化する
トラフィック分析を次のレベルに引き上げましょう。Mitmproxy の Python API により、タスクを自動化し、トラフィック処理をカスタマイズできます。
- Pythonを使って、ツールの機能を拡張するカスタムアドオンを書きます。例えば、リクエストを自動的に修正したり、特定のトラフィックパターンをログに記録したりできます。
- Python APIを使えば、インターセプトされたトラフィックを完全にコントロールすることができます。ヘッダーを変更したり、リクエストパスを変更したり、カスタムロジックに基づいて特定のリクエストをブロックすることもできます。
e.DockerでMitmproxyを実行する
MimtproxyがDockerでサポートされていることを知って嬉しく思うだろう(コンテナ化された環境を好むなら)。DockerのMitmproxyは最新の開発ワークフローにうまく統合されます。
- Dockerイメージをプルします:DockerHubから公式イメージをダウンロード: docker pull mitmproxy/mitmproxy
- コンテナで実行する: docker run -rm -it -p 8080:8080 mitmproxy/mitmproxy
6.FAQセクション。
1.Mitmproxyを使ってHTTP/HTTPSリクエストを傍受するにはどうすればよいですか?
HTTP/HTTPSリクエストを傍受するには、Mitmproxyをプロキシとして使用するようにブラウザまたはデバイスを設定してください。ターミナルでMitmproxyを起動すると、それを通過するすべてのトラフィックをキャプチャし始めます。その後、これらのリクエストをその場で検査し、変更することができます。詳しくは前のセクションをご覧ください。
2.Mitmproxyは大量のネットワークトラフィックを処理できますか?
はい、Mitmproxy は大量のネットワークトラフィックを扱うように設計されています。しかし、非常に大量のトラフィックを処理する場合は、ハードウェアがその負荷に対応していることを確認することをお勧めします。このツールはパフォーマンスを最適化し、トラフィックを効率的に管理するためのさまざまなオプションを提供します。
3.MitmproxyはSSL/TLS証明書をどのように管理していますか?
Mitmproxy はデバイスにインストールする必要のある認証局 (CA) 証明書を生成します。これによって Mitmproxy は HTTPS トラフィックを傍受し、復号化することができます。CA証明書はオンザフライで他の証明書に署名するために使用されます。これにより、傍受されたトラフィックはブラウザやアプリケーションから信頼されているように見えます。
4.Mitmproxyは安全ですか?
Mitmproxyは(正しく使えば)安全です。ベストプラクティスとして、生成された CA 証明書は信頼できるデバイスと環境でのみ使用されるようにしてください。セキュリティパッチと改良の恩恵を受けるために、Mitmproxy を常に最新版にアップデートしてください。最も重要なことは、トラフィックの傍受は倫理的かつ合法的にのみ行われるべきであるということを常に覚えておくことです。
5.Mitmproxyは異なるホスティング環境やサーバーで使用できますか?
もちろんです。Mitmproxy はさまざまなホスティング環境とサーバーに対応しています。ローカルサーバー、クラウド環境、Dockerコンテナ内でも設定できます。
6.DockerコンテナでMitmproxyを実行するにはどうすればよいですか?
DockerでMitmproxyを実行するには、"docker pull mitmproxy/mitmproxy "コマンドを使用してDockerHubから公式のMitmproxyイメージをプルする。それから、docker run -rm -it -p 8080:8080 mitmproxy/mitmproxyでコンテナを起動する。このセットアップにより、コンテナ化された環境でトラフィックを傍受できるようになる。これは、最新の DevOps ワークフローと統合するのに最適だ。
7.カスタムのトラフィック操作にMitmproxy APIを使用するにはどうすればよいですか?
Mitmproxy は強力な Python API を提供し、トラフィックを操作するためのカスタムスクリプトを書くことができます。この API を使うと、タスクの自動化、リクエストとレスポンスの変更、 複雑なロジックの実装ができます。始めるには、スクリプトを書き、-s フラグの後にスクリプトのパスを続けて Mitmproxy を実行します。
8.MitmproxyはWebスクレイピングに使用できますか?
Mitmproxyはウェブスクレイピングに最適なツールです。ウェブトラフィックをキャプチャして変更することができるので、ウェブページからデータを抽出するのが簡単になります。HTTPリクエストとレスポンスを分析することで、データ収集をより効率的に自動化できます。
9.MitmproxyのTLS/SSL設定のプロセスは何ですか?
Mitmproxy で TLS/SSL を設定するには、デバイス上で CA 証明書を起動する必要があります。これにより Mitmproxy は HTTPS トラフィックを復号化できるようになります。CA 証明書を信頼するようにクライアントを設定し、暗号化されたトラフィックの安全でシームレスな傍受を保証します。
10.Mitmproxyの代替または類似のツールにはどのようなものがありますか?
Mitmproxyの代替(または類似のツール)を検討している場合は、以下を検討してください:
- ユーザーフレンドリーなインターフェースと強力なウェブ・セッション・デバッグ機能を備えたFiddler
- チャールズ・プロキシ SSLプロキシ機能と帯域幅調整機能
- 包括的なWebアプリケーション・セキュリティ・テストのためのBurp Suite。
- OWASP ZAP、オープンソースのセキュリティテストツールを提供
- Wiresharkによる詳細なネットワークプロトコル解析
- Proxyman、ウェブトラフィックのデバッグに最新のインターフェースを提供
- HTTP Toolkitは、HTTP(S)トラフィックの傍受とデバッグをガイド付きセットアップで簡単にします。
7.最後の言葉
Mitmproxy の機能と性能について「表面的に」説明してきました。この記事ガイドは、このすばらしいツールでできることの氷山の一角をカバーしているにすぎません。
このガイドでは、さまざまなオペレーティングシステムへのインストール手順、基本的なセットアップ、使用方法について説明した。さらに、SSL/TLS傍受、Pythonによる自動化、Dockerとの統合といった高度な機能についても掘り下げた。
この知識をもとに、ネットワークトラフィックの解析と操作にMitmproxyを最大限に活用していただければ幸いです。
0コメント