Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-0796-BOF — Archivo de Objeto Beacon de Cobalt Strike que implementa la escalada de privilegios local SMBGhost CVE-2020-0796 con rutas duales de weaponización para robo de tokens y elevación de sesión. | Kitploit
Herramientas/GitHubGitHub/rsmudge/cve-2020-0796-bof
Escalada de PrivilegiosFrameworks de ExploitsExplotaciónShellcodePost-ExplotaciónPruebas de PenetraciónRed TeamingDesarrollo de PayloadsExplotación de Binarios
GitHubrsmudge/cve-2020-0796-bof

CVE-2020-0796-BOF

Archivo de Objeto Beacon de Cobalt Strike que implementa la escalada de privilegios local SMBGhost CVE-2020-0796 con rutas duales de weaponización para robo de tokens y elevación de sesión.

7019hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

Esto es la experimentación de Raphael con el SMBGhost LPE.

Empecé con el código fuente del Metasploit Framework:

cve-2020-0796: Desbordamiento de búfer de compresión SMBv3 (SMBGhost) (CVE 2020-0796) https://github.com/rapid7/metasploit-framework/tree/master/external/source/exploits/CVE-2020-0796 [Licencia BSD]

Y, esto es lo que hice:

  1. Convertí la DLL Reflective a un Beacon Object File de Cobalt Strike 4.1.

Esto requirió declarar varias APIs de Win32 en el formato MODULE$Function de Dynamic Function Resolution. Por el lado positivo, esto redujo parte del código para llamar cosas en NTDLL ya que DFR lo maneja por nosotros. :)

Eliminé el array ptr de 1000 elementos no utilizado de get_handle_addr. Esto causaba que cl.exe insertara una función __chkstk debido a que las variables locales superaban el límite de 8KB. Los BOFs no tienen esta función disponible.

Luego incorporé algunas APIs específicas de Beacon (por ejemplo, BeaconPrintf, BeaconInjectProcess, etc.) para hacer las cosas de la manera nativa de Beacon.

Tuve que escribir algunas funciones para compensar la falta de cosas de libc que no tengo (debido a... BOFs).

  1. Dividí el código en dos rutas de weaponization diferentes:

Usa el alias smbghost en Beacon, sin argumentos, para ejecutar este exploit y afectar solo el token del proceso de Beacon. Si el exploit tiene éxito, tu token de proceso actual tendrá superpoderes que antes no tenía. Por ejemplo, ahora puedes inyectarte en otros procesos (incluso en otras sesiones de escritorio) o generar un proceso hijo bajo winlogon.exe. Puede que necesites ejecutar smbghost varias veces, ya que el exploit no siempre tiene éxito en el primer intento.

Opcionalmente, usa elevate smbghost para obtener una nueva sesión de Beacon usando la API de escalada de privilegios disponible en el Aggressor Script de Cobalt Strike. Esto está bien para una demo rápida, se ajusta a los flujos de trabajo del producto, etc. pero... se inyecta en winlogon.exe. Inyectarse en winlogon.exe no es un invariante de esta elevación en particular. Sospecho que todos los POCs públicos lo hacen porque CreateRemoteThread no funciona a través de límites de procesos y ¿quién quiere escribir el código adicional para la suplantación del proceso padre? winlogon.exe es la fruta baja fácil para demostrar que tenemos derechos elevados.

Para compilar esto con Visual Studio:

Usa make.bat desde el Símbolo del sistema de herramientas cruzadas x64.

Esto generará expolit.x64.o en dist/

Usé Visual Studio 2013. Otros compiladores/versiones no fueron probados. No probé/testeé x86.

Descargar herramienta