AWS - Abusing Lambda Extensions

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya HackTricks AWS)!

Njia nyingine za kusaidia HackTricks:

Lambda Extensions

Vifaa vya Lambda huongeza utendaji kwa kuingiliana na zana mbalimbali za uchunguzi, uonekano, usalama, na utawala. Vifaa hivi, vilivyotolewa kupitia .zip archives kwa kutumia safu za Lambda au vilivyojumuishwa katika mizigo ya picha ya kontena, hufanya kazi katika njia mbili: ndani na nje.

  • Vifaa vya ndani huchanganyika na mchakato wa runtime, kubadilisha kuanza kwake kwa kutumia mazingira maalum ya lugha na scripti za pembetatu. Kubadilika huku kunatumika kwa anuwai ya mifumo ya uendeshaji, ikiwa ni pamoja na Java Correto 8 na 11, Node.js 10 na 12, na .NET Core 3.1.

  • Vifaa vya nje hufanya kazi kama michakato tofauti, kudumisha ushirikiano wa operesheni na mzunguko wa Lambda. Vinapatikana kwa mifumo mbalimbali ya uendeshaji kama vile Node.js 10 na 12, Python 3.7 na 3.8, Ruby 2.5 na 2.7, Java Corretto 8 na 11, .NET Core 3.1, na mifumo ya uendeshaji ya desturi.

Kwa habari zaidi kuhusu jinsi vifaa vya lambda extensions vinavyofanya kazi angalia nyaraka.

Kifaa cha Nje cha Uthabiti, Kuiba Maombi & Kubadilisha Maombi

Hii ni muhtasari wa mbinu iliyopendekezwa katika chapisho hili: https://www.clearvector.com/blog/lambda-spy/

Iligundulika kuwa kernel ya Linux ya msingi katika mazingira ya runtime ya Lambda imekamilishwa na " process_vm_readv" na " process_vm_writev" wito wa mfumo. Na michakato yote inaendeshwa na kitambulisho kimoja cha mtumiaji, hata mchakato mpya ulioanzishwa kwa ajili ya kifaa cha nje. Hii inamaanisha kuwa kifaa cha nje kina ufikiaji kamili wa kusoma na kuandika kumbukumbu ya Rapid, kwa kubuni.

Zaidi ya hayo, ingawa vifaa vya Lambda vina uwezo wa kujiandikisha kwa matukio ya wito, AWS haifunui data halisi kwa vifaa hivi. Hii inahakikisha kuwa vifaa haviwezi kupata habari nyeti zilizotumwa kupitia ombi la HTTP.

Mchakato wa Init (Rapid) unachunguza maombi yote ya API kwenye http://127.0.0.1:9001 wakati vifaa vya Lambda vinainitishwa na kukimbia kabla ya utekelezaji wa nambari ya runtime yoyote, lakini baada ya Rapid.

Kigezo cha AWS_LAMBDA_RUNTIME_API kinaonyesha IP na namba ya bandari ya API ya Rapid kwa mchakato wa runtime wa watoto na vifaa vingine.

Kwa kubadilisha kigezo cha mazingira cha AWS_LAMBDA_RUNTIME_API kwenda bandari tunayo ufikiaji wa, ni rahisi kuingilia vitendo vyote ndani ya runtime ya Lambda (mtu katikati). Hii inawezekana kwa sababu kifaa cha nje kinaendeshwa na mamlaka sawa na Rapid Init, na kernel ya mfumo inaruhusu ubadilishaji wa kumbukumbu ya mchakato, kuruhusu marekebisho ya namba ya bandari.

Kwa sababu vifaa vinakimbia kabla ya nambari ya runtime yoyote, kubadilisha kigezo cha mazingira kutawaathiri mchakato wa runtime (k.m., Python, Java, Node, Ruby) unapoanza. Zaidi ya hayo, vifaa vilivyopakiwa baada ya vyetu, ambavyo vinategemea kigezo hiki, pia vitapitia kupitia kifaa chetu. Hali hii inaweza kuwezesha zisizo kwa programu hasidi kupita kabisa hatua za usalama au vifaa vya kuingiza kumbukumbu moja kwa moja ndani ya mazingira ya runtime.

Zana ya lambda-spy iliumbwa kufanya kuandika kumbukumbu hiyo na kuiba habari nyeti kutoka kwa maombi ya lambda, maombi mengine ya vifaa vya nje na hata kubadilisha.

Marejeo

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya HackTricks AWS)!

Njia nyingine za kusaidia HackTricks:

Last updated