mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 23:15:48 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user