AWS - Step Functions Privesc
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Vir meer inligting oor hierdie AWS diens, kyk:
Hierdie voorregverhoging tegnieke gaan vereis dat jy 'n paar AWS stap funksie hulpbronne gebruik om die gewenste voorregverhoging aksies uit te voer.
Om al die moontlike aksies te kontroleer, kan jy na jou eie AWS rekening gaan, die aksie wat jy wil gebruik kies en die parameters wat dit gebruik sien, soos in:
Of jy kan ook na die API AWS dokumentasie gaan en elke aksie dokumentasie nagaan:
states:TestState
& iam:PassRole
'n Aanvaller met die states:TestState
& iam:PassRole
toestemmings kan enige toestand toets en enige IAM rol daaraan oorplaas sonder om 'n bestaande toestand masjien te skep of op te dateer, wat ongeoorloofde toegang tot ander AWS dienste met die rolle se toestemmings moontlik maak. Gecombineerd kan hierdie toestemmings lei tot uitgebreide ongeoorloofde aksies, van die manipulasie van werksvloei tot die verandering van data, datalekke, hulpbron manipulasie, en voorregverhoging.
Die volgende voorbeelde wys hoe om 'n toestand te toets wat 'n toegangsleutel vir die admin
gebruiker skep deur gebruik te maak van hierdie toestemmings en 'n toegeeflike rol van die AWS-omgewing. Hierdie toegeeflike rol moet enige hoë-bevoegdheid beleid geassosieer met dit hê (byvoorbeeld arn:aws:iam::aws:policy/AdministratorAccess
) wat toelaat dat die toestand die iam:CreateAccessKey
aksie uitvoer:
stateDefinition.json:
Opdrag uitgevoer om die privesc uit te voer:
Potensiële Impak: Onbevoegde uitvoering en manipulasie van werksvloeie en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke.
states:CreateStateMachine
& iam:PassRole
& (states:StartExecution
| states:StartSyncExecution
)'n Aanvaller met die states:CreateStateMachine
& iam:PassRole
sal in staat wees om 'n staat masjien te skep en enige IAM rol aan dit te verskaf, wat onbevoegde toegang tot ander AWS dienste met die rolle se toestemmings moontlik maak. In teenstelling met die vorige privesc tegniek (states:TestState
& iam:PassRole
), voer hierdie een nie self uit nie, jy sal ook die states:StartExecution
of states:StartSyncExecution
toestemmings nodig hê (states:StartSyncExecution
is nie beskikbaar vir standaard werksvloeie nie, net vir uitdrukkingsstaat masjiene) om 'n uitvoering oor die staat masjien te begin.
Die volgende voorbeelde wys hoe om 'n toestandsmasjien te skep wat 'n toegangsleutel vir die admin
gebruiker skep en hierdie toegangsleutel na 'n aanvaller-beheerde S3-bucket uit te voer, terwyl hierdie toestemmings en 'n toegeeflike rol van die AWS-omgewing benut word. Hierdie toegeeflike rol moet enige hoë-privilege beleid geassosieer met dit hê (byvoorbeeld arn:aws:iam::aws:policy/AdministratorAccess
) wat die toestandsmasjien toelaat om die iam:CreateAccessKey
& s3:putObject
aksies uit te voer.
stateMachineDefinition.json:
Opdrag uitgevoer om die toestandmasjien te skep:
Opdrag uitgevoer om 'n uitvoering van die voorheen geskepte staatmasjien te begin:
Die deur die aanvaller beheerde S3-bucket moet toestemmings hê om 'n s3:PutObject aksie van die slagoffer rekening te aanvaar.
Potensiële Impak: Ongeoorloofde uitvoering en manipulasie van werksvloeie en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke.
states:UpdateStateMachine
& (nie altyd vereis nie) iam:PassRole
'n Aanvaller met die states:UpdateStateMachine
toestemming sal in staat wees om die definisie van 'n staatmasjien te wysig, en kan ekstra stealthy state byvoeg wat kan eindig in 'n privilige-escalasie. Op hierdie manier, wanneer 'n wettige gebruiker 'n uitvoering van die staatmasjien begin, sal hierdie nuwe kwaadwillige stealth staat uitgevoer word en die privilige-escalasie sal suksesvol wees.
Afhangende van hoe permissief die IAM Rol wat aan die staatmasjien gekoppel is, is, sal 'n aanvaller 2 situasies in die gesig staar:
Permissiewe IAM Rol: As die IAM Rol wat aan die staatmasjien gekoppel is, reeds permissief is (dit het byvoorbeeld die arn:aws:iam::aws:policy/AdministratorAccess
beleid aangeheg), dan sal die iam:PassRole
toestemming nie vereis word om privilige te eskaleer nie, aangesien dit nie nodig sal wees om ook die IAM Rol op te dateer nie, met die staatmasjien definisie is genoeg.
Nie permissiewe IAM Rol: In teenstelling met die vorige geval, hier sal 'n aanvaller ook die iam:PassRole
toestemming benodig aangesien dit nodig sal wees om 'n permissiewe IAM Rol aan die staatmasjien te koppel, benewens om die staatmasjien definisie te wysig.
Die volgende voorbeelde wys hoe om 'n wettige toestandmasjien op te dateer wat net 'n HelloWorld Lambda-funksie aanroep, om 'n ekstra toestand by te voeg wat die gebruiker unprivilegedUser
by die administrator
IAM-groep voeg. Op hierdie manier, wanneer 'n wettige gebruiker 'n uitvoering van die opgedateerde toestandmasjien begin, sal hierdie nuwe kwaadwillige stealth-toestand uitgevoer word en die privilige-escalasie sal suksesvol wees.
As die toestandmasjien nie 'n toelaatbare IAM-rol geassosieer het nie, sal dit ook vereis word dat die iam:PassRole
toestemming gegee word om die IAM-rol op te dateer ten einde 'n toelaatbare IAM-rol te assosieer (byvoorbeeld een met die arn:aws:iam::aws:policy/AdministratorAccess
beleid aangeheg).
Opdrag uitgevoer om die wettige toestand masjien te opdateer:
Potensiële Impak: Onbevoegde uitvoering en manipulasie van werksvloeie en toegang tot sensitiewe hulpbronne, wat moontlik kan lei tot beduidende sekuriteitsbreuke.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)