AWS - Steal Lambda Requests
Last updated
Last updated
Вивчайте та практикуйте AWS Hacking: Вивчайте та практикуйте GCP Hacking:
Slicer - це процес поза контейнером, який надсилає виклики до процесу init.
Процес init слухає на порту 9001, відкриваючи деякі цікаві кінцеві точки:
/2018-06-01/runtime/invocation/next
– отримати наступну подію виклику
/2018-06-01/runtime/invocation/{invoke-id}/response
– повернути відповідь обробника для виклику
/2018-06-01/runtime/invocation/{invoke-id}/error
– повернути помилку виконання
bootstrap.py має цикл, що отримує виклики з процесу init і викликає код користувача для їх обробки (/next
).
Нарешті, bootstrap.py надсилає до init відповідь
Зверніть увагу, що bootstrap завантажує код користувача як модуль, тому будь-яке виконання коду, яке виконується кодом користувача, насправді відбувається в цьому процесі.
Мета цієї атаки - змусити код користувача виконати шкідливий процес bootstrap.py
всередині процесу bootstrap.py
, який обробляє вразливий запит. Таким чином, шкідливий bootstrap процес почне спілкуватися з процесом init, щоб обробляти запити, поки легітимний bootstrap буде захоплений, виконуючи шкідливий, тому він не запитуватиме запити у процесу init.
Це проста задача, оскільки код користувача виконується легітимним процесом bootstrap.py
. Тому зловмисник може:
Надіслати підроблений результат поточного виклику до процесу init, щоб init думав, що процес bootstrap чекає на більше викликів.
Запит має бути надісланий до /${invoke-id}/response
Виконати шкідливий boostrap.py
, який оброблятиме наступні виклики
Для цілей прихованості можливо надіслати параметри викликів lambda до C2, контрольованого зловмисником, а потім обробляти запити як зазвичай.
Знайти вразливість RCE.
Виконати шкідливий bootstrap.
Ви можете легко виконати ці дії, запустивши:
invoke-id можна отримати зі стеку легітимного процесу bootstrap.py
, використовуючи модуль python (як ) або просто запитуючи його знову до /2018-06-01/runtime/invocation/next
(як ).
Для цієї атаки достатньо отримати оригінальний код bootstrap.py
з системи або , додати шкідливий код і запустити його з поточного виклику lambda.
Згенерувати шкідливий bootstrap (наприклад, )
Для отримання додаткової інформації перегляньте
Вивчайте та практикуйте AWS Hacking: Вивчайте та практикуйте GCP Hacking:
Перегляньте !
Приєднуйтесь до 💬 або або слідкуйте за нами в Twitter 🐦 .
Діліться хакерськими трюками, надсилаючи PR до та репозиторіїв на github.