AWS - Steal Lambda Requests
Last updated
Last updated
Uči i vežbaj AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Uči i vežbaj GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Slicer je proces van kontejnera koji šalje invokacije procesu init.
Proces init sluša na portu 9001 izlažući neke zanimljive krajnje tačke:
/2018-06-01/runtime/invocation/next
– dobiti sledeći događaj invokacije
/2018-06-01/runtime/invocation/{invoke-id}/response
– vratiti odgovor handler-a za invokaciju
/2018-06-01/runtime/invocation/{invoke-id}/error
– vratiti grešku u izvršavanju
bootstrap.py ima petlju koja dobija invokacije iz init procesa i poziva korisnički kod da ih obradi (/next
).
Na kraju, bootstrap.py šalje init-u odgovor
Napomena da bootstrap učitava korisnički kod kao modul, tako da se svako izvršavanje koda koje obavlja korisnički kod zapravo dešava u ovom procesu.
Cilj ovog napada je da se korisnički kod izvrši kao zlonamerni bootstrap.py
proces unutar bootstrap.py
procesa koji obrađuje ranjivu zahtev. Na ovaj način, zlonamerni bootstrap proces će početi da komunicira sa init procesom kako bi obradio zahteve dok je legitiman bootstrap zarobljen u izvršavanju zlonamernog, tako da neće tražiti zahteve od init procesa.
Ovo je jednostavan zadatak za postizanje jer se kod korisnika izvršava od strane legitimnog bootstrap.py
procesa. Tako da napadač može:
Poslati lažni rezultat trenutne invokacije init procesu, tako da init misli da bootstrap proces čeka na više invokacija.
Zahtev mora biti poslat na /${invoke-id}/response
Invoke-id se može dobiti iz steka legitimnog bootstrap.py
procesa koristeći inspect python modul (kao predloženo ovde) ili jednostavno ponovo zahtevati na /2018-06-01/runtime/invocation/next
(kao predloženo ovde).
Izvršiti zlonamerni boostrap.py
koji će obraditi sledeće invokacije
U svrhu prikrivanja, moguće je poslati parametre lambda invokacija na C2 kontrolisan od strane napadača i zatim obraditi zahteve kao i obično.
Za ovaj napad, dovoljno je dobiti originalni kod bootstrap.py
sa sistema ili github, dodati zlonamerni kod i pokrenuti ga iz trenutne lambda invokacije.
Pronađi RCE ranjivost.
Generiši zlonamerni bootstrap (npr. https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py)
Izvrši zlonamerni bootstrap.
Možeš lako izvršiti ove akcije pokretanjem:
Za više informacija proverite https://github.com/carlospolop/lambda_bootstrap_switcher
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)