AWS - Steal Lambda Requests
Mchakato wa Lambda
Slicer ni mchakato nje ya kontena ambao hutuma invocations kwa mchakato wa init.
Mchakato wa init husikiliza kwenye bandari 9001 ikifichua baadhi ya njia za kuvutia:
/2018-06-01/runtime/invocation/next
– pata tukio la invocation linalofuata/2018-06-01/runtime/invocation/{invoke-id}/response
– rudisha jibu la handler kwa invoke/2018-06-01/runtime/invocation/{invoke-id}/error
– rudisha kosa la utekelezaji
bootstrap.py ina mzunguko wa kupata invocations kutoka kwa mchakato wa init na kuita msimbo wa watumiaji kuushughulikia (
/next
).Hatimaye, bootstrap.py hutuma kwa init jibu
Kumbuka kuwa bootstrap hupakia msimbo wa mtumiaji kama moduli, kwa hivyo utekelezaji wowote wa msimbo unaofanywa na msimbo wa watumiaji unafanyika katika mchakato huu.
Kuiba Maombi ya Lambda
Lengo la shambulio hili ni kufanya msimbo wa watumiaji utekeleze mchakato wa bootstrap.py
wenye nia mbaya ndani ya mchakato wa bootstrap.py
unaoshughulikia ombi lenye udhaifu. Kwa njia hii, mchakato wa bootstrap wenye nia mbaya utaanza kuongea na mchakato wa init kushughulikia maombi wakati bootstrap halali imekwama ikitekeleza ule wenye nia mbaya, hivyo haitauliza maombi kwa mchakato wa init.
Hii ni kazi rahisi kufanikisha kwani msimbo wa mtumiaji unatekelezwa na mchakato halali wa bootstrap.py
. Kwa hivyo mshambulizi anaweza:
Tuma matokeo bandia ya invocation ya sasa kwa mchakato wa init, hivyo init inafikiria mchakato wa bootstrap unasubiri invocations zaidi.
Ombi lazima litumwe kwa
/${invoke-id}/response
Invoke-id inaweza kupatikana kutoka kwa stack ya mchakato halali wa
bootstrap.py
kwa kutumia moduli ya python ya inspect (kama inavyopendekezwa hapa) au kwa kuiomba tena kwa/2018-06-01/runtime/invocation/next
(kama inavyopendekezwa hapa).Tekeleza
bootstrap.py
yenye nia mbaya ambayo itashughulikia invocations zinazofuataKwa madhumuni ya kujificha, inawezekana kutuma vigezo vya invocations za lambda kwa C2 inayodhibitiwa na mshambulizi na kisha kushughulikia maombi kama kawaida.
Kwa shambulio hili, inatosha kupata msimbo asili wa
bootstrap.py
kutoka kwa mfumo au github, ongeza msimbo wenye nia mbaya na uutekeleze kutoka kwa invocation ya sasa ya lambda.
Hatua za Shambulio
Pata udhaifu wa RCE.
Tengeneza bootstrap yenye nia mbaya (mfano https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py)
Tekeleza bootstrap yenye nia mbaya.
Unaweza kufanya vitendo hivi kwa urahisi kwa kuendesha:
Kwa maelezo zaidi angalia https://github.com/carlospolop/lambda_bootstrap_switcher
Marejeo
Last updated