AWS - Nitro Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS Nitro - це набір інноваційних технологій, які формують базову платформу для AWS EC2 інстансів. Введений Amazon для покращення безпеки, продуктивності та надійності, Nitro використовує спеціальні апаратні компоненти та легкий гіпервізор. Він абстрагує більшість традиційних функцій віртуалізації на спеціалізоване апаратне та програмне забезпечення, мінімізуючи поверхню атаки та покращуючи ефективність ресурсів. Відвантажуючи функції віртуалізації, Nitro дозволяє EC2 інстансам забезпечувати практично продуктивність bare-metal, що робить його особливо корисним для ресурсомістких додатків. Крім того, Nitro Security Chip спеціально забезпечує безпеку апаратного забезпечення та прошивки, ще більше зміцнюючи його надійну архітектуру.
AWS Nitro Enclaves забезпечує безпечне, ізольоване обчислювальне середовище в Amazon EC2 інстансах, спеціально розроблене для обробки надзвичайно чутливих даних. Використовуючи AWS Nitro System, ці енклави забезпечують надійну ізоляцію та безпеку, ідеально підходять для обробки конфіденційної інформації, такої як PII або фінансові записи. Вони мають мінімалістичне середовище, що значно знижує ризик витоку даних. Крім того, Nitro Enclaves підтримують криптографічну атестацію, що дозволяє користувачам перевіряти, що виконується лише авторизований код, що є критично важливим для підтримки суворих стандартів відповідності та захисту даних.
Зображення Nitro Enclave запускаються зсередини EC2 інстансів, і ви не можете побачити з веб-консолі AWS, чи запущені зображення в Nitro Enclave чи ні.
Слідуйте всім інструкціям з документації. Однак, це найважливіші з них:
Зображення, які ви можете запустити в Nitro Enclave, базуються на docker-зображеннях, тому ви можете створити свої зображення Nitro Enclave з docker-зображень, таких як:
Як ви можете бачити, зображення Nitro Enclave використовують розширення eif
(Enclave Image File).
Вихід буде виглядати подібно до:
Згідно з документацією, для запуску зображення енклаву вам потрібно виділити пам'ять принаймні в 4 рази більшу за розмір файлу eif
. Можливо налаштувати ресурси за замовчуванням, які потрібно надати в файлі.
Завжди пам'ятайте, що вам потрібно зарезервувати деякі ресурси для батьківського EC2 екземпляра також!
Після того, як ви дізналися про ресурси, які потрібно надати зображенню, і навіть змінивши файл конфігурації, можливо запустити зображення анклаву за допомогою:
Якщо ви зламали хост EC2, можливо отримати список запущених образів енклавів за допомогою:
Це неможливо отримати shell всередині запущеного образу enclave, оскільки це основна мета enclave, однак, якщо ви використовували параметр --debug-mode
, можливо отримати stdout з нього за допомогою:
Якщо зловмисник зламає EC2 екземпляр, за замовчуванням він не зможе отримати оболонку всередині них, але він зможе terminate them з:
Єдиний спосіб зв'язатися з enclave, що виконує образ, - це використання vsocks.
Віртуальний сокет (vsock) - це сімейство сокетів у Linux, спеціально розроблене для полегшення зв'язку між віртуальними машинами (VMs) та їх гипервізорами, або між VMs самими. Vsock забезпечує ефективний, двосторонній зв'язок без покладання на мережевий стек хоста. Це робить можливим зв'язок VMs навіть без мережевих конфігурацій, використовуючи 32-бітний Context ID (CID) та номери портів для ідентифікації та управління з'єднаннями. API vsock підтримує як потоки, так і типи сокетів датаграм, подібно до TCP та UDP, надаючи універсальний інструмент для додатків на рівні користувача у віртуальних середовищах.
Отже, адреса vsock виглядає так: <CID>:<Port>
Щоб знайти CIDs образів, що виконують enclave, ви можете просто виконати наступну команду і отримати EnclaveCID
:
Зверніть увагу, що з хоста немає жодного способу дізнатися, чи CID відкриває якийсь порт! Якщо не використовувати якийсь сканер портів vsock, як https://github.com/carlospolop/Vsock-scanner.
Знайдіть тут кілька прикладів: