mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-27 13:13:06 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
@@ -4,29 +4,35 @@
|
||||
|
||||
## Lambda
|
||||
|
||||
अधिक जानकारी के लिए देखें:
|
||||
For more information check:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-services/aws-lambda-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Lambda Credentials को एक्सफिल्ट्रेट करना
|
||||
### Exfilrtate Lambda Credentials
|
||||
|
||||
Lambda रनटाइम पर credentials इंजेक्ट करने के लिए environment variables का उपयोग करता है। यदि आप उन्हें एक्सेस कर पाते हैं (जैसे `/proc/self/environ` पढ़कर या खुद kwetsable function का उपयोग करके), तो आप उन्हें खुद इस्तेमाल कर सकते हैं। ये डिफ़ॉल्ट variable नामों में रहते हैं: `AWS_SESSION_TOKEN`, `AWS_SECRET_ACCESS_KEY`, और `AWS_ACCESS_KEY_ID`।
|
||||
Lambda रनटाइम पर credentials इंजेक्ट करने के लिए environment variables का उपयोग करता है। अगर आप इन्हें एक्सेस कर पाते हैं (जैसे `/proc/self/environ` पढ़कर या vulnerable function का स्वयं उपयोग करके), तो आप इन्हें खुद उपयोग कर सकते हैं। ये डिफ़ॉल्ट वेरिएबल नामों में रहते हैं `AWS_SESSION_TOKEN`, `AWS_SECRET_ACCESS_KEY`, और `AWS_ACCESS_KEY_ID`।
|
||||
|
||||
डिफ़ॉल्ट रूप से, इनके पास एक cloudwatch log group में लिखने की अनुमति होती है (जिसका नाम `AWS_LAMBDA_LOG_GROUP_NAME` में स्टोर होता है), साथ ही arbitrary log groups बनाने की भी अनुमति हो सकती है; हालांकि lambda functions अक्सर उनके intended उपयोग के आधार पर अधिक permissions के साथ दिए जाते हैं।
|
||||
डिफ़ॉल्ट रूप से, इनको cloudwatch log group में लिखने की अनुमति होती है (जिसका नाम `AWS_LAMBDA_LOG_GROUP_NAME` में संग्रहीत होता है), साथ ही arbitrary log groups बनाने की भी अनुमति होती है; हालांकि lambda functions अक्सर उनके intended use के आधार पर अधिक permissions दिए गए होते हैं।
|
||||
|
||||
### अन्य उपयोगकर्ताओं के Lambda URL अनुरोध चुराना
|
||||
### `lambda:Delete*`
|
||||
lambda:Delete* दिया गया attacker Lambda functions, versions/aliases, layers, event source mappings और अन्य संबंधित configurations को हटा सकता है।
|
||||
```bash
|
||||
aws lambda delete-function \
|
||||
--function-name <LAMBDA_NAME>
|
||||
```
|
||||
### Steal Others Lambda URL Requests
|
||||
|
||||
यदि किसी attacker को किसी Lambda के अंदर RCE मिल जाए तो वह अन्य उपयोगकर्ताओं के उस lambda को भेजे गए HTTP अनुरोध चुरा सकता है। यदि उन अनुरोधों में sensitive जानकारी (cookies, credentials...) है तो attacker उन्हें चुरा सकेगा।
|
||||
अगर कोई हमलावर किसी तरह से Lambda के अंदर RCE प्राप्त कर लेता है तो वह अन्य उपयोगकर्ताओं के HTTP requests जो lambda को भेजे जा रहे हैं उन्हें चुरा सकता है। अगर इन requests में संवेदनशील जानकारी (cookies, credentials...) है तो वह उन्हें चुरा सकेगा।
|
||||
|
||||
{{#ref}}
|
||||
aws-warm-lambda-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
### अन्य उपयोगकर्ताओं के Lambda URL अनुरोध और Extensions अनुरोध चुराना
|
||||
### Steal Others Lambda URL Requests & Extensions Requests
|
||||
|
||||
Lambda Layers को दुरुपयोग करके extensions का भी दुरुपयोग कर पाना और lambda में persistence बनाए रखना संभव है, साथ ही अनुरोधों को चुराना और modify करना भी संभव है।
|
||||
Lambda Layers का दुरुपयोग करके extensions का भी दुरुपयोग कर के lambda में persist करना संभव है, और साथ ही अनुरोधों को चुराना और संशोधित करना भी।
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md
|
||||
@@ -34,7 +40,7 @@ Lambda Layers को दुरुपयोग करके extensions का भ
|
||||
|
||||
### AWS Lambda – VPC Egress Bypass
|
||||
|
||||
एक Lambda फ़ंक्शन को किसी restricted VPC से बाहर force करने के लिए इसकी configuration को खाली VpcConfig से अपडेट करें (SubnetIds=[], SecurityGroupIds=[]). ऐसा करने पर फ़ंक्शन Lambda-managed networking plane में चलेगा, आउटबाउंड इंटरनेट एक्सेस बहाल हो जाएगा और बिना NAT वाले private VPC subnets द्वारा लागू किए गए egress controls को बायपास किया जा सकेगा।
|
||||
एक खाली VpcConfig (SubnetIds=[], SecurityGroupIds=[]) के साथ इसके configuration को अपडेट करके एक Lambda function को restricted VPC से बाहर जबरदस्ती निकाला जा सकता है। ऐसा होने पर function Lambda-managed networking plane में चलेगा, जिससे outbound internet access फिर से मिल जाएगा और बिना NAT वाले private VPC subnets द्वारा लागू किये गए egress controls बायपास हो जाएंगे।
|
||||
|
||||
{{#ref}}
|
||||
aws-lambda-vpc-egress-bypass.md
|
||||
@@ -42,15 +48,15 @@ aws-lambda-vpc-egress-bypass.md
|
||||
|
||||
### AWS Lambda – Runtime Pinning/Rollback Abuse
|
||||
|
||||
`lambda:PutRuntimeManagementConfig` का दुरुपयोग करके किसी फ़ंक्शन को एक specific runtime संस्करण (Manual) पर पिन करना या अपडेट्स को freeze करना (FunctionUpdate) संभव है। यह malicious layers/wrappers के साथ compatibility बनाए रखता है और फ़ंक्शन को किसी outdated, vulnerable runtime पर रोककर exploitation और long-term persistence में मदद कर सकता है।
|
||||
`lambda:PutRuntimeManagementConfig` का दुरुपयोग करके किसी function को एक specific runtime version (Manual) पर pin किया जा सकता है या updates को freeze (FunctionUpdate) किया जा सकता है। यह malicious layers/wrappers के साथ compatibility बनाए रखता है और function को पुराने, kwetsbare runtime पर रखने से exploitation और long-term persistence में मदद मिल सकती है।
|
||||
|
||||
{{#ref}}
|
||||
aws-lambda-runtime-pinning-abuse.md
|
||||
{{#endref}}
|
||||
|
||||
### AWS Lambda – LoggingConfig.LogGroup के जरिए लॉग रीडायरेक्शन से डेटा चुराना
|
||||
### AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection
|
||||
|
||||
`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 से कलेक्ट कर सकते हैं।
|
||||
`lambda:UpdateFunctionConfiguration` के advanced logging controls का दुरुपयोग करके किसी function के logs को attacker-चुने हुए CloudWatch Logs log group में redirect किया जा सकता है। यह बिना code या execution role बदले काम करता है (अधिकांश Lambda roles में पहले से `logs:CreateLogGroup/CreateLogStream/PutLogEvents` शामिल होते हैं via `AWSLambdaBasicExecutionRole`)। अगर function secrets/request bodies प्रिंट करता है या stack traces के साथ crash होता है, तो आप उन्हें नए log group से इकट्ठा कर सकते हैं।
|
||||
|
||||
{{#ref}}
|
||||
aws-lambda-loggingconfig-redirection.md
|
||||
@@ -58,7 +64,7 @@ aws-lambda-loggingconfig-redirection.md
|
||||
|
||||
### 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 ऑपरेशन्स exposure हो सकते हैं।
|
||||
Function URL AuthType को NONE में बदलकर और सभी को lambda:InvokeFunctionUrl देने वाली resource-based policy attach करके एक private Lambda Function URL को public unauthenticated endpoint में बदल दिया जा सकता है। इससे internal functions की anonymous invocation संभव होती है और संवेदनशील backend operations expose हो सकते हैं।
|
||||
|
||||
{{#ref}}
|
||||
aws-lambda-function-url-public-exposure.md
|
||||
@@ -66,15 +72,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 को चुपचाप divert कर देता है।
|
||||
`UpdateEventSourceMapping` का दुरुपयोग करके किसी मौजूदा 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 के जरिए डेटा एक्सफिल्ट्रेशन
|
||||
### AWS Lambda – EFS Mount Injection data exfiltration
|
||||
|
||||
`lambda:UpdateFunctionConfiguration` का दुरुपयोग करके किसी existing EFS Access Point को Lambda के साथ attach करें, फिर trivial code deploy करके mounted path से files list/read करें ताकि साझा secrets/config को exfiltrate किया जा सके जिन्हें फ़ंक्शन पहले access नहीं कर पाता था।
|
||||
`lambda:UpdateFunctionConfiguration` का दुरुपयोग करके किसी मौजूदा EFS Access Point को एक Lambda से attach किया जा सकता है, फिर सरल code deploy करके mounted path से files list/read कर के shared secrets/config जिन्हें function पहले access नहीं कर पाता था, उन्हें exfiltrate किया जा सकता है।
|
||||
|
||||
{{#ref}}
|
||||
aws-lambda-efs-mount-injection.md
|
||||
|
||||
Reference in New Issue
Block a user