AWS - API Gateway Post Exploitation
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Informationen siehe:
Du kannst einen Endpunkt in 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 exponieren, auf das du Zugriff hast (potenziell über eine EC2-Maschine) und eine Sicherheitsgruppe zuweisen, die alle Verbindungen erlaubt.
Dann wirst du von der EC2-Maschine aus auf den Endpunkt zugreifen und somit die Gateway-API aufrufen können, die zuvor nicht exponiert war.
Diese Technik wurde in diesem CTF-Bericht gefunden.
Wie in der AWS-Dokumentation im Abschnitt PassthroughBehavior
angegeben, wird standardmäßig der Wert WHEN_NO_MATCH
, beim Überprüfen des Content-Type-Headers der Anfrage, die Anfrage ohne Transformation an das Backend weiterleiten.
Daher hatte im CTF das API Gateway eine Integrationsvorlage, die verhindert hat, dass das Flag in einer Antwort exfiltriert wird, wenn eine Anfrage mit Content-Type: application/json
gesendet wurde:
Allerdings würde das Senden einer Anfrage mit Content-type: text/json
diesen Filter umgehen.
Schließlich, da das API Gateway nur Get
und Options
erlaubte, war es möglich, eine beliebige dynamoDB-Abfrage ohne Einschränkung zu senden, indem man eine POST-Anfrage mit der Abfrage im Body und dem Header X-HTTP-Method-Override: GET
verwendete:
Im Abschnitt Enumeration sehen Sie, wie Sie den Nutzungsplan der Schlüssel erhalten können. Wenn Sie den Schlüssel haben und er auf X Nutzungen pro Monat beschränkt 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
eingeschlossen werden.
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
Ein Angreifer mit den Berechtigungen apigateway:UpdateGatewayResponse
und apigateway:CreateDeployment
kann eine bestehende Gateway-Antwort ändern, um benutzerdefinierte Header oder Antwortvorlagen einzuschließen, die sensible Informationen leaken oder bösartige Skripte ausführen.
Potenzielle Auswirkungen: Leckage sensibler Informationen, Ausführung bösartiger Skripte oder unbefugter Zugriff auf API-Ressourcen.
Benötigt Tests
apigateway:UpdateStage
, apigateway:CreateDeployment
Ein Angreifer mit den Berechtigungen apigateway:UpdateStage
und apigateway:CreateDeployment
kann eine bestehende API Gateway-Stufe ändern, um den Datenverkehr auf eine andere Stufe umzuleiten oder die Caching-Einstellungen zu ändern, um unbefugten Zugriff auf zwischengespeicherte Daten zu erhalten.
Potenzielle Auswirkungen: Unbefugter Zugriff auf zwischengespeicherte Daten, Störung oder Abfangen von API-Verkehr.
Benötigt Tests
apigateway:PutMethodResponse
, apigateway:CreateDeployment
Ein Angreifer mit den Berechtigungen apigateway:PutMethodResponse
und apigateway:CreateDeployment
kann die Methodenantwort einer bestehenden API Gateway REST API-Methode ändern, um benutzerdefinierte Header oder Antwortvorlagen einzuschließen, die sensible Informationen leaken oder bösartige Skripte ausführen.
Potenzielle Auswirkungen: Leck von sensiblen Informationen, Ausführung bösartiger Skripte oder unbefugter Zugriff auf API-Ressourcen.
Benötigt Tests
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 die Sicherheit der API potenziell schwächen könnte.
Potenzielle Auswirkungen: Schwächung der Sicherheit der API, was möglicherweise unbefugten Zugriff oder die Offenlegung sensibler Informationen ermöglicht.
Test 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 Nutzungstarifen verknüpfen und diese Schlüssel dann für unbefugten Zugriff auf APIs verwenden.
Potenzielle Auswirkungen: Unbefugter Zugriff auf API-Ressourcen, Umgehung von Sicherheitskontrollen.
Test erforderlich
Lernen & Üben von AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & Üben von GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)