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
asus-bsitf-0-day-poc — PoC per CVE-2026-13585 | Kitploit
Strumenti/GitHubGitHub/416rehman/asus-bsitf-0-day-poc
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSicurezza HardwareBinary Exploitation
GitHub416rehman/asus-bsitf-0-day-poc

asus-bsitf-0-day-poc

PoC per CVE-2026-13585

Vedi Repository
521 mese 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
Sito web

POC - ASUS bsitf.sys Mappatura della memoria del kernel in spazio utente

CVE-2026-13585

Riepilogo

Il driver del kernel ASUS bsitf.sys (distribuito anche come AsusBSItf.sys) espone l'IOCTL 0x222808 che alloca memoria del kernel fisicamente contigua di dimensione controllata dall'attaccante, la mappa nello spazio di indirizzi del processo chiamante con permessi di lettura/scrittura completi e restituisce sia l'indirizzo virtuale in spazio utente che l'indirizzo fisico al chiamante.

Il dispositivo richiede privilegi di amministratore per essere aperto, rendendo questa una escalation da amministratore a kernel. In uno scenario BYOVD (Bring Your Own Vulnerable Driver), un attaccante che ha già privilegi di amministratore (ad esempio tramite ingegneria sociale o un exploit separato) può caricare questo driver firmato legittimamente per ottenere accesso arbitrario alla memoria del kernel senza bisogno di un exploit del kernel.

Versioni affette

VersioneNome filePacchettoTipo di pool
3.0.10.0bsitf.sysASUS Business Manager / AbmSvcPackageNonPagedPool (eseguibile)
3.1.10.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx
3.1.25.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx

Tutte le versioni creano il dispositivo \Device\bsitf con symlink \DosDevices\bsitf.

Impatto

Il buffer mappato è una nuova allocazione del pool del kernel, non un indirizzo arbitrario del kernel. Il chiamante controlla il suo contenuto ma non la sua posizione. Questo limita lo sfruttamento rispetto a una vera lettura/scrittura arbitraria del kernel.

  • Esaurimento del pool del kernel (DoS) — allocazioni ripetute senza liberare esauriranno NonPagedPool, causando BSOD. Non viene imposto alcun limite di dimensione o di numero di allocazioni.
  • Divulgazione dell'indirizzo fisico — l'IOCTL restituisce l'indirizzo fisico di ogni allocazione, utile come fuga di informazioni o per attacchi basati su DMA.
  • Staging di memoria del kernel eseguibile (solo v3.0.x) — sulla versione 3.0.10.0, il tipo di pool è NonPagedPool (eseguibile). Lo shellcode può essere scritto dallo spazio utente nel buffer mappato, ma è necessaria una vulnerabilità separata per reindirizzare l'esecuzione del kernel all'indirizzo del buffer.

Sulle versioni v3.1.x (NonPagedPoolNx), il buffer non è eseguibile e l'impatto pratico è limitato a DoS e divulgazione dell'indirizzo fisico.

Causa principale

L'IOCTL 0x222808 nel gestore di spedizione esegue le seguenti operazioni senza alcuna validazione dell'input:

root@kitploit:~
alloc_size = *(DWORD *)Irp->AssociatedIrp.SystemBuffer;  // controllato dall'utente

kernel_va = MmAllocateContiguousMemory(alloc_size, 0xffffffff);
mdl = IoAllocateMdl(kernel_va, alloc_size, FALSE, FALSE, NULL);
MmBuildMdlForNonPagedPool(mdl);
user_va = MmMapLockedPages(mdl, UserMode);

output[0] = user_va;        // indirizzo virtuale in spazio utente
output[1] = physical_addr;  // indirizzo fisico dell'allocazione

Nessun controllo sulla dimensione dell'allocazione, sul numero di allocazioni in sospeso o sulla validazione dell'input. Il dispositivo richiede privilegi di amministratore per essere aperto, ma una volta ottenuto un handle, gli IOCTL sono senza restrizioni.

Prova di concetto

Build

root@kitploit:~
cargo build --release

Caricare il driver

root@kitploit:~
sc create bsitf binPath= "C:\path\to\bsitf.sys" type= kernel
sc start bsitf

Esecuzione

root@kitploit:~
# default: allocazione di 0x1000 (4KB)
cargo run --release

# dimensione personalizzata (hex)
cargo run --release -- 10000

Output previsto

root@kitploit:~
[*] bsitf.sys kernel memory mapping PoC
[*] target alloc size: 0x1000

[+] device handle acquired

[*] allocating 0x1000 bytes of kernel memory via IOCTL 0x222808
[+] kernel allocation succeeded:
    usermode VA:     0x000001D856F90000
    physical addr:   0x00000000BF6CB000

[*] original contents (first 16 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

[*] writing 0xCC pattern (int3 sled)...
[+] readback: usermode R/W CONFIRMED

[*] freeing kernel mapping via IOCTL 0x22280C
[+] mapping freed successfully

Testato su Windows 11 24H2 (richiede privilegi di amministratore).

Rimedio

  1. Validare la dimensione dell'allocazione con un limite superiore ragionevole.
  2. Limitare il numero di allocazioni in sospeso per handle.
  3. Non mappare allocazioni del kernel nello spazio di indirizzi utente.
  4. Non restituire indirizzi fisici ai chiamanti in spazio utente.
  5. Usare NonPagedPoolNx su tutte le versioni.

Cronologia

DataEvento
2026-04-06Vulnerabilità scoperta tramite analisi automatica
2026-04-06PoC confermato su Windows 11 24H2
2026-04-06Report inviato ad ASUS PSIRT

Riferimenti

  • CWE-782: Esposizione di IOCTL con controllo di accesso insufficiente
  • Dispositivo: \Device\bsitf, Symlink: \DosDevices\bsitf
  • Gestore di spedizione: FUN_140001070

Dichiarazione di non responsabilità

Questa prova di concetto è fornita esclusivamente per scopi di ricerca di sicurezza autorizzata e divulgazione responsabile. Non utilizzarlo contro sistemi di cui non si possiede la proprietà o per i quali non si ha esplicito permesso di test.

Scarica lo strumento