AWS - Zloupotreba Lambda Ekstenzija
Reading time: 4 minutes
tip
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)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Lambda Ekstenzije
Lambda ekstenzije poboljšavaju funkcije integracijom sa raznim alatima za praćenje, posmatranje, bezbednost i upravljanje. Ove ekstenzije, dodate putem .zip arhiva koristeći Lambda slojeve ili uključene u implementacije kontejnerskih slika, rade u dva režima: interni i eksterni.
- Interni ekstenzije se spajaju sa procesom izvršavanja, manipulišući njegovim pokretanjem koristeći promenljive okruženja specifične za jezik i wrapper skripte. Ova prilagođavanja se primenjuju na niz izvršnih okruženja, uključujući Java Correto 8 i 11, Node.js 10 i 12, i .NET Core 3.1.
- Eksterni ekstenzije rade kao odvojeni procesi, održavajući usklađenost sa životnim ciklusom Lambda funkcije. Kompatibilni su sa raznim izvršnim okruženjima kao što su Node.js 10 i 12, Python 3.7 i 3.8, Ruby 2.5 i 2.7, Java Corretto 8 i 11, .NET Core 3.1, i prilagođena izvršna okruženja.
Za više informacija o kako lambda ekstenzije funkcionišu proverite dokumentaciju.
Eksterni Ekstenzija za Održavanje, Krađu Zahteva i Modifikaciju Zahteva
Ovo je sažetak tehnike predložene u ovom postu: https://www.clearvector.com/blog/lambda-spy/
Otkriveno je da je podrazumevani Linux kernel u Lambda okruženju izvršavanja kompajliran sa “process_vm_readv” i “process_vm_writev” sistemskim pozivima. I svi procesi se izvršavaju sa istim korisničkim ID-jem, čak i novi proces kreiran za eksternu ekstenziju. To znači da eksterni ekstenzija ima pun pristup za čitanje i pisanje u Rapidovu heap memoriju, po dizajnu.
Štaviše, dok Lambda ekstenzije imaju mogućnost da pretplate na događaje invokacije, AWS ne otkriva sirove podatke ovim ekstenzijama. Ovo osigurava da ekstenzije ne mogu pristupiti osetljivim informacijama koje se prenose putem HTTP zahteva.
Init (Rapid) proces prati sve API zahteve na http://127.0.0.1:9001 dok se Lambda ekstenzije inicijalizuju i izvršavaju pre nego što se izvrši bilo koji kod izvršavanja, ali nakon Rapida.
.png)
https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.default.png
Promenljiva AWS_LAMBDA_RUNTIME_API
označava IP adresu i broj porta Rapid API-ju za dečije procese izvršavanja i dodatne ekstenzije.
warning
Promenom AWS_LAMBDA_RUNTIME_API
promenljive okruženja na port
kojem imamo pristup, moguće je presresti sve akcije unutar Lambda izvršavanja (man-in-the-middle). Ovo je moguće jer ekstenzija radi sa istim privilegijama kao Rapid Init, a kernel sistema omogućava modifikaciju memorije procesa, omogućavajući promenu broja porta.
Budući da ekstenzije rade pre bilo kog koda izvršavanja, modifikacija promenljive okruženja će uticati na proces izvršavanja (npr. Python, Java, Node, Ruby) kada se pokrene. Štaviše, ekstenzije učitane nakon naše, koje se oslanjaju na ovu promenljivu, takođe će prolaziti kroz našu ekstenziju. Ova postavka bi mogla omogućiti malveru da potpuno zaobiđe bezbednosne mere ili ekstenzije za logovanje direktno unutar okruženja izvršavanja.
.png)
https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.mitm.png
Alat lambda-spy je kreiran da izvrši tu memorijsku pisanje i ukrade osetljive informacije iz lambda zahteva, drugih ekstenzija zahteva i čak modifikuje ih.
Reference
- https://aws.amazon.com/blogs/compute/building-extensions-for-aws-lambda-in-preview/
- https://www.clearvector.com/blog/lambda-spy/
tip
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)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.