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
ioctlance — Uno strumento utilizzato per cacciare vulnerabilità nei driver WDM x64 | Kitploit
Strumenti/GitHubGitHub/zeze-zeze/ioctlance
Analisi StaticaAnalisi Dinamica (Sandboxing)Framework di ExploitAnalisi delle VulnerabilitàReverse EngineeringFuzzingAnalisi di Binari
GitHubzeze-zeze/ioctlance

ioctlance

Uno strumento utilizzato per cacciare vulnerabilità nei driver WDM x64

Vedi Repository
469552 mesi 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

IOCTLance

Descrizione

Presentato al CODE BLUE 2023, questo progetto intitolato Enhanced Vulnerability Hunting in WDM Drivers with Symbolic Execution and Taint Analysis introduce IOCTLance, uno strumento che migliora la capacità di rilevare vari tipi di vulnerabilità nei driver Windows Driver Model (WDM). In una valutazione completa che ha coinvolto 104 driver WDM noti vulnerabili e 328 sconosciuti, IOCTLance ha scoperto con successo 117 vulnerabilità precedentemente non identificate in 26 driver distinti. Di conseguenza, sono state segnalate 41 CVE, comprendenti 25 casi di denial of service, 5 casi di controllo degli accessi insufficiente e 11 esempi di elevazione dei privilegi.

Funzionalità

Tipi di vulnerabilità target

  • mappatura memoria fisica
  • handle di processo controllabile
  • buffer overflow
  • dereferenziazione di puntatore nullo
  • lettura/scrittura di indirizzo controllabile
  • esecuzione arbitraria di shellcode
  • wrmsr arbitrario
  • out arbitrario
  • operazione pericolosa su file
  • terminazione arbitraria di processo
  • chiusura di handle controllabile in contesto di processo diverso

Personalizzazioni opzionali

  • limite lunghezza
  • limite ciclo
  • timeout totale
  • timeout IoControlCode
  • ricorsione
  • simbolizzazione sezione dati

Compilazione

Docker (Consigliato)

root@kitploit:~
docker build .
docker run -it <IOCTLance IMAGE ID> bash

Locale

root@kitploit:~
dpkg --add-architecture i386
apt-get update
apt-get install git build-essential python3 python3-pip python3-dev htop vim sudo \
                openjdk-8-jdk zlib1g:i386 libtinfo5:i386 libstdc++6:i386 libgcc1:i386 \
                libc6:i386 libssl-dev nasm binutils-multiarch qtdeclarative5-dev libpixman-1-dev \
                libglib2.0-dev debian-archive-keyring debootstrap libtool libreadline-dev cmake \
                libffi-dev libxslt1-dev libxml2-dev

pip install angr==9.2.18 ipython==8.5.0 ipdb==0.13.9

Analisi

root@kitploit:~
# python3 analysis/ioctlance.py -h
usage: ioctlance.py [-h] [-i IOCTLCODE] [-T TOTAL_TIMEOUT] [-t TIMEOUT] [-l LENGTH] [-b BOUND]
                    [-g GLOBAL_VAR] [-a ADDRESS] [-e EXCLUDE] [-o] [-r] [-c] [-d]
                    path

positional arguments:
  path                  percorso della directory (incluse le sottodirectory) o del file verso il/i driver da analizzare

optional arguments:
  -h, --help            mostra questo messaggio di aiuto ed esci
  -i IOCTLCODE, --ioctlcode IOCTLCODE
                        analizza il IoControlCode specificato (es. 22201c)
  -T TOTAL_TIMEOUT, --total_timeout TOTAL_TIMEOUT
                        timeout totale per l'intera esecuzione simbolica (default 1200, 0 per illimitato)
  -t TIMEOUT, --timeout TIMEOUT
                        timeout per analizzare ogni IoControlCode (default 40, 0 per illimitato)
  -l LENGTH, --length LENGTH
                        il limite del numero di istruzioni per la tecnica LengthLimiter (default 0, 0 per illimitato)
  -b BOUND, --bound BOUND
                        il limite per la tecnica LoopSeer (default 0, 0 per illimitato)
  -g GLOBAL_VAR, --global_var GLOBAL_VAR
                        quanti byte nella sezione .data rendere simbolici (default 0 hex)
  -a ADDRESS, --address ADDRESS
                        indirizzo del gestore ioctl per avviare direttamente la caccia con stato vuoto (es. 140005c20)
  -e EXCLUDE, --exclude EXCLUDE
                        escludi indirizzi di funzione separati da , (es. 140005c20,140006c20)
  -o, --overwrite       sovrascrivi x.sys.json se x.sys è già stato analizzato (default False)
  -r, --recursion       non terminare lo stato se viene rilevata ricorsione (default False)
  -c, --complete        ottieni lo stato di base completo (default False)
  -d, --debug           stampa informazioni di debug durante l'analisi (default False)

Valutazione

root@kitploit:~
# python3 evaluation/statistics.py -h
usage: statistics.py [-h] [-w] path

positional arguments:
  path        percorso della directory o file di destinazione

optional arguments:
  -h, --help  mostra questo messaggio di aiuto ed esci
  -w, --wdm   copia i driver wdm in <path>/wdm

Test

  1. Compila gli esempi di test in test per generare i file dei driver di test.
  2. Esegui IOCTLance sui file dei driver.

Riferimenti

  • ucsb-seclab/popkorn-artifact
  • eclypsium/Screwed-Drivers
  • koutto/ioctlbf
  • Living Off The Land Drivers
Scarica lo strumento