
Alcance leituras/gravações arbitrárias do kernel e chamadas de funções em ambientes protegidos por Hypervisor-Protected Code Integrity (HVCI), realizando chamadas sem permissões de administrador ou drivers de kernel.
O ZeroHVCI realiza leituras/gravações/chamadas de funções arbitrárias no kernel em ambientes protegidos pela Hypervisor-Protected Code Integrity (HVCI) sem exigir permissões de administrador ou drivers de kernel.

Para começar com o ZeroHVCI, você pode clonar este repositório e compilar o projeto.
//
// 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);
Dois projetos principais são responsáveis por tornar isso possível:
Demonstra como CVEs publicadas podem ser encadeadas para obter acesso ao kernel em ambientes protegidos por HVCI. Útil para pesquisadores de segurança que estudam a integridade do kernel do Windows e as mitigações de bypass do HVCI.
Cr4sh por KernelForge
varwara por sua POC POC2
Eric Egsgard por sua palestra
Apenas para pesquisa de segurança educacional e autorizada. Não use em sistemas que você não possui ou para os quais não tem permissão explícita para testar. Não sou responsável pelo uso indevido. Use por sua conta e risco.
Todos os nomes de produtos, marcas comerciais e marcas registradas mencionados são propriedade de seus respectivos proprietários.