Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
LocalPotato_CVE-2023-21746 — Exploit de prueba de concepto para escalada de privilegios local en Windows (CVE-2023-21746) que abusa de la autenticación local NTLM para obtener privilegios SYSTEM mediante acceso a recursos compartidos SMB y secuestro de DLL. | Kitploit
Herramientas/GitHubGitHub/muhammad-ali007/localpotato_cve-2023-21746
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónMovimiento LateralPost-ExplotaciónPruebas de PenetraciónDesarrollo de PayloadsExplotación de Binarios

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
GitHub
muhammad-ali007/localpotato_cve-2023-21746

LocalPotato_CVE-2023-21746

Exploit de prueba de concepto para escalada de privilegios local en Windows (CVE-2023-21746) que abusa de la autenticación local NTLM para obtener privilegios SYSTEM mediante acceso a recursos compartidos SMB y secuestro de DLL.

Ver Repositorio
328hace 3 añosAún no revisado

Una vulnerabilidad de escalada de privilegios local (LPE) en Windows fue reportada a Microsoft el 9 de septiembre de 2022 por Andrea Pierini (@decoder_it) y Antonio Cocomazzi (@splinter_code). La vulnerabilidad permitiría a un atacante con una cuenta de bajos privilegios en un host leer/escribir archivos arbitrarios con privilegios de SYSTEM.

Si bien la vulnerabilidad en sí misma no permitiría directamente ejecutar comandos como SYSTEM, podemos combinarla con varios vectores para lograr este resultado. Convenientemente, el 13 de febrero, BlackArrowSec publicó otro PoC de escalada de privilegios que abusa del servicio StorSvc, permitiendo a un atacante ejecutar código como SYSTEM siempre que pueda escribir un archivo DLL en cualquier directorio del PATH.

El PoC de LocalPotato aprovecha una falla en un caso especial de autenticación NTLM llamada autenticación local NTLM para engañar a un proceso privilegiado para que autentique una sesión que el atacante inicia contra el servidor SMB local. Como resultado, el atacante termina teniendo una conexión que le otorga acceso a cualquier recurso compartido con los privilegios del proceso engañado, incluidos recursos especiales como C$ o ADMIN$.

El proceso seguido por el exploit es el siguiente:

  • El atacante hará que un proceso privilegiado se conecte a un servidor malicioso bajo su control. Esto funciona de manera similar a exploits Potato anteriores, donde un usuario sin privilegios puede forzar al sistema operativo a crear conexiones que utilizan un usuario privilegiado (generalmente SYSTEM).
  • El servidor malicioso instanciará un Contexto de Seguridad A para la conexión privilegiada, pero no lo enviará de inmediato. En cambio, el atacante lanzará un cliente malicioso que simultáneamente inicia una conexión contra el servidor SMB local (Compartir archivos de Windows) con sus credenciales actuales sin privilegios. El cliente enviará el mensaje Tipo1 para iniciar la conexión, y el servidor responderá enviando un mensaje Tipo2 con el ID para un nuevo Contexto de Seguridad B.
  • El atacante intercambiará los IDs de Contexto de ambas conexiones para que el proceso privilegiado reciba el contexto de la conexión del servidor SMB en lugar del suyo propio. Como resultado, el cliente privilegiado asociará su usuario (SYSTEM) con el Contexto de Seguridad B de la conexión SMB creada por el atacante. Como resultado, ¡el cliente del atacante ahora puede acceder a cualquier recurso compartido de red con privilegios de SYSTEM!

Al tener una conexión privilegiada a los recursos compartidos SMB, el atacante puede leer o escribir archivos en la máquina objetivo en cualquier ubicación. Si bien esto no nos permitirá ejecutar comandos directamente contra la máquina vulnerable, lo combinaremos con un vector de ataque diferente para lograr ese fin.

Tenga en cuenta que la vulnerabilidad está en el protocolo NTLM, no en el servidor SMB, por lo que este mismo vector de ataque podría usarse teóricamente contra cualquier servicio que utilice autenticación a través de NTLM. En la práctica, sin embargo, se deben abordar algunas limitaciones al seleccionar el protocolo a atacar. El PoC utiliza el servidor SMB para evitar algunas protecciones adicionales existentes para otros protocolos contra vectores de ataque similares e incluso implementa una derivación rápida para que el exploit funcione contra el servidor SMB. Publicación del autor original del exploit - (https://decoder.cloud/2023/02/13/localpotato-when-swapping-the-context-leads-you-to-system/)

Hasta ahora, hemos utilizado LocalPotato para escribir archivos arbitrarios en la máquina objetivo. Para obtener un shell privilegiado, todavía necesitamos descubrir cómo usar la escritura arbitraria para ejecutar un comando.

Recientemente, se encontró otro vector de escalada de privilegios, donde un atacante podría secuestrar una DLL faltante para ejecutar comandos arbitrarios con privilegios de SYSTEM. El único problema con este vector era que un atacante necesitaría escribir una DLL en el PATH del sistema para activarlo. De forma predeterminada, el PATH de Windows solo incluye directorios a los que solo las cuentas privilegiadas pueden escribir. Si bien podría ser posible encontrar máquinas donde la instalación de aplicaciones específicas haya alterado la variable PATH y hecho que la máquina sea vulnerable, el vector de ataque solo se aplica a escenarios particulares. Combinar este ataque con LocalPotato nos permite superar esta restricción y tener un exploit de escalada de privilegios completamente funcional.

StorSvc y secuestro de DLL Según lo descubierto por BlackArrowSec (https://github.com/blackarrowsec/redteam-research/tree/26e6fc0c0d30d364758fa11c2922064a9a7fd309/LPE via StorSvc), un atacante puede enviar una llamada RPC al método "SvcRebootToFlashingMode" proporcionado por el servicio "StorSvc", lo que a su vez terminará provocando un intento de cargar una DLL faltante llamada "SprintCSP.dll". Si no está familiarizado con RPC, piense en ello como una API que expone funciones para que puedan usarse de forma remota. En este caso, el servicio StorSvc expone el método SvcRebootToFlashingMode, al que cualquier persona con acceso a la máquina puede llamar. Dado que StorSvc se ejecuta con privilegios de SYSTEM, crear SprintCSP.dll en algún lugar del PATH hará que se cargue cada vez que se realice una llamada a SvcRebootToFlashingMode.

Compilación del exploit Enlace del exploit - (https://github.com/decoder-it/LocalPotato) Para usar este exploit, primero deberá compilar ambos archivos proporcionados:

  • SprintCSP.dll: Esta es la DLL faltante que vamos a secuestrar. Necesitaremos cambiar el comando para ejecutar una reverse shell.
  • RpcClient.exe: Este programa activará la llamada RPC a SvcRebootToFlashingMode. Dependiendo de la versión de Windows a la que se dirija, es posible que deba editar un poco el código del exploit, ya que diferentes versiones de Windows utilizan diferentes identificadores de interfaz para exponer SvcRebootToFlashingMode. Los proyectos para ambos archivos se pueden encontrar en el directorio "LPE via StorSvc".

Comencemos con "RpcClient.exe". Como se mencionó anteriormente, necesitaremos cambiar el exploit según la versión de Windows de la máquina objetivo. Para hacer esto, necesitaremos cambiar las primeras líneas de "LPE via StorSvc\RpcClient\RpcClient\storsvc_c.c" para que se seleccione el sistema operativo correcto. Esto configurará el exploit para usar el identificador de interfaz RPC correcto. Ahora que el código ha sido corregido, abramos un símbolo del sistema de desarrollador y compilemos el proyecto ejecutando el siguiente comando: Comandos: C:\LPE via StorSvc\RpcClient> msbuild RpcClient.sln C:\LPE via StorSvc\RpcClient> move x64\Debug\RpcClient.exe C:\Users\user\Desktop\ (El ejecutable compilado se encontrará en su escritorio.)

Ahora, para compilar "SprintCSP.dll", solo necesitamos modificar la función "DoStuff()" en "C:\LPE via StorSvc\SprintCSP\SprintCSP\main.c" para que ejecute un comando que nos otorgue acceso privilegiado a la máquina. Para simplificar, haremos que la DLL agregue nuestro usuario actual al grupo de Administradores. También podemos obtener una reverse shell desde ese objetivo a nuestra máquina. Ahora compilemos la DLL ejecutando el siguiente comando y movamos el resultado de vuelta a nuestro escritorio: Comandos: C:\LPE via StorSvc\SprintCSP> msbuild SprintCSP.sln C:\LPE via StorSvc\SprintCSP> move x64\Debug\SprintCSP.dll C:\Users\user\Desktop\

Ahora estamos listos para lanzar el exploit. Asegúrese de tener los archivos "LocalPotato.exe", "RpcClient.exe" y "SprintCSP.dll".

Descargar herramienta