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
Strumenti/GitHubGitHub/mein-0/cve-2026-29923
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingApprendimento e FormazioneBinary Exploitation
GitHubmein-0/cve-2026-29923

cve-2026-29923

Proof-of-concept per CVE-2026-29923, un'escalation di privilegi locali nel driver kernel pstrip64.sys. Dimostra una primitiva di lettura/scrittura della memoria fisica tramite IOCTL per elevare i privilegi da utente non privilegiato a NT AUTHORITY\SYSTEM su Windows.

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

CVE-2026-29923 — pstrip64.sys Escalation dei Privilegi Locale

Una proof-of-concept minimale per CVE-2026-29923, una vulnerabilità nel driver del kernel pstrip64.sys (EnTech Taiwan PowerStrip ≤ 3.90.736) che consente a un processo in modalità utente non privilegiato di elevarsi a NT AUTHORITY\SYSTEM.


Il Bug

pstrip64.sys espone un IOCTL (0x80002008) che accetta un indirizzo fisico fornito dall'utente e lo mappa direttamente nello spazio di indirizzi virtuali del processo chiamante aprendo \Device\PhysicalMemory e chiamando ZwMapViewOfSection con l'handle del processo corrente. Non c'è controllo dei privilegi, nessuna validazione dell'indirizzo oltre a quella imposta da HalTranslateBusAddress, e nessun controllo di accesso sul link simbolico \\.\PSTRIP64.

Il risultato è una primitiva di lettura/scrittura illimitata della memoria fisica da un processo non privilegiato.


Sfruttamento

Con lettura/scrittura fisica arbitraria disponibile, l'exploit segue quattro passaggi.

1. Scansione per le strutture EPROCESS

La RAM fisica viene esaminata in blocchi da 2 MB. Ogni blocco viene scansionato per il tag del pool del kernel Proc (0x636F7250), che segna l'allocazione del pool che contiene la struttura _EPROCESS di un processo. I candidati trovati vengono validati con tre euristiche leggere prima che il PID sia considerato attendibile:

  • PriorityClass == 0x2 — tutti i processi attivi girano con priorità Normal
  • ProcessLock == 0x0 — il campo di lock è libero su un processo stabile
  • ImageFileName[0] è ASCII stampabile — la memoria spazzatura raramente soddisfa questa condizione

2. Individuare entrambi i puntatori al token

Sono necessari due obiettivi:

  • L'indirizzo fisico del campo Token del nostro processo all'interno di _EPROCESS
  • Il valore del token memorizzato nel processo System (PID 4) _EPROCESS

3. Sovrascrivere il nostro token

La pagina di 4 KB contenente il campo Token viene mappata e il campo viene sovrascritto con il valore del token di System. Da questo punto in poi, il kernel di Windows tratta il nostro processo come NT AUTHORITY\SYSTEM.

4. Far partire una shell

cmd.exe viene lanciato tramite CreateProcessA. Poiché i processi figli ereditano il token del genitore, la shell risultante gira come SYSTEM.


Avvertenza MMIO

La finestra degli indirizzi fisici da 3 GB a 4 GB è riservata per MMIO sui sistemi x86. Tentare di mappare pagine in questo intervallo causa al driver di restituire l'errore 74 (fallimento di HalTranslateBusAddress). La scansione salta questa finestra e riprende a 0x100000000 per catturare le strutture del kernel che Windows posiziona sopra i 4 GB.


Requisito a 32 bit

Il gestore di mappatura del driver scrive l'indirizzo virtuale restituito in un campo DWORD (LowPart), troncando il VA a 64 bit in 32 bit. Una build a 64 bit riceve un puntatore corrotto e crasha immediatamente. Compilare come x86.


Software Affetto

SoftwareVersioni
EnTech Taiwan PowerStrip≤ 3.90.736

Hash del driver (SHA-256):

root@kitploit:~
ab01485bb7c8bc1a9c86096eeea6d31d8fad557bf4d44072b46373d2203faa6e

Offset di EPROCESS

Gli offset hardcoded sono per Windows 10 22H2 x64. Altre build richiedono valori aggiornati — usa dt nt!_EPROCESS in WinDbg per confermare.


Compilazione

Apri un prompt dei comandi per sviluppatori di Visual Studio x86 ed esegui:

root@kitploit:~
cl /EHsc /O2 exploit.c /Fe:poc.exe

Oppure imposta la destinazione della piattaforma su x86 in Visual Studio e compila in modalità Release. Il binario non richiede dipendenze esterne oltre al Windows SDK.


Utilizzo

Carica prima pstrip64.sys (richiede privilegi di amministratore per caricare il driver, non per eseguire l'exploit una volta caricato), poi:

root@kitploit:~
poc.exe

Si aprirà una nuova finestra di cmd.exe che gira come NT AUTHORITY\SYSTEM.


Mitigazione

Bloccare il caricamento del driver (preferito)

  • Aggiungi l'hash del driver sopra alla blocklist della tua organizzazione
  • Abilita Microsoft's Vulnerable Driver Blocklist tramite WDAC
  • Abilita Hypervisor-Protected Code Integrity (HVCI)

Rilevare lo sfruttamento in corso

  • Avvisa su nuove installazioni di servizi in modalità kernel per binari driver sconosciuti
  • Monitora processi con integrità bassa/media che generano figli a livello SYSTEM
  • Segnala qualsiasi processo il cui token cambi in NT AUTHORITY\SYSTEM al di fuori di un evento di autenticazione legittimo

Dichiarazione di non responsabilità

Questo codice è pubblicato solo per scopi educativi e di ricerca difensiva. Usalo solo su sistemi di tua proprietà o sui quali hai esplicita autorizzazione scritta per testare. L'autore non è responsabile per qualsiasi uso improprio.


Riferimenti

  • Microsoft Vulnerable Driver Blocklist
  • WDAC Overview
  • Windows EPROCESS Internals
  • HalTranslateBusAddress — MSDN
  • ZwMapViewOfSection — MSDN
Scarica lo strumento
CampoOffset
PriorityClass0x5B7
ProcessLock0x438
UniqueProcessId0x440
ImageFileName0x5A8
Token0x4B8