voidmap
Um mapeador de drivers manual muito simples que explora o CVE-2021-40449 para executar uma função arbitrária em um endereço específico com um único argumento fornecido. Ele é baseado em um PoC de exploit CallbackHell. Testado no Windows 10 Pro For Workstations 1809 17763.379 (64 bits), mas, na prática, qualquer sistema dessa época deve ser suportado.
Ele faz o seguinte:
- Desativa o SMEP (e possivelmente o SMAP) reescrevendo o valor do registro cr4
- Salta para o código em usermode que mapeia manualmente o driver desejado
- Reativa o SMEP (e possivelmente o SMAP)
Há dois problemas principais com essa abordagem:
- O driver mapeado manualmente estará em um pool alocado por ExAllocatePool. Se você quiser usar isso para algo mais sério, deve considerar uma maneira melhor de alocar memória para que não possa ser despejado tão facilmente.
- Não há uma maneira fácil de ler o valor original do cr4, o que significa que tive que codificar o valor que estava no meu sistema. Embora deva ser o mesmo para a maioria das CPUs modernas, você ainda deve verificar novamente se o valor está correto.
Vídeo:
