Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws

This commit is contained in:
Translator
2025-10-06 23:06:51 +00:00
parent e8359b184f
commit 5cd59b1ef9
13 changed files with 902 additions and 86 deletions

View File

@@ -1,35 +1,85 @@
# AWS - Lambda Pós Exploração
# AWS - Lambda Pós-Exploração
{{#include ../../../../banners/hacktricks-training.md}}
## Lambda
Para mais informações, consulte:
Para mais informações consulte:
{{#ref}}
../../aws-services/aws-lambda-enum.md
{{#endref}}
### Exfiltrar Credenciais do Lambda
### Exfiltrar credenciais do Lambda
O Lambda usa variáveis de ambiente para injetar credenciais em tempo de execução. Se você conseguir acessá-las (lendo `/proc/self/environ` ou usando a própria função vulnerável), pode usá-las. Elas estão nos nomes de variáveis padrão `AWS_SESSION_TOKEN`, `AWS_SECRET_ACCESS_KEY` e `AWS_ACCESS_KEY_ID`.
Lambda usa variáveis de ambiente para injetar credentials em tempo de execução. Se você conseguir acessá-las (lendo `/proc/self/environ` ou usando a própria função vulnerável), pode usá-las. Elas ficam nas variáveis padrão `AWS_SESSION_TOKEN`, `AWS_SECRET_ACCESS_KEY` e `AWS_ACCESS_KEY_ID`.
Por padrão, essas terão acesso para escrever em um grupo de logs do CloudWatch (o nome do qual está armazenado em `AWS_LAMBDA_LOG_GROUP_NAME`), bem como para criar grupos de logs arbitrários, no entanto, funções lambda frequentemente têm mais permissões atribuídas com base em seu uso pretendido.
Por padrão, essas credenciais têm permissão para gravar em um cloudwatch log group (seu nome é armazenado em `AWS_LAMBDA_LOG_GROUP_NAME`), além de criar log groups arbitrários; entretanto, funções lambda frequentemente têm mais permissões atribuídas conforme seu uso pretendido.
### Roubar Requisições de URL de Outros Lambdas
### Roubar solicitações de URL de outras Lambdas
Se um atacante conseguir de alguma forma obter RCE dentro de um Lambda, ele poderá roubar as requisições HTTP de outros usuários para o lambda. Se as requisições contiverem informações sensíveis (cookies, credenciais...), ele poderá roubá-las.
Se um atacante de alguma forma obtiver RCE dentro de uma Lambda, ele poderá roubar requisições HTTP de outros usuários para essa lambda. Se as requisições contiverem informações sensíveis (cookies, credentials...) ele poderá exfiltrar esses dados.
{{#ref}}
aws-warm-lambda-persistence.md
{{#endref}}
### Roubar Requisições de URL de Outros Lambdas & Requisições de Extensões
### Roubar solicitações de URL de outras Lambdas & requisições de Extensions
Abusando de Camadas do Lambda, também é possível abusar de extensões e persistir no lambda, mas também roubar e modificar requisições.
Abusando de Lambda Layers também é possível abusar de extensions e persistir na lambda, além de roubar e modificar requisições.
{{#ref}}
../../aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md
{{#endref}}
### AWS Lambda VPC Egress Bypass
Force uma função Lambda a sair de um VPC restrito atualizando sua configuração com um VpcConfig vazio (SubnetIds=[], SecurityGroupIds=[]). A função então rodará no plano de rede gerenciado pelo Lambda, recuperando acesso de saída à internet e contornando controles de egress aplicados por subnets privadas do VPC sem NAT.
{{#ref}}
aws-lambda-vpc-egress-bypass.md
{{#endref}}
### AWS Lambda Runtime Pinning/Rollback Abuse
Abuse `lambda:PutRuntimeManagementConfig` para fixar uma função a uma versão específica de runtime (Manual) ou congelar atualizações (FunctionUpdate). Isso preserva compatibilidade com layers/wrappers maliciosos e pode manter a função em um runtime desatualizado e vulnerável para facilitar exploração e persistência de longo prazo.
{{#ref}}
aws-lambda-runtime-pinning-abuse.md
{{#endref}}
### AWS Lambda Log Siphon via LoggingConfig.LogGroup Redirection
Abuse os controles avançados de logging de `lambda:UpdateFunctionConfiguration` para redirecionar os logs de uma função para um CloudWatch Logs log group escolhido pelo atacante. Isso funciona sem alterar código ou a execution role (a maioria das roles do Lambda já inclui `logs:CreateLogGroup/CreateLogStream/PutLogEvents` via `AWSLambdaBasicExecutionRole`). Se a função imprimir secrets/request bodies ou travar com stack traces, você pode coletá-los do novo log group.
{{#ref}}
aws-lambda-loggingconfig-redirection.md
{{#endref}}
### AWS - Lambda Function URL Public Exposure
Transforme um Lambda Function URL privado em um endpoint público não autenticado trocando o Function URL AuthType para NONE e anexando uma resource-based policy que concede lambda:InvokeFunctionUrl a todos. Isso permite invocação anônima de funções internas e pode expor operações backend sensíveis.
{{#ref}}
aws-lambda-function-url-public-exposure.md
{{#endref}}
### AWS Lambda Event Source Mapping Target Hijack
Abuse `UpdateEventSourceMapping` para alterar a função Lambda alvo de um Event Source Mapping (ESM) existente, de modo que registros de DynamoDB Streams, Kinesis ou SQS sejam entregues a uma função controlada pelo atacante. Isso desvia silenciosamente dados ao vivo sem tocar nos produtores ou no código da função original.
{{#ref}}
aws-lambda-event-source-mapping-target-hijack.md
{{#endref}}
### AWS Lambda EFS Mount Injection exfiltração de dados
Abuse `lambda:UpdateFunctionConfiguration` para anexar um EFS Access Point existente a uma Lambda e então deployar código trivial que liste/leia arquivos do caminho montado para exfiltrar secrets/config compartilhados que a função antes não podia acessar.
{{#ref}}
aws-lambda-efs-mount-injection.md
{{#endref}}
{{#include ../../../../banners/hacktricks-training.md}}