
Un intento de portar el PoC de BlueKeep de @Ekultek a exploits reales
Este proyecto ha sido archivado ya que se han desarrollado exploits reales en otros lugares con mejor éxito.
https://blog.rapid7.com/2019/09/06/initial-metasploit-exploit-module-for-bluekeep-cve-2019-0708/
bluekeep_CVE-2019-0708_poc_to_exploit
Por favor, lea los issues (tanto cerrados como abiertos) antes de publicar cosas como "No funciona", "No pasó nada después de ejecutar el script" o "Error (sin ser específico), ayúdenme".
============================================================================
============================================================================
============================================================================ Esto no es un exploit listo para usar que puedas simplemente tomar y probar.
Además, los métodos de entrega también son importantes para asegurarse de que tus códigos se ejecuten en la máquina remota.
Hasta ahora todavía no hemos podido obtener una shell con éxito y lograr RCE.
La mayoría de los escáneres y PoCs existentes funcionan solo analizando las respuestas de los hosts objetivo y determinando si los hosts son vulnerables o no. (Como todos deberían saber, las versiones parcheadas y no parcheadas devuelven respuestas diferentes, así como sistemas operativos que no están afectados). En realidad no "explotan" los hosts objetivo. Para lograr RCE, primero debemos intentar desencadenar la vulnerabilidad enviando paquetes especialmente diseñados (consulte MSDN de RDP para las especificaciones del protocolo). Una vez que se desencadena la vulnerabilidad, el segundo paso es analizar los volcados de memoria o de fallos para descubrir cómo encajan nuestros códigos. No es tan simple como la mayoría de nosotros piensa.
Algunos recursos útiles:
Puedes usar Magic Unicorn de @trustedsec para generar shellcodes. https://github.com/trustedsec/unicorn
Nota: Por favor usa Python 3
El cliente RDP inicia la conexión cuando el usuario proporciona el nombre del escritorio remoto al que desea conectarse. El cliente RDP inicia una conexión al Host de sesión RD enviando una unidad de datos de protocolo (PDU) de solicitud de conexión X.224.
El Host de sesión RD responde con una PDU de confirmación de conexión X.224.
El cliente RDP envía una PDU de inicio de conexión MCS con una solicitud de creación de conferencia GCC. --> La vulnerabilidad está relacionada con esta solicitud.
El Host de sesión RD responde con una PDU de respuesta de conexión MCS con una respuesta de creación de conferencia GCC.
El cliente RDP envía una PDU de solicitud de dominio de erect MCS.
El cliente RDP envía una PDU de solicitud de adjuntar usuario MCS.
El Host de sesión RD responde con una PDU de confirmación de adjuntar usuario MCS.
El cliente RDP envía múltiples (en este caso seis) PDUs de solicitud de unión a canal MCS.
El Host de sesión RD envía múltiples (en este caso seis) PDUs de confirmación de unión a canal MCS.
El cliente RDP envía una PDU de intercambio de seguridad.
El cliente RDP envía una PDU de información de cliente.
El Host de sesión RD envía una PDU de error de licencia - Cliente válido.
El Host de sesión RD envía una PDU de activación demanda.
El cliente RDP responde con una PDU de activación confirmada.
El cliente RDP envía una PDU de sincronización.
El cliente RDP envía una PDU de control - Cooperar.
El cliente RDP envía una PDU de control - Solicitar control.
El cliente RDP envía cero o más PDUs de lista de claves persistentes. En este caso, se envían cero PDUs.
El cliente RDP envía una PDU de lista de fuentes.
El Host de sesión RD envía una PDU de sincronización.
El Host de sesión RD envía una PDU de control - Cooperar.
El Host de sesión RD envía una PDU de control - Control concedido.
El Host de sesión RD envía una PDU de mapa de fuentes..