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
CVE-2021-40449 — Exploit di LPE per un UAF in Windows (CVE-2021-40449). | Kitploit
Strumenti/GitHubGitHub/hakivvi/cve-2021-40449
Escalation di PrivilegiMemory ForensicsAnalisi delle VulnerabilitàExploitShellcodeSviluppo PayloadBinary Exploitation
GitHubhakivvi/cve-2021-40449

CVE-2021-40449

Exploit di LPE per un UAF in Windows (CVE-2021-40449).

Vedi Repository
48154 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

CVE-2021-40449

Il mio exploit per CVE-2021-40449, un LPE di Windows tramite UAF in win32kfull!GreResetDCInternal.

breve wu

insieme alla vulnerabilità UAF, vengono utilizzate altre primitive per rendere possibile questo exploit:

  • rivelare l'indirizzo del access token dell'exploit in ring0 tramite la funzione NtQuerySystemInformation() con il parametro SystemHandleInformation.
  • usare rtlSetAllBits() come gadget per sovrascrivere i privileges dell'access_token dell'exploit con 0xFF.
  • rivelare l'indirizzo di rtlSetAllBits() su ring0 rivelando l'indirizzo base del modulo ntoskrnl.exe tramite la funzione EnumDeviceDrivers().
  • creare il parametro BitMapHeader del gadget in modo tale da permetterci di sovrascrivere i privileges dell'access_token dell'exploit.
  • allocare il BitMapHeader creato tramite la primitiva NtSetInformationThread() e rivelare l'indirizzo di allocazione nel big pool tramite la funzione NtQuerySystemInformation() con il parametro SystemBigPoolInformation.
  • per interagire con la funzione vulnerabile, prima enumeriamo le stampanti nel sistema tramite EnumPrinters(), carichiamo il driver di una di esse, quindi hookiamo le chiamate alla funzione callback usermode DrvEnablePDEV().
  • nell'hook proxiamo la chiamata alla funzione originale DrvEnablePDEV(), facciamo le cose dell'exploit, poi restituiamo ciò che viene restituito dalla chiamata proxata al GDI.
  • innescare l'UAF tramite una seconda chiamata a ResetDC() nell'DrvEnablePDEV() hookato.
  • recuperare l'oggetto PDC liberato tramite spraying di un oggetto creato della stessa dimensione usando la primitiva CreatePalette().
  • abusare del privilegio SeDebugPrivilege appena acquisito per ottenere NT AUTHORITY\SYSTEM tramite l'iniezione di shellcode nel processo winlogon.exe.

Maggiori informazioni si possono trovare in questo articolo di Kaspersky.

PoC

PoC testato su Win10 Redstone (build 14393).

Scarica lo strumento