AWS - Steal Lambda Requests
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)
Slicer is 'n proses buite die houer wat stuur aanroepings na die init proses.
Die init proses luister op poort 9001 wat 'n paar interessante eindpunte blootstel:
/2018-06-01/runtime/invocation/next
– kry die volgende aanroep gebeurtenis
/2018-06-01/runtime/invocation/{invoke-id}/response
– keer die handler respons vir die aanroep terug
/2018-06-01/runtime/invocation/{invoke-id}/error
– keer 'n uitvoeringsfout terug
bootstrap.py het 'n lus wat aanroepings van die init proses kry en roep die gebruikerskode aan om dit te hanteer (/next
).
Laastens, bootstrap.py stuur die respons na init
Let daarop dat bootstrap die gebruikerskode as 'n module laai, so enige kode-uitvoering wat deur die gebruikerskode uitgevoer word, gebeur eintlik in hierdie proses.
Die doel van hierdie aanval is om die gebruikerskode 'n kwaadwillige bootstrap.py
proses binne die bootstrap.py
proses wat die kwesbare aanvraag hanteer, te laat uitvoer. Op hierdie manier sal die kwaadwillige bootstrap proses begin praat met die init proses om die aanroepings te hanteer terwyl die legitieme bootstrap gevang is wat die kwaadwillige een uitvoer, sodat dit nie vir aanroepings aan die init proses sal vra nie.
Dit is 'n eenvoudige taak om te bereik aangesien die kode van die gebruiker deur die legitieme bootstrap.py
proses uitgevoer word. So die aanvaller kan:
Stuur 'n vals resultaat van die huidige aanroep na die init proses, sodat init dink die bootstrap proses wag vir meer aanroepings.
'n Aanvraag moet gestuur word na /${invoke-id}/response
Die invoke-id kan verkry word van die stapel van die legitieme bootstrap.py
proses deur die inspect python module (soos hier voorgestel) of net weer aan te vra na /2018-06-01/runtime/invocation/next
(soos hier voorgestel).
Voer 'n kwaadwillige boostrap.py
uit wat die volgende aanroepings sal hanteer
Vir stealthiness doeleindes is dit moontlik om die lambda aanroepingsparameters na 'n aanvaller beheerde C2 te stuur en dan die aanroepings soos gewoonlik te hanteer.
Vir hierdie aanval is dit genoeg om die oorspronklike kode van bootstrap.py
van die stelsel of github te kry, die kwaadwillige kode by te voeg en dit van die huidige lambda aanroep uit te voer.
Vind 'n RCE kwesbaarheid.
Genereer 'n kwaadwillige bootstrap (bv. https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py)
Voer die kwaadwillige bootstrap uit.
Jy kan hierdie aksies maklik uitvoer deur te loop:
For more info check https://github.com/carlospolop/lambda_bootstrap_switcher
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)