Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ioctlance — Ein Tool, das verwendet wird, um Sicherheitslücken in x64 WDM-Treibern aufzuspüren. | Kitploit
Tools/GitHubGitHub/zeze-zeze/ioctlance
Statische AnalyseDynamische Analyse (Sandboxing)Exploit-FrameworksSchwachstellenanalyseReverse EngineeringFuzzingBinäranalyse
GitHubzeze-zeze/ioctlance

ioctlance

Ein Tool, das verwendet wird, um Sicherheitslücken in x64 WDM-Treibern aufzuspüren.

Repository anzeigen
4695517vor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

IOCTLance

Beschreibung

Vorgestellt auf der CODE BLUE 2023, stellt dieses Projekt mit dem Titel Enhanced Vulnerability Hunting in WDM Drivers with Symbolic Execution and Taint Analysis IOCTLance vor, ein Tool, das seine Fähigkeit verbessert, verschiedene Schwachstellentypen in Windows Driver Model (WDM)-Treibern zu erkennen. In einer umfassenden Evaluierung mit 104 bekannten verwundbaren WDM-Treibern und 328 unbekannten offenbarte IOCTLance erfolgreich 117 zuvor unbekannte Schwachstellen in 26 verschiedenen Treibern. Daraus resultierten 41 gemeldete CVEs, darunter 25 Fälle von Denial-of-Service, 5 Fälle unzureichender Zugriffskontrolle und 11 Fälle von Privilegienerhöhung.

Funktionen

Ziel-Schwachstellentypen

  • physischen Speicher abbilden
  • steuerbarer Prozess-Handle
  • Pufferüberlauf
  • Nullzeiger-Dereferenzierung
  • Lesen/Schreiben an steuerbarer Adresse
  • beliebige Shellcode-Ausführung
  • beliebiges wrmsr
  • beliebiges out
  • gefährliche Dateioperation
  • beliebige Prozessbeendigung
  • Schließen eines steuerbaren Handles in einem anderen Prozesskontext

Optionale Anpassungen

  • Längenlimit
  • Schleifengrenze
  • Gesamt-Timeout
  • IoControlCode-Timeout
  • Rekursion
  • Datenbereich symbolisieren

Erstellung

Docker (Empfohlen)

docker build .
docker run -it <IOCTLance IMAGE ID> bash

Lokal

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

Analyse

# 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                  dir (including subdirectory) or file path to the driver(s) to analyze

optional arguments:
  -h, --help            show this help message and exit
  -i IOCTLCODE, --ioctlcode IOCTLCODE
                        analyze specified IoControlCode (e.g. 22201c)
  -T TOTAL_TIMEOUT, --total_timeout TOTAL_TIMEOUT
                        total timeout for the whole symbolic execution (default 1200, 0 to unlimited)
  -t TIMEOUT, --timeout TIMEOUT
                        timeout for analyze each IoControlCode (default 40, 0 to unlimited)
  -l LENGTH, --length LENGTH
                        the limit of number of instructions for technique LengthLimiter (default 0, 0
                        to unlimited)
  -b BOUND, --bound BOUND
                        the bound for technique LoopSeer (default 0, 0 to unlimited)
  -g GLOBAL_VAR, --global_var GLOBAL_VAR
                        symbolize how many bytes in .data section (default 0 hex)
  -a ADDRESS, --address ADDRESS
                        address of ioctl handler to directly start hunting with blank state (e.g.
                        140005c20)
  -e EXCLUDE, --exclude EXCLUDE
                        exclude function address split with , (e.g. 140005c20,140006c20)
  -o, --overwrite       overwrite x.sys.json if x.sys has been analyzed (default False)
  -r, --recursion       do not kill state if detecting recursion (default False)
  -c, --complete        get complete base state (default False)
  -d, --debug           print debug info while analyzing (default False)

Evaluierung

# python3 evaluation/statistics.py -h
usage: statistics.py [-h] [-w] path

positional arguments:
  path        target dir or file path

optional arguments:
  -h, --help  show this help message and exit
  -w, --wdm   copy the wdm drivers into <path>/wdm

Test

  1. Kompilieren Sie die Testbeispiele in test, um Testtreiberdateien zu generieren.
  2. Führen Sie IOCTLance gegen die Treiberdateien aus.

Referenzen

  • ucsb-seclab/popkorn-artifact
  • eclypsium/Screwed-Drivers
  • koutto/ioctlbf
  • Living Off The Land Drivers
Tool herunterladen