AWS - Steal Lambda Requests
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Slicer, init sürecine çağrılar gönderen konteyner dışındaki bir süreçtir.
Init süreci, bazı ilginç uç noktaları açığa çıkaran 9001 portunu dinler:
/2018-06-01/runtime/invocation/next
– bir sonraki çağrı olayını al
/2018-06-01/runtime/invocation/{invoke-id}/response
– çağrı 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
bootstrap.py, init sürecinden çağrıları alan bir döngüye sahiptir ve bunları işlemek için kullanıcı kodunu çağırır (/next
).
Son olarak, bootstrap.py init'e yanıtı gönderir.
Bootstrap'ın kullanıcı kodunu bir modül olarak yüklediğini unutmayın, bu nedenle kullanıcı kodu tarafından gerçekleştirilen herhangi bir kod yürütmesi aslında bu süreçte gerçekleşmektedir.
Bu saldırının amacı, kullanıcı kodunun, savunmasız isteği işleyen bootstrap.py
süreci içinde kötü niyetli bir bootstrap.py
süreci çalıştırmasını sağlamaktır. Bu şekilde, kötü niyetli bootstrap süreci, istekleri işlemek için init süreciyle iletişim kurmaya başlayacak, bu sırada meşru bootstrap, kötü niyetli olanı çalıştırarak tuzağa düşecektir, böylece init sürecine istek sormayacaktır.
Bu, kullanıcı kodunun meşru bootstrap.py
süreci tarafından yürütüldüğü için basit bir görevdir. Böylece saldırgan:
Mevcut çağrının sahte bir sonucunu init sürecine gönderebilir, böylece init, bootstrap sürecinin daha fazla çağrı beklediğini düşünebilir.
/${invoke-id}/response
adresine bir istek gönderilmelidir.
Invoke-id, meşru bootstrap.py
sürecinin yığınından inspect python modülünü kullanarak (burada önerildiği gibi) veya sadece /2018-06-01/runtime/invocation/next
adresine tekrar istekte bulunarak elde edilebilir (burada önerildiği gibi).
Bir sonraki çağrıları işlemek için kötü niyetli bir boostrap.py
çalıştırın.
Gizlilik amacıyla, lambda çağrı parametrelerini saldırganın kontrolündeki bir C2'ye göndermek ve ardından istekleri normal şekilde işlemek mümkündür.
Bu saldırı için, bootstrap.py
'nin orijinal kodunu sistemden veya github üzerinden almak, kötü niyetli kodu eklemek ve mevcut lambda çağrısından çalıştırmak yeterlidir.
Bir RCE açığı bulun.
Kötü niyetli bir bootstrap oluşturun (örneğin https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py)
Kötü niyetli bootstrap'ı çalıştırın.
Bu eylemleri kolayca gerçekleştirebilirsiniz:
Daha fazla bilgi için https://github.com/carlospolop/lambda_bootstrap_switcher adresini kontrol edin.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)