AWS - Misbruik van Lambda-uitbreidings

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Lambda-uitbreidings

Lambda-uitbreidings verbeter funksies deur te integreer met verskeie monitering, waaksaamheid, sekuriteit en bestuur gereedskap. Hierdie uitbreidings, wat bygevoeg word via .zip argiewe met Lambda-lae of ingesluit in houerbeeld ontplooiings, werk in twee modi: intern en ekstern.

  • Interne uitbreidings meng met die runtime-proses, wat die opstart daarvan manipuleer met behulp van taalspesifieke omgewing veranderlikes en wrapper-skripte. Hierdie aanpassing geld vir ’n reeks runtimes, insluitend Java Correto 8 en 11, Node.js 10 en 12, en .NET Core 3.1.
  • Eksterne uitbreidings loop as aparte prosesse, wat die werking in lyn hou met die Lambda-funksie se lewensiklus. Hulle is versoenbaar met verskeie runtimes soos Node.js 10 en 12, Python 3.7 en 3.8, Ruby 2.5 en 2.7, Java Corretto 8 en 11, .NET Core 3.1, en aangepaste runtimes.

Vir meer inligting oor hoe lambda-uitbreidings werk, kyk die dokumentasie.

Eksterne Uitbreiding vir Volharding, Diefstal van Versoeke & Modifisering van Versoeke

Dit is ’n opsomming van die tegniek wat in hierdie pos voorgestel word: https://www.clearvector.com/blog/lambda-spy/

Daar is gevind dat die standaard Linux-kern in die Lambda-runtime-omgewing saamgecompileer is met “process_vm_readv” en “process_vm_writev” stelsels oproepe. En alle prosesse loop met dieselfde gebruikers-ID, selfs die nuwe proses wat geskep is vir die eksterne uitbreiding. Dit beteken dat ’n eksterne uitbreiding volle lees- en skryfgemagtiging het tot Rapid se heap-geheue, volgens ontwerp.

Boonop, terwyl Lambda-uitbreidings die vermoë het om in te teken op aanroepgebeurtenisse, openbaar AWS nie die rou data aan hierdie uitbreidings nie. Dit verseker dat uitbreidings nie toegang het tot sensitiewe inligting wat via die HTTP-versoek oorgedra word.

Die Init (Rapid) proses monitor alle API-versoeke by http://127.0.0.1:9001 terwyl Lambda-uitbreidings geïnitialiseer en uitgevoer word voordat enige runtime-kode uitgevoer word, maar na Rapid.

https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.default.png

Die veranderlike AWS_LAMBDA_RUNTIME_API dui die IP adres en poort nommer van die Rapid API aan kind runtime prosesse en addisionele uitbreidings.

Warning

Deur die AWS_LAMBDA_RUNTIME_API omgewing veranderlike na ’n poort wat ons toegang tot het, is dit moontlik om alle aksies binne die Lambda-runtime te onderskep (man-in-the-middle). Dit is moontlik omdat die uitbreiding met dieselfde voorregte as Rapid Init loop, en die stelselkern toelaat modifikasie van prosesgeheue, wat die verandering van die poortnommer moontlik maak.

Omdat uitbreidings voor enige runtime-kode loop, sal die aanpassing van die omgewing veranderlike die runtime-proses (bv. Python, Java, Node, Ruby) beïnvloed soos dit begin. Verder, uitbreidings wat na ons gelaai word, wat op hierdie veranderlike staatmaak, sal ook deur ons uitbreiding lei. Hierdie opstelling kan malware in staat stel om sekuriteitsmaatreëls of registrasie-uitbreidings heeltemal te omseil direk binne die runtime-omgewing.

https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.mitm.png

Die hulpmiddel lambda-spy is geskep om daardie geheue skrywe en sensitiewe inligting van lambda versoeke te steel, ander uitbreidings versoeke en selfs te modifiseer.

Verwysings

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks