Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ioctlance — Una herramienta que se utiliza para buscar vulnerabilidades en controladores WDM x64 | Kitploit
Herramientas/GitHubGitHub/zeze-zeze/ioctlance
Análisis EstáticoAnálisis Dinámico (Sandboxing)Frameworks de ExploitsAnálisis de VulnerabilidadesIngeniería InversaFuzzingAnálisis de Binarios
GitHubzeze-zeze/ioctlance

ioctlance

Una herramienta que se utiliza para buscar vulnerabilidades en controladores WDM x64

Ver Repositorio
46955hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

IOCTLance

Descripción

Presentado en CODE BLUE 2023, este proyecto titulado Enhanced Vulnerability Hunting in WDM Drivers with Symbolic Execution and Taint Analysis presenta IOCTLance, una herramienta que mejora su capacidad para detectar varios tipos de vulnerabilidades en controladores del Modelo de Controladores de Windows (WDM). En una evaluación exhaustiva que involucró 104 controladores WDM vulnerables conocidos y 328 desconocidos, IOCTLance descubrió con éxito 117 vulnerabilidades previamente no identificadas dentro de 26 controladores distintos. Como resultado, se reportaron 41 CVE, que abarcan 25 casos de denegación de servicio, 5 instancias de control de acceso insuficiente y 11 ejemplos de elevación de privilegios.

Características

Tipos de vulnerabilidades objetivo

  • mapear memoria física
  • manipulador de proceso controlable
  • desbordamiento de búfer
  • desreferencia de puntero nulo
  • lectura/escritura de dirección controlable
  • ejecución arbitraria de shellcode
  • wrmsr arbitrario
  • out arbitrario
  • operación peligrosa de archivos
  • terminación arbitraria de procesos
  • cerrar un manipulador controlable en un contexto de proceso diferente

Personalizaciones opcionales

  • límite de longitud
  • límite de bucle
  • tiempo de espera total
  • tiempo de espera de IoControlCode
  • recursión
  • simbolizar sección de datos

Compilación

Docker (Recomendado)

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

Local

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

Análisis

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                  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)

Evaluación

root@kitploit:~
# 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

Prueba

  1. Compile los ejemplos de prueba en test para generar archivos de controladores de prueba.
  2. Ejecute IOCTLance contra los archivos del controlador.

Referencias

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