
Реализуйте произвольное чтение/запись в ядре и вызов функций в средах, защищённых Hypervisor-Protected Code Integrity (HVCI), без прав администратора или драйверов ядра.
ZeroHVCI обеспечивает произвольное чтение/запись/вызов функций в ядре в средах, защищённых целостностью кода под защитой гипервизора (HVCI), без прав администратора и драйверов ядра.

Чтобы начать работу с ZeroHVCI, вы можете клонировать этот репозиторий и собрать проект.
//
// Read kernel memory example:
//
ReadKernelMemory(source_address, buffer_address, size);
//
// Write kernel memory example:
//
WriteKernelMemory(source_address, buffer_address, size);
//
// Kernel function calling example via name:
//
KF::CallKernelFunctionViaName<kernel_param_type1, kernel_param_type2, kernel_param_type3>(
"kernel_function_name",
param1,
param2,
param3);
//
// ExAllocatePool example:
//
KF::CallKernelFunctionViaName<PVOID, POOL_TYPE, SIZE_T>("ExAllocatePool", PoolType, Size);
//
// memcpy example:
//
KF::CallKernelFunctionViaName<PVOID, PVOID, PVOID, SIZE_T>("memcpy", Dst, Src, Size);
//
// PsLookupProcessByProcessId example:
//
PEPROCESS Process;
KF::CallKernelFunctionViaName<NTSTATUS, HANDLE, PEPROCESS*>("PsLookupProcessByProcessId", ProcessHandle, &Process);
Два основных проекта делают это возможным
Демонстрирует, как опубликованные CVE могут быть объединены в цепочку для получения доступа к ядру в средах, защищённых HVCI. Полезно для исследователей безопасности, изучающих целостность ядра Windows и методы обхода защиты HVCI.
Cr4sh за KernelForge
varwara за его POC POC2
Eric Egsgard за его доклад
Только для образовательных целей и санкционированных исследований в области безопасности. Не используйте на системах, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Я не несу ответственности за неправомерное использование. Используйте на свой страх и риск.
Все упомянутые названия продуктов, товарные знаки и зарегистрированные товарные знаки являются собственностью их соответствующих владельцев.