HTTP プロキシの構成¶
ターゲットがプロキシの背後にある場合、またはテスト時に Mayhem が API に到達するためにプロキシが必要な場合、
mapi
CLI にプロキシ情報を指定できます。
共通プロキシ環境変数のサポートは以下のとおりです。
環境変数 | 説明 |
---|---|
HTTP_PROXY |
HTTP 接続の開始に使用されるアドレス |
HTTPS_PROXY |
HTTPS 接続の開始に使用されるアドレス |
NO_PROXY |
プロキシから除外するネットワーク アドレス/範囲およびドメイン |
ℹ️ Windows コマンド プロンプト (CMD) で
mapi
を実行する場合、 環境変数宣言を引用符 ("..."
) で囲まないことが重要です。❌ BAD
C:\work> SET HTTPS_PROXY="my.outbound.proxy:8888" C:\work> mapi status
✅ GOOD
C:\work> SET HTTPS_PROXY=my.outbound.proxy:8888 C:\work> mapi status
サンプル¶
ファザーと API 間のすべての通信をキャプチャしたいとします。
Mayhem と API の間に Charles Proxy
(デフォルトでは localhost:8888
で待機します) のようなプロキシを配置し、
すべてのトラフィックをインターセプトして記録することができます。
HTTP_PROXY=http://localhost:8888 mapi run <target> ...
ターゲットが https
である場合、HTTPS_PROXY
変数を使用できます。
HTTPS_PROXY=https://localhost:8888 mapi run <target> ...
プロキシ サーバーがユーザー名とパスワードによる認証を要求する場合、 認証情報を含める必要があります。
https_proxy=http://username:password@localhost:8888 mapi run <target> ...
SOCKS5
プロキシ サーバーの場合、URL で socks5
プロトコルを指定する
必要があります。
https_proxy=socks5://socksproxy.example.com
https
トラフィックをプロキシすると、テスト時に CLI が API と通信しようとしたとき、
証明書エラーが発生する場合があります。
これを解決するには、 NO_PROXY
変数を使用して、特定のアドレスがプロキシに
送信されないようにします。例:
HTTPS_PROXY=https://localhost:8888 \
NO_PROXY=app.mayhem.security \
mapi run <target> ...