Az - Front Door

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

RemoteAddr Bypass

This blog post は、Azure Front Door でネットワーク制限を設定する際に RemoteAddrSocketAddr に基づいてフィルタリングできることを説明しています。主な違いは、RemoteAddr が HTTP ヘッダ X-Forwarded-For の値を実際に使用するため、非常に簡単に回避できる点です。

このルールを回避するには、自動化ツールを使用して brute-force IP addresses を試行し、有効なものが見つかるまで繰り返すことができます。

これは Microsoft documentation に記載されています。

Credential Skimming via WAF Custom Rules + Log Analytics

Azure Front Door (AFD) の WAF Custom Rules と Log Analytics を組み合わせて、WAF を通過する平文の資格情報(またはその他のシークレット)を取得できます。これは CVE ではなく、WAF ポリシーを変更してログを読める者による正当な機能の悪用です。

Key behavior enabling this:

  • AFD WAF Custom Rules は、リクエスト要素(headers や POST parameters を含む)にマッチできます。
  • Custom Rule がアクションに Log traffic only を使用すると、評価は継続されトラフィックは通常通り進行します(no short-circuit)、そのためフローは正常/ステルスのままです。
  • AFD は詳細な診断を Log Analytics に Category FrontDoorWebApplicationFirewallLog として書き込みます。マッチしたペイロードの詳細は details_matches_s に含まれ、ルール名は ruleName_s に格納されます。

エンドツーエンドのワークフロー

  1. ターゲットの POST パラメータを特定する
  • ログインフォームを確認し、パラメータ名をメモする(例: username, password)。
  1. Log Analytics への診断送信を有効化する
  • In your Front Door profile > Monitoring > Diagnostic settings, logs を Log Analytics workspace に送信する。
  • 最低限、カテゴリ FrontDoorWebApplicationFirewallLog を有効にする。
  1. 悪意のある Custom Rule を作成する
  • Front Door WAF Policy > Custom rules > New rule:
  • Name: 無難な名前(例: PasswordCapture)
  • Priority: 低い数値(例: 5)にして早く評価されるようにする
  • Match: POST arguments username and password を Operator = Any (match any value) で指定する
  • Action: Log traffic only
  1. イベントを発生させる
curl -i -X POST https://example.com/login \
-H "Content-Type: application/x-www-form-urlencoded" \
--data "username=alice&password=S3cret!"
  1. Log Analytics (KQL)から資格情報を抽出する
AzureDiagnostics
| where Category == "FrontDoorWebApplicationFirewallLog"
| where ruleName_s == "PasswordCapture"
| project TimeGenerated, ruleName_s, details_matches_s
| order by TimeGenerated desc

ファイルの内容を貼ってください。指定されたルール(コード・クラウド/SaaS名・リンク・パス・タグ等は翻訳しない)に従って、日本語へ翻訳します。

AzureDiagnostics
| where Category == "FrontDoorWebApplicationFirewallLog" and ruleName_s == "PasswordCapture"
| extend m = parse_json(details_matches_s)
| mv-expand match = m.matches
| project TimeGenerated, ruleName_s, match.matchVariableName, match.matchVariableValue
| order by TimeGenerated desc

一致した値は details_matches_s に表示され、ルールに一致した平文の値を含みます。

なぜ Front Door WAF で、Application Gateway WAF ではないのか?

  • Application Gateway WAF の custom-rule ログは問題となる POST/header の値を同じようには含めません; AFD WAF diagnostics は details に一致したコンテンツを含めるため、認証情報の取得が可能になります。

ステルスとバリエーション

  • リクエストを破壊しないように、また他のルールの評価を通常どおり維持するため、Action を Log traffic only に設定します。
  • 低い数値の Priority を使い、ログルールが後続の Block/Allow ルールより先に評価されるようにします。
  • 対象は POST params に限らず、任意の機微な名前/場所を指定できます(例: Authorization のような headers や、body fields に含まれる API tokens など)。

前提条件

  • 既存の Azure Front Door インスタンス。
  • AFD WAF policy を編集し、関連する Log Analytics workspace を読み取る権限。

参考資料

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする