AWS - API Gateway Post Exploitation
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Para mais informações, confira:
AWS - API Gateway EnumVocê pode criar um endpoint em https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint com o serviço com.amazonaws.us-east-1.execute-api
, expor o endpoint em uma rede onde você tenha acesso (potencialmente via uma máquina EC2) e atribuir um grupo de segurança permitindo todas as conexões.
Então, a partir da máquina EC2, você poderá acessar o endpoint e, portanto, chamar a API do gateway que não estava exposta anteriormente.
Esta técnica foi encontrada em este writeup de CTF.
Como indicado na documentação da AWS na seção PassthroughBehavior
, por padrão, o valor WHEN_NO_MATCH
, ao verificar o cabeçalho Content-Type da solicitação, passará a solicitação para o back end sem transformação.
Portanto, no CTF, o API Gateway tinha um template de integração que estava impedindo que a flag fosse exfiltrada em uma resposta quando uma solicitação era enviada com Content-Type: application/json
:
No entanto, enviar uma solicitação com Content-type: text/json
impediria esse filtro.
Finalmente, como o API Gateway estava permitindo apenas Get
e Options
, era possível enviar uma consulta arbitrária do dynamoDB sem nenhum limite, enviando uma solicitação POST com a consulta no corpo e usando o cabeçalho X-HTTP-Method-Override: GET
:
Na seção Enumeração, você pode ver como obter o plano de uso das chaves. Se você tiver a chave e ela estiver limitada a X usos por mês, você poderia apenas usá-la e causar um DoS.
A Chave da API só precisa ser incluída dentro de um cabeçalho HTTP chamado x-api-key
.
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
Um atacante com as permissões apigateway:UpdateGatewayResponse
e apigateway:CreateDeployment
pode modificar uma Resposta de Gateway existente para incluir cabeçalhos personalizados ou modelos de resposta que vazam informações sensíveis ou executem scripts maliciosos.
Impacto Potencial: Vazamento de informações sensíveis, execução de scripts maliciosos ou acesso não autorizado a recursos da API.
Necessita de teste
apigateway:UpdateStage
, apigateway:CreateDeployment
Um atacante com as permissões apigateway:UpdateStage
e apigateway:CreateDeployment
pode modificar um estágio existente do API Gateway para redirecionar o tráfego para um estágio diferente ou alterar as configurações de cache para obter acesso não autorizado a dados em cache.
Impacto Potencial: Acesso não autorizado a dados em cache, interrompendo ou interceptando o tráfego da API.
Necessita de teste
apigateway:PutMethodResponse
, apigateway:CreateDeployment
Um atacante com as permissões apigateway:PutMethodResponse
e apigateway:CreateDeployment
pode modificar a resposta do método de um método REST API existente do API Gateway para incluir cabeçalhos personalizados ou templates de resposta que vazam informações sensíveis ou executem scripts maliciosos.
Impacto Potencial: Vazamento de informações sensíveis, execução de scripts maliciosos ou acesso não autorizado a recursos da API.
Necessita de teste
apigateway:UpdateRestApi
, apigateway:CreateDeployment
Um atacante com as permissões apigateway:UpdateRestApi
e apigateway:CreateDeployment
pode modificar as configurações da API Gateway REST API para desativar o registro ou alterar a versão mínima do TLS, potencialmente enfraquecendo a segurança da API.
Impacto Potencial: Enfraquecendo a segurança da API, permitindo potencialmente acesso não autorizado ou expondo informações sensíveis.
Necessita de teste
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
Um atacante com permissões apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
e apigateway:CreateUsagePlanKey
pode criar novas chaves de API, associá-las a planos de uso e, em seguida, usar essas chaves para acesso não autorizado às APIs.
Impacto Potencial: Acesso não autorizado a recursos da API, contornando controles de segurança.
Necessita de teste
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)