AWS - Steal Lambda Requests
Last updated
Last updated
Slicer, invokasyonları init işlemine gönderen bir konteyner dışı işlemdir.
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
bootstrap.py, init işleminden invokasyonları alan ve kullanıcı kodunu işlemek için çağrı yapan bir döngüye sahiptir (/next
).
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.
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.
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.
Bir Uzaktan Kod Yürütme (RCE) zafiyeti bulun.
Bir kötü amaçlı bootstrap oluşturun (örneğin https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py)
Kötü amaçlı bootstrap'ı çalıştırın.
Bu işlemleri kolayca çalıştırabilirsiniz.
Daha fazla bilgi için https://github.com/carlospolop/lambda_bootstrap_switcher