Pre-OS Boot: Bootkit
Ver en attack.mitre.org →10 syscalls implementan esta técnica
- NtAddBootEntry
Registra una nueva BOOT_ENTRY en la base de datos de configuración de arranque (BCD) y devuelve el ID asignado.
- NtModifyBootEntry
Reemplaza una BOOT_ENTRY existente en el BCD con un nuevo descriptor, indexado por su ID.
- NtDeleteBootEntry
Elimina una BOOT_ENTRY del BCD por ID, borrando la variable de firmware correspondiente en UEFI.
- NtEnumerateBootEntries
Devuelve un arreglo empaquetado de estructuras BOOT_ENTRY que describen cada opción de arranque de firmware registrada.
- NtQueryBootEntryOrder
Lee la lista ordenada de IDs BOOT_ENTRY del firmware — la secuencia que la plataforma intentará en el próximo encendido.
- NtSetBootEntryOrder
Escribe el orden de intentos de arranque del firmware — el arreglo de IDs BOOT_ENTRY que la plataforma intentará en secuencia.
- NtAddDriverEntry
Registra una nueva EFI_DRIVER_ENTRY en el firmware para que el entorno UEFI cargue un controlador antes del SO.
- NtModifyDriverEntry
Sobrescribe una EFI_DRIVER_ENTRY existente identificada por su ID, reescribiendo la variable NVRAM UEFI Driver#### en su lugar.
- NtSetDriverEntryOrder
Reescribe la lista DriverOrder UEFI de la plataforma, controlando qué drivers UEFI cargan primero al arranque.
- NtSetSystemEnvironmentValueEx
Escribe o elimina una variable UEFI identificada por (nombre, GUID de proveedor) — la superficie canónica de persistencia en firmware.