Исследование BlackLotus UEFI bootkit показывает обход Secure Boot через уязвимость CVE-2022-21894. Для этого в MOK (Machine Owner Key) добавляется собственный сертификат, что позволяет запускать неподписанный код. Утилита MokManager используется для управления доверенными ключами системы, а автоматизация добавления подписи в MOK осуществляется через указанную уязвимость. MOK дополняет базы данных
Для компиляции и запуска MyMOKManager.efi, необходимого для управления MOK, используется Visual Studio 2017. Проект EDK-II компилируется для создания среды разработки. MyMOKManager.efi проверяется в UEFI Shell, чтобы убедиться в его работоспособности. Для запуска из контекста загрузочной среды применяется CVE-2022-21894, разделенная на две части: stage2 (переключается в контекст прошивки) и mcupdate.dll (работает в контексте приложения).
Для чтения и записи в файловую систему NTFS используется модифицированный grub.efi. После установки Ubuntu 20.04.2, из неё извлекается shim и связанные компоненты. После этого в код grub добавляется код для работы с NTFS. Затем grub компилируется, подписывается, и устанавливается в систему, после чего модифицированный grub.efi позволяет читать и перезаписывать файлы.
В заключение, все компоненты собираются вместе в Windows 10. Использование CVE-2022-21894 позволяет запустить grubx64.efi, что демонстрирует обход Secure Boot. После перезагрузки и выбора Windows 10 через GRUB, выполняется код, позволяющий перезаписать файл test.txt на рабочем столе, что показывает полный контроль над файловой системой.
db
и dbx
, предоставляя пользователю гибкость в управлении загрузочными компонентами. Изображение носит иллюстративный характер
Для компиляции и запуска MyMOKManager.efi, необходимого для управления MOK, используется Visual Studio 2017. Проект EDK-II компилируется для создания среды разработки. MyMOKManager.efi проверяется в UEFI Shell, чтобы убедиться в его работоспособности. Для запуска из контекста загрузочной среды применяется CVE-2022-21894, разделенная на две части: stage2 (переключается в контекст прошивки) и mcupdate.dll (работает в контексте приложения).
Для чтения и записи в файловую систему NTFS используется модифицированный grub.efi. После установки Ubuntu 20.04.2, из неё извлекается shim и связанные компоненты. После этого в код grub добавляется код для работы с NTFS. Затем grub компилируется, подписывается, и устанавливается в систему, после чего модифицированный grub.efi позволяет читать и перезаписывать файлы.
В заключение, все компоненты собираются вместе в Windows 10. Использование CVE-2022-21894 позволяет запустить grubx64.efi, что демонстрирует обход Secure Boot. После перезагрузки и выбора Windows 10 через GRUB, выполняется код, позволяющий перезаписать файл test.txt на рабочем столе, что показывает полный контроль над файловой системой.