Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
CVE-2025-7771 — Catena di exploit completa per CVE-2025-7771 in ThrottleStop.sys, che sfrutta IOCTL di lettura/scrittura non validati sulla memoria fisica per escalare da amministratore a SYSTEM su Windows. | Kitploit
Strumenti/GitHubGitHub/yulisec/cve-2025-7771
Strumenti DifensiviEscalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingRed TeamingSviluppo PayloadBinary Exploitation
GitHubyulisec/cve-2025-7771

CVE-2025-7771

Catena di exploit completa per CVE-2025-7771 in ThrottleStop.sys, che sfrutta IOCTL di lettura/scrittura non validati sulla memoria fisica per escalare da amministratore a SYSTEM su Windows.

112h 25m faNon ancora revisionato

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 →
Vedi Repository
Condividi

CVE-2025-7771 — Lettura/Scrittura arbitraria della memoria fisica tramite ThrottleStop.sys

Proof-of-concept completo per il driver ThrottleStop.sys di TechPowerUp (CVE-2025-7771). Un driver kernel firmato e ancora caricabile espone lettura e scrittura di memoria fisica non validate attraverso due IOCTL. Questo repository trasforma quella primitiva in una scalata di privilegi locale da amministratore a SYSTEM funzionante e documenta una stranezza nella denominazione del dispositivo che aggira la maggior parte dei rilevamenti basati su percorso e nome file.

Esisteva già un PoC per gli stessi IOCTL (vedi Crediti). Questa è una catena di exploit completa e indipendente, non una semplice dimostrazione della primitiva.

Driver interessato

CampoValore
SHA25616F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
SHA182ED942A52CDCF120A8919730E00BA37619661A3
MD56BC8E3505D9F51368DDF323ACB6ABC49
Versione3.0.0.0 ("Low-Level Driver", 2004-2020)
FirmatarioTechPowerUp LLC, DigiCert EV Code Signing
Thumbprint certificato524EDA9C819321C66E22C7BABEB23DAEAFFB2182
Validità certificato2019-08-10 to 2022-06-15

Il certificato è scaduto nel 2022, ma la firma porta un timestamp di controfirma attendibile, quindi Windows lo carica comunque. La revoca aiuta solo se la sua data precede quella della firma, cosa che raramente accade per driver vecchi come questo.

La risorsa di versione non ha CompanyName, OriginalFilename o InternalName, quindi il file non può essere attribuito a un fornitore dai suoi stessi metadati.

Il bug

Due IOCTL leggono e scrivono memoria fisica senza validazione dei limiti o degli indirizzi:

IOCTLOperazione
0x80006498Lettura fisica
0x8000649CScrittura fisica

Entrambi sono METHOD_BUFFERED, quindi non c'è dereferenziazione di puntatori utente; il difetto è la mancata validazione dell'indirizzo fisico fornito dal chiamante, non un puntatore non controllato.

Da segnalare: l'handler di scrittura 0x8000649C è dichiarato FILE_READ_ACCESS. Un handle aperto in sola lettura può comunque emettere scritture fisiche, quindi la maschera di accesso dichiarata non corrisponde a ciò che l'handler fa effettivamente.

Impatto

Aprire il dispositivo richiede privilegi di amministratore, quindi non si tratta di un attraversamento del confine di privilegio di per sé. Ciò che offre a un attaccante già amministratore è lettura/scrittura arbitraria del kernel dalla modalità utente, che sconfigge le protezioni che dovrebbero reggere al di sopra dell'amministratore: integrità del codice HVCI, PPL e auto-protezione di EDR/AV. Classico bring-your-own-vulnerable-driver.

Come dimostrazione concreta, il PoC usa la primitiva di R/W per rubare il token di SYSTEM e generare una shell SYSTEM.

CVSS 4.0: AV:L/AC:H/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H (8.7, High).

Come funziona l'exploit

Tutto viene eseguito dalla modalità utente contro gli IOCTL di R/W fisica del driver. Non c'è page-table walking e nessun CR3 coinvolto; entrambi i processi vengono individuati scansionando direttamente la memoria fisica:

  1. Individuare SYSTEM. Scansionare la memoria fisica per un EPROCESS il cui ImageFileName sia System e il cui UniqueProcessId sia 4. La scansione è limitata agli intervalli di RAM popolata letti dalla chiave di registro HARDWARE\RESOURCEMAP\...\Physical Memory del firmware, non una finestra ipotizzata, quindi i buchi MMIO non vengono mai toccati e nulla al di sopra della RAM installata viene perso.
  2. Leggere il token di SYSTEM. Leggere il campo Token (EPROC_TOKEN) dall'EPROCESS individuato.
  3. Individuare il nostro processo. Scansionare la memoria fisica allo stesso modo per l'EPROCESS del PoC stesso, confrontando il nome dell'immagine come pattern di 8 byte e confermando con il suo PID.
  4. Scambiare il token. Scrivere il valore del token di SYSTEM nel nostro slot Token. Il token è un _EX_FAST_REF, quindi i bit bassi del reference-count sono mascherati per impostazione predefinita (--mask seleziona il comportamento).
  5. Dimostrarlo. Generare cmd.exe; whoami restituisce NT AUTHORITY\SYSTEM.

Gli offset (EPROC_TOKEN, EPROC_PID, EPROC_IMG_NAME, ecc.) sono per una build specifica e devono essere confermati con dt nt!_EPROCESS sulla versione di Windows di destinazione.

Il nome dell'eseguibile è importante. Il passo 3 individua il nostro processo confrontando il suo ImageFileName in memoria fisica, e quel campo è limitato a 15 caratteri con la scansione che confronta i primi 8. Mantieni il nome compilato breve e distintivo; se rinomini il binario, rimani entro quel limite o la scansione automatica non troverà il processo.

Il nome del dispositivo è controllato dall'attaccante

Il driver non usa un nome di dispositivo fisso. Deriva il nome dell'oggetto dispositivo dal nome del servizio con cui è registrato; il nome del file su disco è irrilevante. Registrare il binario sotto il servizio TRIXX produce \\.\TRIXX indipendentemente da come si chiami il file su disco.

Quindi qualsiasi rilevamento basato su \Device\ThrottleStop o ThrottleStop.sys è banalmente aggirabile. Il rilevamento deve basarsi sull'hash del file o sul certificato di firma:

root@kitploit:~
SHA256:     16F83F056177C4EC24C7E99D01CA9D9D6713BD0497EEEDB777A3FFEFA99C97F0
Thumbprint: 524EDA9C819321C66E22C7BABEB23DAEAFFB2182
Subject:    CN=TechPowerUp LLC, O=TechPowerUp LLC, L=Spokane, S=Washington, C=US

La lista DEVICE_NAMES nel sorgente è solo una sonda per installazioni note del prodotto. Passa un nome di dispositivo come argomento per prendere di mira un servizio che hai registrato tu stesso.

Driver TechPowerUp correlati

CVEDriver
CVE-2019-7245GPU-Z.sys
CVE-2025-5324GPU-Z.sys
CVE-2025-7771ThrottleStop.sys (questo repo)

Il driver non è incluso

Il binario non è distribuito qui. Verifica qualsiasi copia rispetto allo SHA256 sopra. Il campione è catalogato in LOLDrivers.

Build

root@kitploit:~
cl /nologo /EHsc /W4 /O2 src\ThrottleStop.cpp /Fe:myLittleLpe.exe /link advapi32.lib

Utilizzo

Solo per uso in laboratorio. Esegui all'interno di una VM isolata con uno snapshot a cui ripristinare.

root@kitploit:~
sc.exe create <name> type= kernel binPath= C:\path\to\ThrottleStop.sys
sc.exe start <name>

myLittleLpe.exe

sc.exe stop <name>
sc.exe delete <name>

Il binario non accetta argomenti. Stampa la mappa della memoria fisica, cerca l'EPROCESS di SYSTEM e quello locale, scambia il token e genera cmd.exe in esecuzione come NT AUTHORITY\SYSTEM.

Demo

myLittleLpe.exe run showing physical memory map, EPROCESS scan, token swap and a SYSTEM shell

Altri PoC e lavori precedenti

Altri lavori pubblici sullo stesso driver, per confronto:

  • Demoo1337/ThrottleStop — PoC precedente per gli stessi IOCTL
  • xM0kht4r/CVE-2025-7771 — R/W fisica più VA-to-PA tramite Superfetch
  • AmrHuss/throttlestop-exploit-rw — R/W fisica con traduzione degli indirizzi tramite Superfetch
  • v31l0x1/ThrottleStopPPL — bypass della protezione PPL
  • Yuri08loveElaina/CVE-2025-7771 — un'altra implementazione

Crediti

  • LOLDrivers — catalogazione dei driver vulnerabili

Disclaimer

Pubblicato per ricerca difensiva e ingegneria del rilevamento. La vulnerabilità è già pubblica come CVE-2025-7771. Tutto qui è stato testato su sistemi di proprietà dell'autore. Non eseguire questo su sistemi che non possiedi o che non sei autorizzato a testare.

Scarica lo strumento