AWS - Lambda Enum

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

लैम्बडा

अमेज़न वेब सेवाएं (AWS) लैम्बडा को एक कम्प्यूट सेवा के रूप में वर्णित किया गया है जो सर्वर प्राविधान या प्रबंधन की आवश्यकता के बिना कोड का क्रियान्वयन संभव बनाता है। इसे उसकी क्षमता के द्वारा स्वचालित रूप से संसाधन आवंटन करने की विशेषता से चिह्नित किया गया है, जिससे कोड क्रियान्वयन के लिए आवश्यक संसाधन आवंटित किए जाते हैं, उच्च उपलब्धता, पैम्बलिता और सुरक्षा जैसी सुविधाएं सुनिश्चित करते हैं। लैम्बडा का एक महत्वपूर्ण पहलू इसकी मूल्य निर्धारण मॉडल है, जहां शुल्क केवल कम्प्यूट समय पर आधारित होते हैं, प्रारंभिक निवेश या दीर्घकालिक दायित्व की आवश्यकता को समाप्त करते हैं।

लैम्बडा को कॉल करने के लिए आप इसे जितनी बार चाहें कॉल कर सकते हैं (क्लाउडवॉच के साथ), एक URL एंडपॉइंट उजागर करें और कॉल करें, API गेटवे के माध्यम से कॉल करें या या घटनाओं के आधार पर कॉल करें जैसे कि S3 बकेट में डेटा में परिवर्तन या DynamoDB तालिका में अपडेट।

लैम्बडा का कोड /var/task में संग्रहित होता है।

लैम्बडा उपनाम वेट

लैम्बडा के पास कई संस्करण हो सकते हैं। और एक उपनाम के माध्यम से एक से अधिक संस्करण उजागर हो सकते हैं। उपनाम के अंदर उजागर होने वाले प्रत्येक संस्करण की वजन यह निर्धारित करेगा कि कौन सा उपनाम आमंत्रण प्राप्त करेगा (यह उदाहरण के लिए 90%-10% हो सकता है)। यदि किसी उपनाम का कोड वंशवादी है तो आप अनुरोध भेज सकते हैं जब तक वंशवादी संस्करण एक्सप्लॉइट प्राप्त नहीं करता

संसाधन नीतियाँ

लैम्बडा संसाधन नीत

aws lambda get-account-settings

# List functions and get extra config info
aws lambda list-functions
aws lambda get-function --function-name <function_name>
aws lambda get-function-configuration --function-name <function_name>
aws lambda list-function-event-invoke-configs --function-name <function_name>
## Check for creds in env vars
aws lambda list-functions | jq '.Functions[].Environment'
## Download & check the source code
aws lambda get-function --function-name "<func_name>" --query 'Code.Location'
wget -O lambda-function.zip <url-from-previous-query>

# Get Lambda URL (if any)
aws lambda list-function-url-configs --function-name <function_name>
aws lambda get-function-url-config --function-name <function_name>

# Get who has permissions to invoke the Lambda
aws lambda get-policy --function-name <function_name>

# Versions and Aliases
aws lambda list-versions-by-function --function-name <func_name>
aws lambda list-aliases --function-name <func_name>

# List layers
aws lambda list-layers
aws lambda list-layer-versions --layer-name <name>
aws lambda get-layer-version --layer-name <name> --version-number <ver>
aws lambda get-layer-version-by-arn --arn <name> #Get external ARNs

# List other metadata
aws lambda list-event-source-mappings
aws lambda list-code-signing-configs
aws lambda list-functions-by-code-signing-config --code-signing-config-arn <arn>

लैम्बडा को आह्वान करें

मैन्युअल

# Invoke function
aws lambda invoke --function-name FUNCTION_NAME /tmp/out
## Some functions will expect parameters, they will access them with something like:
## target_policys = event['policy_names']
## user_name = event['user_name']
aws lambda invoke --function-name <name> --cli-binary-format raw-in-base64-out --payload '{"policy_names": ["AdministratorAccess], "user_name": "sdf"}' out.txt

उजागर किए गए URL के माध्यम से

aws lambda list-function-url-configs --function-name <function_name> #Get lambda URL
aws lambda get-function-url-config   --function-name <function_name> #Get lambda URL

URL के माध्यम से Lambda function को कॉल करें

अब समय है कि कौन से संभावित लैम्बडा फंक्शन को निष्पादित करने के लिए पता लगाया जाए:

aws --region us-west-2 --profile level6 lambda list-functions

एक लैम्बडा फंक्शन जिसका नाम "Level6" है, उपलब्ध है। चलिए देखते हैं कि इसे कैसे कॉल किया जाए:

aws --region us-west-2 --profile level6 lambda get-policy --function-name Level6

अब, जब आप नाम और आईडी जान चुके हैं तो आप नाम प्राप्त कर सकते हैं:

aws --profile level6 --region us-west-2 apigateway get-stages --rest-api-id "s33ppypa75"

और अंत में फ़ंक्शन को कॉल करें (ध्यान दें कि आईडी, नाम और फ़ंक्शन-नाम URL में दिखाई देते हैं): https://s33ppypa75.execute-api.us-west-2.amazonaws.com/Prod/level6

URL:https://<rest-api-id>.execute-api.<region>.amazonaws.com/<stageName>/<funcName>

अन्य ट्रिगर

कई अन्य स्रोत हैं जो लैम्बडा को ट्रिगर कर सकते हैं

Privesc

निम्नलिखित पृष्ठ पर आप देख सकते हैं कि लैम्बडा अनुमतियों का दुरुपयोग कैसे करके विशेषाधिकारों को उन्नत करें:

pageAWS - Lambda Privesc

अअथेंटिकेटेड एक्सेस

pageAWS - Lambda Unauthenticated Access

पोस्ट एक्सप्लोइटेशन

pageAWS - Lambda Post Exploitation

स्थिरता

pageAWS - Lambda Persistence

संदर्भ

हैकिंग को शून्य से हीरो तक एडब्ल्यूएस से सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated