
Exploit de prueba de concepto para CVE-2022-26809, una vulnerabilidad de desbordamiento de enteros en el runtime de RPC de Windows. Incluye scripts de activación que utilizan coerción de rutas UNC al estilo PetitPotam contra lsass.exe y un servidor SMB falso para pruebas de explotación.
Este repositorio es simplemente una investigación sobre el CVE. Para un análisis más detallado, consulte aquí.
ACTUALIZACIÓN: 19/05/2022
Este análisis aún no está terminado...
ACTUALIZACIÓN: 22/05/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, cuando se envía la solicitud ESFRPC a lsass.exe con ruta UNC, la víctima intentará acceder al objetivo como cliente, por lo que se provocará un desbordamiento de entero en la API del cliente
Si tiene alguna mejor solución para desencadenar esta vulnerabilidad, no dude en enviar un issue o un pull request :)
Debido a que la vulnerabilidad se desencadena como CVE-2021-43893, simplemente clone el código de .
Prepare el entorno como se muestra aquí:
fake_smb_server.py en el servidor atacante después de reemplazar el rpcrt.py por el original (**Debido a que el puerto 445 está ocupado por el sistema en Windows, se recomienda desplegar el servicio en Linux **python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "usuario:contraseñ[email protected]" "\\ruta.atacante\archivorealfile
lsass.exe (Sin embargo, no he logrado desencadenar BSoD, pero según windbg, el desbordamiento de entero se ha desencadenado)Descripción anterior
Aquí está el código de reproducción para la vulnerabilidad RPC de Windows CVE-2022-26809, y se refiere 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 si GetCoalescedBuffer involucrará el verdadero CVE-2022-26809, solo lo mantengo
El poc.py solo intenta desencadenar la función vulnerable OSF_SCALL::GetCoalescedBuffer, no causará ningún fallo porque el desbordamiento de entero dword es demasiado difícil de reproducir. Y el rpcrt.py es el paquete de Python impacket.dcerpc.v5.rpcrt, simplemente reemplácelo con el original para desencadenar la vulnerabilidad (Recuerde hacer una copia de seguridad del original :) Creo que el rpcrt.py tiene una gran cantidad de errores).
Si no funciona, tal vez wireshark pueda ayudar a localizar el error.
si es necesario, use nmake para reconstruirlo