AWS - API Gateway Post Exploitation
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
API Gateway
For more information check:
AWS - API Gateway EnumAccess unexposed APIs
Możesz utworzyć punkt końcowy w https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint z usługą com.amazonaws.us-east-1.execute-api
, wystawić punkt końcowy w sieci, do której masz dostęp (potencjalnie za pośrednictwem maszyny EC2) i przypisać grupę zabezpieczeń pozwalającą na wszystkie połączenia.
Następnie, z maszyny EC2 będziesz mógł uzyskać dostęp do punktu końcowego, a tym samym wywołać API bramy, które wcześniej nie było wystawione.
Bypass Request body passthrough
Ta technika została znaleziona w tym opisie CTF.
Jak wskazano w dokumentacji AWS w sekcji PassthroughBehavior
, domyślnie wartość WHEN_NO_MATCH
, podczas sprawdzania nagłówka Content-Type żądania, przekaże żądanie do zaplecza bez transformacji.
W związku z tym, w CTF brama API miała szablon integracji, który zapobiegał wyciekowi flagi w odpowiedzi, gdy wysyłano żądanie z Content-Type: application/json
:
Jednak wysłanie żądania z Content-type: text/json
uniemożliwiłoby ten filtr.
Na koniec, ponieważ API Gateway pozwalał tylko na Get
i Options
, możliwe było wysłanie dowolnego zapytania do dynamoDB bez żadnych ograniczeń, wysyłając żądanie POST z zapytaniem w ciele i używając nagłówka X-HTTP-Method-Override: GET
:
Plany użycia DoS
W sekcji Enumeracja możesz zobaczyć, jak uzyskać plan użycia kluczy. Jeśli masz klucz i jest on ograniczony do X użyć na miesiąc, możesz po prostu go użyć i spowodować DoS.
Klucz API musi być dołączony w nagłówku HTTP o nazwie x-api-key
.
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
Napastnik z uprawnieniami apigateway:UpdateGatewayResponse
i apigateway:CreateDeployment
może zmodyfikować istniejącą odpowiedź bramy, aby dodać niestandardowe nagłówki lub szablony odpowiedzi, które ujawniają wrażliwe informacje lub wykonują złośliwe skrypty.
Potencjalny wpływ: Wyciek wrażliwych informacji, wykonywanie złośliwych skryptów lub nieautoryzowany dostęp do zasobów API.
Wymaga testowania
apigateway:UpdateStage
, apigateway:CreateDeployment
apigateway:UpdateStage
, apigateway:CreateDeployment
Atakujący z uprawnieniami apigateway:UpdateStage
i apigateway:CreateDeployment
może zmodyfikować istniejącą fazę API Gateway, aby przekierować ruch do innej fazy lub zmienić ustawienia pamięci podręcznej, aby uzyskać nieautoryzowany dostęp do danych w pamięci podręcznej.
Potencjalny wpływ: Nieautoryzowany dostęp do pamiętanych danych, zakłócanie lub przechwytywanie ruchu API.
Wymaga testowania
apigateway:PutMethodResponse
, apigateway:CreateDeployment
apigateway:PutMethodResponse
, apigateway:CreateDeployment
Napastnik z uprawnieniami apigateway:PutMethodResponse
i apigateway:CreateDeployment
może zmodyfikować odpowiedź metody istniejącej metody API Gateway REST API, aby dodać niestandardowe nagłówki lub szablony odpowiedzi, które ujawniają wrażliwe informacje lub wykonują złośliwe skrypty.
Potencjalny wpływ: Wyciek wrażliwych informacji, wykonywanie złośliwych skryptów lub nieautoryzowany dostęp do zasobów API.
Wymaga testowania
apigateway:UpdateRestApi
, apigateway:CreateDeployment
apigateway:UpdateRestApi
, apigateway:CreateDeployment
Atakujący z uprawnieniami apigateway:UpdateRestApi
i apigateway:CreateDeployment
może zmodyfikować ustawienia API Gateway REST API, aby wyłączyć logowanie lub zmienić minimalną wersję TLS, co potencjalnie osłabia bezpieczeństwo API.
Potencjalny wpływ: Osłabienie bezpieczeństwa API, co może prowadzić do nieautoryzowanego dostępu lub ujawnienia wrażliwych informacji.
Wymaga testowania
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
Atakujący z uprawnieniami apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
i apigateway:CreateUsagePlanKey
może tworzyć nowe klucze API, przypisywać je do planów użytkowania, a następnie używać tych kluczy do nieautoryzowanego dostępu do API.
Potencjalny wpływ: Nieautoryzowany dostęp do zasobów API, omijanie zabezpieczeń.
Wymaga testowania
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Last updated