Files

7.1 KiB
Raw Blame History

AWS - Lambda Post Exploitation

{{#include ../../../../banners/hacktricks-training.md}}

Lambda

For more information check:

{{#ref}} ../../aws-services/aws-lambda-enum.md {{#endref}}

Exfilrtate Lambda Credentials

Lambda runtime में credentials inject करने के लिए environment variables का उपयोग करता है। अगर आप इन्हें एक्सेस कर पाते हैं (जैसे /proc/self/environ पढ़कर या vulnerable function का उपयोग करके), तो आप इन credentials का स्वयं उपयोग कर सकते हैं। ये डिफ़ॉल्ट variable नामों में पाए जाते हैं AWS_SESSION_TOKEN, AWS_SECRET_ACCESS_KEY, और AWS_ACCESS_KEY_ID

डिफ़ॉल्ट रूप से, इनका access cloudwatch log group में लिखने के लिए होगा (जिसका नाम AWS_LAMBDA_LOG_GROUP_NAME में संग्रहीत होता है), और arbitrary log groups बनाने की अनुमति भी होगी; हालाँकि lambda functions अक्सर उनके उद्देश्य के आधार पर अधिक अनुमतियों के साथ असाइन किए जाते हैं।

lambda:Delete*

एक attacker जिसे lambda:Delete* प्रदान की गई हो, वह Lambda functions, versions/aliases, layers, event source mappings और अन्य संबंधित configurations को हटा सकता है।

aws lambda delete-function \
--function-name <LAMBDA_NAME>

दूसरों के Lambda URL अनुरोध चुराना

यदि कोई attacker किसी तरह Lambda के अंदर RCE प्राप्त कर लेता है, तो वह अन्य users के HTTP अनुरोधों को lambda से चुरा सकता है। यदि उन अनुरोधों में संवेदनशील जानकारी (cookies, credentials...) हो तो वह उन्हें चुरा सकेगा।

{{#ref}} aws-warm-lambda-persistence.md {{#endref}}

दूसरों के Lambda URL अनुरोध और Extensions अनुरोध चुराना

Lambda Layers का दुरुपयोग करके extensions का भी दुरुपयोग कर के Lambda में persistence हासिल करना और अनुरोधों को चुराना तथा संशोधित करना संभव है।

{{#ref}} ../../aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md {{#endref}}

AWS Lambda VPC Egress Bypass

खाली VpcConfig (SubnetIds=[], SecurityGroupIds=[]) के साथ उसकी configuration अपडेट करके किसी restricted VPC से Lambda function को बाहर धकेला जा सकता है। फिर function Lambda-managed networking plane में चलेगा, आउटबाउन्ड इंटरनेट एक्सेस फिर से प्राप्त कर लेगा और NAT के बिना private VPC subnets द्वारा लागू किए गए egress controls को बायपास कर देगा।

{{#ref}} aws-lambda-vpc-egress-bypass.md {{#endref}}

AWS Lambda Runtime Pinning/Rollback Abuse

lambda:PutRuntimeManagementConfig का दुरुपयोग करके किसी function को एक specific runtime version (Manual) पर पिन किया जा सकता है या updates को freeze (FunctionUpdate) किया जा सकता है। यह malicious layers/wrappers के साथ compatibility बनाए रखता है और function को पुराने, vulnerable runtime पर रोक कर exploitation और long-term persistence में मदद कर सकता है।

{{#ref}} aws-lambda-runtime-pinning-abuse.md {{#endref}}

AWS Lambda Log Siphon via LoggingConfig.LogGroup Redirection

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

{{#ref}} aws-lambda-loggingconfig-redirection.md {{#endref}}

AWS - Lambda Function URL Public Exposure

Function URL AuthType को NONE में बदलकर और एक resource-based policy जोड़कर जो lambda:InvokeFunctionUrl को सभी को दे, आप किसी private Lambda Function URL को public unauthenticated endpoint में बदल सकते हैं। इससे internal functions का anonymous invocation संभव हो जाता है और संवेदनशील backend operations प्रकटीकरण का खतरा बढ़ जाता है।

{{#ref}} aws-lambda-function-url-public-exposure.md {{#endref}}

AWS Lambda Event Source Mapping Target Hijack

UpdateEventSourceMapping का दुरुपयोग करके मौजूदा Event Source Mapping (ESM) के target Lambda function को बदल दिया जा सकता है ताकि DynamoDB Streams, Kinesis, या SQS से आने वाले records attacker-controlled function को भेजे जाएं। यह producers या original function code को छुए बिना live डेटा को चुपके से divert कर देता है।

{{#ref}} aws-lambda-event-source-mapping-hijack.md {{#endref}}

AWS Lambda EFS Mount Injection data exfiltration

lambda:UpdateFunctionConfiguration का दुरुपयोग करके किसी मौजूदा EFS Access Point को Lambda से attach किया जा सकता है, फिर trivial code deploy करके mounted path से files list/read कर के shared secrets/config जो पहले function के पहुंच में नहीं थे, उन्हें exfiltrate किया जा सकता है।

{{#ref}} aws-lambda-efs-mount-injection.md {{#endref}}

{{#include ../../../../banners/hacktricks-training.md}}