nullmap
Um mapeador de drivers manual muito simples baseado no meu antigo voidmap e no POC do CVE-2023-21768 por chompie e b33f. Como a primitiva de leitura/escrita de memória pós-exploração do IoRing subjacente não lida muito bem com muitas leituras e escritas consecutivas, decidi sobrescrever o CR4 para desabilitar SMEP/SMAP e executar o driver mapeado no modo de usuário. Testado no Windows 11 22H2 (22621.525).
Uso:
nullmap.exe <caminho_para_o_driver>
Possíveis problemas:
- O driver mapeado manualmente estará em um pool alocado por ExAllocatePool. Se você quiser usar isso para algo mais sério, considere encontrar uma maneira melhor de alocar memória para que não possa ser descarregado 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ê deve verificar se o valor está correto.
- Codifiquei o deslocamento para NtGdiGetEmbUFI, pois não há uma maneira fácil de fazer sigscan nele, o que significa que você terá que atualizar esse deslocamento para sua versão específica do Windows.
- Foi escrito em uma tarde, pode não ser o código mais limpo.
Vídeo:
