AWS - API Gateway Post Exploitation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
For more information check:
https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint でサービス com.amazonaws.us-east-1.execute-api
を使用してエンドポイントを作成し、アクセス可能なネットワーク(EC2マシン経由の可能性あり)でエンドポイントを公開し、すべての接続を許可するセキュリティグループを割り当てます。
その後、EC2マシンからエンドポイントにアクセスできるようになり、以前は公開されていなかったゲートウェイAPIを呼び出すことができます。
この技術はこのCTFの解説で見つかりました。
AWSのドキュメントのPassthroughBehavior
セクションに示されているように、デフォルトでは、リクエストのContent-Typeヘッダーをチェックする際に、値**WHEN_NO_MATCH
**は、変換なしでリクエストをバックエンドに渡します。
したがって、CTFではAPI Gatewayに統合テンプレートがあり、Content-Type: application/json
でリクエストが送信されたときにフラグが応答で流出するのを防いでいました:
しかし、**Content-type: text/json
**を持つリクエストを送信することで、そのフィルターを回避することができました。
最後に、API GatewayがGet
とOptions
のみを許可していたため、ボディにクエリを含むPOSTリクエストを送信し、ヘッダーX-HTTP-Method-Override: GET
を使用することで、任意のdynamoDBクエリを制限なしに送信することが可能でした。
列挙セクションでは、キーの使用プランを取得する方法を見ることができます。キーを持っていて、それが月あたりX回の使用に制限されている場合、それを使用してDoSを引き起こすことができます。
APIキーは、x-api-key
というHTTPヘッダーに含める必要があります。
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
apigateway:UpdateGatewayResponse
およびapigateway:CreateDeployment
の権限を持つ攻撃者は、既存のGateway Responseを変更して、機密情報を漏洩させるカスタムヘッダーやレスポンステンプレートを含めたり、悪意のあるスクリプトを実行させたりすることができます。
潜在的な影響: 機密情報の漏洩、悪意のあるスクリプトの実行、またはAPIリソースへの不正アクセス。
テストが必要
apigateway:UpdateStage
, apigateway:CreateDeployment
apigateway:UpdateStage
およびapigateway:CreateDeployment
の権限を持つ攻撃者は、既存のAPI Gatewayステージを変更してトラフィックを別のステージにリダイレクトしたり、キャッシュ設定を変更してキャッシュデータへの不正アクセスを得ることができます。
潜在的な影響: キャッシュされたデータへの不正アクセス、APIトラフィックの中断または傍受。
テストが必要
apigateway:PutMethodResponse
, apigateway:CreateDeployment
apigateway:PutMethodResponse
および apigateway:CreateDeployment
の権限を持つ攻撃者は、既存のAPI Gateway REST APIメソッドのメソッドレスポンスを変更して、機密情報を漏洩させるカスタムヘッダーやレスポンステンプレートを含めたり、悪意のあるスクリプトを実行させたりすることができます。
潜在的な影響: 機密情報の漏洩、悪意のあるスクリプトの実行、またはAPIリソースへの不正アクセス。
テストが必要
apigateway:UpdateRestApi
, apigateway:CreateDeployment
apigateway:UpdateRestApi
およびapigateway:CreateDeployment
の権限を持つ攻撃者は、API Gateway REST APIの設定を変更してログを無効にしたり、最小TLSバージョンを変更したりすることができ、APIのセキュリティを弱める可能性があります。
潜在的な影響: APIのセキュリティが弱まり、未承認のアクセスを許可したり、機密情報を露出させる可能性があります。
テストが必要
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
apigateway:CreateApiKey
、apigateway:UpdateApiKey
、apigateway:CreateUsagePlan
、およびapigateway:CreateUsagePlanKey
の権限を持つ攻撃者は、新しいAPIキーを作成し、それらを使用プランに関連付け、これらのキーを使用してAPIに未承認でアクセスすることができます。
潜在的影響: APIリソースへの不正アクセス、セキュリティコントロールのバイパス。
テストが必要
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)