Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mhr-cfw — ドメインフロンティングリレーで、GAS(Google Apps Script)を経由してトラフィックをルーティングし、Cloudflare Workersに転送します。DPIをバイパスするように設計されています。 | Kitploit
ツール/GitHubGitHub/denuitt1/mhr-cfw
ウェブプロキシと傍受IDS/IPS回避クラウドセキュリティレッドチーミング
GitHubdenuitt1/mhr-cfw

mhr-cfw

ドメインフロンティングリレーで、GAS(Google Apps Script)を経由してトラフィックをルーティングし、Cloudflare Workersに転送します。DPIをバイパスするように設計されています。

リポジトリを見る
4.4k416644ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

MHR-CFW

MITM ドメインフロント型 HTTP リレー + Cloudflare Worker 出口

GitHub

英語ペルシア語

動作の仕組み

1 - GAS + Cloudflare Worker 出口

root@kitploit:~
Client -> Local Relay -> Google/CDN Front -> GAS (Google Apps Script) Relay -> Cloudflare Worker -> Exit
            |
            +-> Shows www.google.com to network DPI filter

2 - GAS + Cloudflare Worker 中間 + 自己ホスト上流フォワーダーリレー出口

root@kitploit:~
Client -> Local Relay -> Google/CDN Front -> GAS (Google Apps Script) Relay -> Cloudflare Worker -> Self-Hosted Upstream Forwarder -> Exit
            |
            +-> Shows www.google.com to network DPI filter

通常の使用では、ブラウザはコンピュータ上で動作するプロキシにトラフィックを送信します。
プロキシはそのトラフィックを Google 向けインフラを経由して送信するため、ネットワークには www.google.com などの許可されたドメインしか見えません。
デプロイしたリレーが Cloudflare Worker を通じて実際の Web サイトを取得し、同じ経路でレスポンスを返します。

つまり、フィルターには通常の Google トラフィックのように見え、実際の宛先はリレーリクエスト内に隠されたままになります。


使用方法

1 - プロジェクトのダウンロードと展開

root@kitploit:~
git clone https://github.com/denuitt1/mhr-cfw.git
cd mhr-cfw
pip install -r requirements.txt

PyPI に直接アクセスできない場合 代わりにこのミラーを使用してください:

root@kitploit:~
pip install -r requirements.txt -i https://mirror-pypi.runflare.com/simple/ --trusted-host mirror-pypi.runflare.com

2 - Cloudflare Worker (worker.js) の設定

  1. Cloudflare ダッシュボード を開き、Cloudflare アカウントでサインインします。
  2. サイドバーから Compute > Workers & Pages に移動します。
  3. Create Application をクリックし、Start with Hello World を選択して Deploy をクリックします。
  4. Edit code をクリックし、エディタ内のデフォルトコードをすべて削除します。
  5. このプロジェクトの worker.js ファイル (deploy/ 内) を開き、すべてコピー して Apps Script エディタに貼り付けます。
  6. 重要: 次の行の Worker を作成したものに変更します:
    root@kitploit:~
    const WORKER_URL = "myworker.workers.dev";
    
  7. Deploy をクリックします。

3 - Google Relay (Code.gs) の設定

  1. Google Apps Script を開き、Google アカウントでサインインします。
  2. New project をクリックします。
  3. エディタ内のデフォルトコードをすべて削除します。
  4. このプロジェクトの Code.gs ファイル (deploy/ 内) を開き、すべてコピー して Apps Script エディタに貼り付けます。
  5. 重要: この行のパスワードを自分だけが知るものに変更し、Worker URL も自分の Cloudflare Worker に置き換えます:
    root@kitploit:~
    const AUTH_KEY = "your-secret-password-here";
    const WORKER_URL = "https://myworker.workers.dev";
    
  6. Deploy → New deployment をクリックします。
  7. タイプとして Web app を選択します。
  8. 設定:
    • Execute as: Me
    • Who has access: Anyone
  9. Deploy をクリックします。
  10. デプロイメント ID(長いランダム文字列)をコピーします。次の手順で必要になります。

⚠️ 手順3で設定したパスワードを覚えておいてください。以下の設定ファイルで同じパスワードを使用します。

4 - 実行

run.bat(Windows)または run.sh(Linux)をクリックしてリレーを開始します。

初回実行時にはセットアップウィザードが表示され、AUTH_KEY と Google Apps Script のデプロイメント ID を入力する必要があります。
HTTP プロキシが 127.0.0.1:8085 で動作しているというメッセージが表示されます。

5 - 使用方法

v2rayN クライアント を使用して socks5 プロキシを設定することを推奨します。

FoxyProxy の Chrome 拡張機能 または Firefox 拡張機能 を使ってブラウザでこのプロキシを使用することもできます。

6 - 接続をテストする

ブラウザで ipleak.net を開くと、IP アドレスが Cloudflare のものに設定されているはずです。

image

7 - 追加の使用ガイド

仮想マシン内でプロキシを使用する

仮想マシン(VM)を実行すると、ホストとは分離されたネットワーク環境で動作します。デフォルトでは、VM はホストマシンの localhost で動作しているサービス(このプロキシを含む)に直接アクセスできません。

これを修正するには、ハイパーバイザーがホストに割り当てるゲートウェイ IP を調べ、VM 内でプロキシを設定するときに localhost の代わりに使用します。

例:VirtualBox(NAT モード)

ホストには VM 内から常に 10.0.2.2 でアクセスできます。プロキシを次のように設定します:

root@kitploit:~
export http_proxy="http://10.0.2.2:8085"
export https_proxy="http://10.0.2.2:8085"
export all_proxy="socks5://10.0.2.2:8085"

永続的にするには、上記の行を ~/.bashrc に追加し、source ~/.bashrc を実行します。

このプロキシは SSL インスペクションを行うため、証明書エラーが表示される場合があります。付属の ca.crt をインストールして修正します:

root@kitploit:~
sudo cp ca.crt /usr/local/share/ca-certificates/ && sudo update-ca-certificates

ローカルネットワーク経由でプロキシを共有する(例:モバイルデバイス)

プロキシをスマートフォンや同じネットワーク上の他のデバイスで使用できます。追加のソフトウェアは不要です。

1. ホスト IP を確認する

root@kitploit:~
# Windows
ipconfig

# Linux / macOS
ip addr

ルーターに接続されているアダプタの IP を探します(例:192.168.1.8)。

2. ポートを転送する(Windows のみ、サービスが localhost にバインドされている場合)

管理者として CMD を実行:

root@kitploit:~
netsh interface portproxy add v4tov4 listenaddress=192.168.1.8 listenport=8085 connectaddress=127.0.0.1 connectport=8085
netsh advfirewall firewall add rule name="Proxy 8085" dir=in action=allow protocol=TCP localport=8085

3. スマートフォンでプロキシを設定する

スマートフォンを同じ Wi-Fi に接続し、手動でプロキシを設定します:

  • ホスト: ホスト IP(例:192.168.1.8)
  • ポート: 8085

Android の場合:設定 → Wi-Fi → ネットワークを長押し → プロキシ → 手動 iPhone の場合:設定 → Wi-Fi → (ネットワーク) → HTTP プロキシ → 手動

4. CA 証明書をインストールする

ca.crt をスマートフォンに転送し、次の手順でインストールします:

  • Android: 設定 → セキュリティ → 証明書のインストール → CA 証明書
  • iPhone: ファイルを開く → プロファイルをインストール → 設定 → 一般 → プロファイル → 証明書信頼設定 → 有効にする

オプション:上流フォワーダーによる安定した出口 IP

CAPTCHA(Cloudflare Turnstile / ボットチャレンジ、reCAPTCHA、hCaptcha)は、チャレンジを解決した IP にトークンをバインドします。Cloudflare Workers はリクエストごとに異なるエッジ IP から出口するため、チャレンジを解決してもターゲットサイトで検証に失敗します。このオプションのアドオンを使用すると、Worker が安定した IP の VPS 上で動作する小さな Node.js サーバーを通じてすべての fetch() 呼び出しを転送し、ターゲットサイトに対して一貫した出口アドレスを提供します。

これが必要なケース

  • Cloudflare のボットチャレンジの背後にあるサイトで、チャレンジページに何度も戻される。
  • ログインフォームで reCAPTCHA/hCaptcha を解決した後に拒否される。
  • リクエスト間で Cookie の連続性が必要(例:cf_clearance)。

これらの問題に遭遇しない場合は設定不要です。既存のまま Worker は動作します。

別のサーバーが必要な理由

Cloudflare Workers は安定した送信元 IP を公開しません。fetch() は Cloudflare エッジ IP のローテーションプールを通じて出口するため、IP にバインドされた CAPTCHA トークンが破綻します。Cloudflare の静的出口オプション(BYOIP、Egress Workers)はエンタープライズ向けです。そのため、静的 IP を持つ小さな VPS が実用的な回避策です。フォワーダーは単に安定したアドレスから fetch() を再発行する軽量プロキシです。

1. VPS にフォワーダーをデプロイする

リファレンス実装は deploy/upstream-forwarder/upstream_forwarder.js です。
Node 18+ と依存関係は不要です。TLS を設定した Caddy または nginx の背後で実行します。Worker は非 HTTPS のフォワーダー URL を拒否します。

root@kitploit:~
# VPS 上(Ubuntu/Debian の例):
sudo apt install -y nodejs   # 18+ である必要があります
export AUTH_KEY="some-long-random-string-at-least-32-chars"
export PORT=8787
node deploy/upstream-forwarder/upstream_forwarder.js

Caddy で自動 TLS を設定:

root@kitploit:~
forwarder.example.com {
    reverse_proxy 127.0.0.1:8787
}

簡単な動作確認:

root@kitploit:~
curl -X POST https://forwarder.example.com/fwd \
  -H "x-upstream-auth: $AUTH_KEY" \
  -H "content-type: application/json" \
  -d '{"u":"https://httpbin.org/ip","m":"GET","h":{}}'

デコードされたレスポンスボディには VPS の IP が表示されるはずです。

2. Worker にフォワーダーを接続する

Cloudflare ダッシュボード → 該当 Worker → Settings → Variables and Secrets:

保存して Worker を再デプロイします。

3. 確認

プロキシ経由で https://httpbin.org/ip にアクセスすると、VPS の IP が表示されるはずです(Cloudflare の IP ではありません)。その後、動作していなかった CAPTCHA 保護されたサイトに再アクセスすると、チャレンジが検証されるようになります。

フォワーダーは認証を必須とします。AUTH_KEY がないと起動しません。URL とキーを知っている人は誰でもリレーとして使用できるため、両方とも秘密にしてください。

4. フォワーダーを特定のホストに限定する(オプション)

デフォルトでは Worker が処理するすべてのリクエストがフォワーダーを経由するため、無関係なトラフィックでも VPS の帯域幅を消費します。安定した出口 IP が必要なサイトのみ VPS 経由にするには、config.json の forwarder_hosts にリストします。構文は bypass_hosts と同じです(完全なホスト名または .suffix)。マッチしなかったものは Worker 上で直接 fetch() にフォールバックします。

root@kitploit:~
{
   ...
   "forwarder_hosts": [
       "example.com",
       ".cf-protected-suffix"
   ]
   ...
}

リストを空にするかキーを削除すると、従来の「すべてを転送する」動作を維持します。


免責事項

MHR-CFW は教育、テスト、研究目的でのみ提供されます。

  • 無保証で提供: 本ソフトウェアは「現状のまま」提供され、商品性、特定目的への適合性、権利非侵害を含む明示または黙示の保証は一切ありません。
  • 責任の制限: 開発者および貢献者は、本プロジェクトの使用または使用不能に起因する直接的、間接的、偶発的、結果的、その他の損害について一切の責任を負いません。
  • ユーザーの責任: 制御されたテスト環境外で本プロジェクトを実行すると、ネットワーク、アカウント、プロキシ、証明書、または接続されたシステムに影響を与える可能性があります。インストール、設定、使用に関する責任はすべてユーザーにあります。
  • 法的遵守: 本ソフトウェアを使用する前に、すべての現地、国内、国際的な法律および規制を遵守する責任はユーザーにあります。
  • Google サービスの遵守: Google Apps Script やその他の Google サービスを本プロジェクトと共に使用する場合、Google の利用規約、許容される使用ルール、割り当て、プラットフォームポリシーを遵守する責任はユーザーにあります。誤用により Google アカウントまたはデプロイメントが停止または終了される可能性があります。
  • ライセンス条件: 本ソフトウェアの使用、複製、配布、改変はリポジトリのライセンスに従います。これらの条件外での使用は禁止されています。

貢献者

  • 特に onlymaj に感謝します。

出典

  • このプロジェクトは MasterHttpRelayVPN を基にしています。

ライセンス

MIT

ツールをダウンロード
名前タイプ値
UPSTREAM_FORWARDER_URLSecrethttps://forwarder.example.com/fwd
UPSTREAM_AUTH_KEYSecretVPS で設定したものと同じ AUTH_KEY
UPSTREAM_FAIL_MODEVariableclosed(デフォルト)— フォワーダー障害時に 502 を返す。open で直接 fetch にフォールバック。
UPSTREAM_TIMEOUT_MSVariable(オプション)デフォルト 25000