Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws

This commit is contained in:
Translator
2025-10-07 15:40:51 +00:00
parent 275ec387ba
commit 2e4d7a4f61
2 changed files with 471 additions and 32 deletions

View File

@@ -4,29 +4,29 @@
## Lambda
For more information check:
अधिक जानकारी के लिए देखें:
{{#ref}}
../../aws-services/aws-lambda-enum.md
{{#endref}}
### Exfilrtate Lambda Credentials
### Lambda Credentials को एक्सफिल्ट्रेट करना
Lambda runtime पर credentials inject करने के लिए environment variables का उपयोग करता है। अगर आप उन्हें access कर सकें (जैसे `/proc/self/environ` पढ़कर या vulnerable function का खुद इस्तेमाल करके), तो आप उन्हें खुद इस्तेमाल कर सकते हैं। ये default variable names `AWS_SESSION_TOKEN`, `AWS_SECRET_ACCESS_KEY`, और `AWS_ACCESS_KEY_ID` में रहते हैं
Lambda रनटाइम पर credentials इंजेक्ट करने के लिए environment variables का उपयोग करता है। यदि आप उन्हें एक्सेस कर पाते हैं (जैसे `/proc/self/environ` पढ़कर या खुद kwetsable function का उपयोग करके), तो आप उन्हें खुद इस्तेमाल कर सकते हैं। ये डिफ़ॉल्ट variable नामों में रहते हैं: `AWS_SESSION_TOKEN`, `AWS_SECRET_ACCESS_KEY`, और `AWS_ACCESS_KEY_ID`
डिफ़ॉल्ट रूप से, इनक cloudwatch log group में लिखने की access होगी (जिसका नाम `AWS_LAMBDA_LOG_GROUP_NAME` में स्टोर होता है), और arbitrary log groups बनाने की भी, हालांकि Lambda functions अक्सर उनके intended use के आधार पर और permissions भी रखते हैं।
डिफ़ॉल्ट रूप से, इनके पास एक cloudwatch log group में लिखने की अनुमति होती है (जिसका नाम `AWS_LAMBDA_LOG_GROUP_NAME` में स्टोर होता है), साथ ही arbitrary log groups बनाने की भी अनुमति हो सकती है; हालांकि lambda functions अक्सर उनके intended उपयोग के आधार पर अधिक permissions के साथ दिए जाते हैं।
### Steal Others Lambda URL Requests
### अन्य उपयोगकर्ताओं के Lambda URL अनुरोध चुराना
अगर attacker किसी तरह Lambda के अंदर RCE हासिल कर लेता है तो वह अन्य users के HTTP requests जो Lambda को भेजे जाते हैं, चुरा सकता है। अगर उन requests में sensitive जानकारी (cookies, credentials...) हो, तो वह उन्हें चुरा सकेगा।
यदि किसी attacker को किसी Lambda के अंदर RCE मिल जाए तो वह अन्य उपयोगकर्ताओं के उस lambda को भेजे गए HTTP अनुरोध चुरा सकता है। यदि उन अनुरोधों में sensitive जानकारी (cookies, credentials...) ह तो attacker उन्हें चुरा सकेगा।
{{#ref}}
aws-warm-lambda-persistence.md
{{#endref}}
### Steal Others Lambda URL Requests & Extensions Requests
### अन्य उपयोगकर्ताओं के Lambda URL अनुरोध और Extensions अनुरोध चुराना
Lambda Layers क दुरुपयोग करके extensions का भी दुरुपयोग कर के Lambda में persist करना, और साथ ही requests को चुराना और बदलना भी संभव है।
Lambda Layers क दुरुपयोग करके extensions का भी दुरुपयोग कर पाना और lambda में persistence बनाए रखना संभव है, साथ ही अनुरोधों को चुराना और modify करना भी संभव है।
{{#ref}}
../../aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md
@@ -34,7 +34,7 @@ Lambda Layers का दुरुपयोग करके extensions का भ
### AWS Lambda VPC Egress Bypass
एक empty VpcConfig (SubnetIds=[], SecurityGroupIds=[]) के साथ configuration अपडेट करके एक Lambda function को restricted VPC से बाहर मजबूर कर दें। फिर function Lambda-managed networking plane में चलेगा, और outbound internet access वापस पा लेगा, जिससे private VPC subnets द्वारा लाए गए egress controls (बिना NAT के) bypass हो जाएंगे
एक Lambda फ़ंक्शन को किसी restricted VPC से बाहर force करने के लिए इसकी configuration को खाली VpcConfig से अपडेट करें (SubnetIds=[], SecurityGroupIds=[]). ऐसा करने पर फ़ंक्शन Lambda-managed networking plane में चलेगा, आउटबाउंड इंटरनेट एक्सेस बहाल हो जाएगा और बिना NAT वाले private VPC subnets द्वारा लागू किए गए egress controls को बायपास किया जा सकेगा
{{#ref}}
aws-lambda-vpc-egress-bypass.md
@@ -42,15 +42,15 @@ aws-lambda-vpc-egress-bypass.md
### AWS Lambda Runtime Pinning/Rollback Abuse
`lambda:PutRuntimeManagementConfig` का दुरुपयोग करके किसी function को एक specific runtime version (Manual) पर pin करें या updates को freeze करें (FunctionUpdate)। इससे malicious layers/wrappers के साथ compatibility बनी रहेगी और function को एक outdated, vulnerable runtime पर रखा जा सकता है ताकि exploitation और long-term persistence में मदद मिल सके
`lambda:PutRuntimeManagementConfig` का दुरुपयोग करके किसी फ़ंक्शन को एक specific runtime संस्करण (Manual) पर पिन करना या अपडेट्स को freeze करना (FunctionUpdate) संभव है। यह malicious layers/wrappers के साथ compatibility बनाए रखता है और फ़ंक्शन को किसी outdated, vulnerable runtime पर रोककर exploitation और long-term persistence में मदद कर सकता है
{{#ref}}
aws-lambda-runtime-pinning-abuse.md
{{#endref}}
### AWS Lambda Log Siphon via LoggingConfig.LogGroup Redirection
### AWS Lambda LoggingConfig.LogGroup के जरिए लॉग रीडायरेक्शन से डेटा चुराना
`lambda:UpdateFunctionConfiguration` के advanced logging controls का दुरुपयोग करके किसी function के logs को attacker-चुने हुए CloudWatch Logs log group में redirect किया जा सकता है। यह code या execution role बदले बिना काम करता है (most Lambda roles में पहले से `logs:CreateLogGroup/CreateLogStream/PutLogEvents` शामिल होते हैं via `AWSLambdaBasicExecutionRole`)। अगर function secrets/request bodies प्रिंट करता है या stack traces के साथ crash होता है, तो आप उन्हें नए log group से इकट्ठा कर सकते हैं।
`lambda:UpdateFunctionConfiguration` के advanced logging controls का दुरुपयोग करके किसी फ़ंक्शन के logs को attacker-चुने हुए CloudWatch Logs log group में redirect किया जा सकता है। यह कोड या execution role को बदले बिना काम करता है (अधिकांश Lambda रोल्स में पहले से `logs:CreateLogGroup/CreateLogStream/PutLogEvents` शामिल होते हैं जैसे `AWSLambdaBasicExecutionRole`)। अगर फ़ंक्शन secrets/request bodies प्रिंट करता है या stack traces के साथ क्रैश होता है, तो आप उन्हें नए log group से कलेक्ट कर सकते हैं।
{{#ref}}
aws-lambda-loggingconfig-redirection.md
@@ -58,7 +58,7 @@ aws-lambda-loggingconfig-redirection.md
### AWS - Lambda Function URL Public Exposure
Function URL AuthType को NONE पर सेट करके और एक resource-based policy attach करके जो lambda:InvokeFunctionUrl को सभी को देता है, किसी private Lambda Function URL को public unauthenticated endpoint में बदला जा सकता है। इससे internal functions क anonymous invocation संभव हो जात है और sensitive backend operations expose हो सकते हैं।
Function URL AuthType को NONE पर सेट करके और एक resource-based policy अटैच करके जो lambda:InvokeFunctionUrl को सभी को प्रदान करे, किसी private Lambda Function URL को public unauthenticated endpoint में बदला जा सकता है। इससे internal functions क anonymous invocation संभव हो जात है और संवेदनशील backend ऑपरेशन्स exposure हो सकते हैं।
{{#ref}}
aws-lambda-function-url-public-exposure.md
@@ -66,15 +66,15 @@ aws-lambda-function-url-public-exposure.md
### AWS Lambda Event Source Mapping Target Hijack
`UpdateEventSourceMapping` का दुरुपयोग करके existing Event Source Mapping (ESM) के target Lambda function को बदल दें ताकि DynamoDB Streams, Kinesis, या SQS े records attacker-controlled function को डिलीवर हों। यह producers या original function code को छुए बिना live data को silently divert कर देता है।
`UpdateEventSourceMapping` का दुरुपयोग करके किसी existing Event Source Mapping (ESM) के target Lambda function को बदल दिया जा सकता है ताकि DynamoDB Streams, Kinesis, या SQS से आने वाले records attacker-controlled function को डिलीवर हों। यह producers या original function code को छुए बिना live data को चुपचाप divert कर देता है।
{{#ref}}
aws-lambda-event-source-mapping-hijack.md
{{#endref}}
### AWS Lambda EFS Mount Injection data exfiltration
### AWS Lambda EFS Mount Injection के जरिए डेटा एक्सफिल्ट्रेशन
`lambda:UpdateFunctionConfiguration` का दुरुपयोग करके किसी existing EFS Access Point को Lambda से attach करें, फिर ऐसे trivial code deploy करें जो mounted path से files list/read करे ताकि function पहले जिन तक पहुँच नहीं था वे shared secrets/config exfiltrate कि जा सके
`lambda:UpdateFunctionConfiguration` का दुरुपयोग करके किसी existing EFS Access Point को Lambda के साथ attach करें, फिर trivial code deploy करे mounted path से files list/read करे ताकि साझा secrets/config को exfiltrate किया जा सके जिन्हें फ़ंक्शन पहले access नहीं कर पाता था
{{#ref}}
aws-lambda-efs-mount-injection.md