Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ioctlance — Инструмент, который используется для поиска уязвимостей в x64 WDM drivers | Kitploit
Инструменты/GitHubGitHub/zeze-zeze/ioctlance
Статический анализДинамический анализ (песочница)Фреймворки для эксплойтовАнализ уязвимостейОбратная инженерияФаззингАнализ Бинарных Файлов
GitHubzeze-zeze/ioctlance

ioctlance

Инструмент, который используется для поиска уязвимостей в x64 WDM drivers

Репозиторий
469552 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

IOCTLance

Описание

Представлен на CODE BLUE 2023, данный проект под названием Enhanced Vulnerability Hunting in WDM Drivers with Symbolic Execution and Taint Analysis представляет IOCTLance — инструмент, повышающий способность обнаруживать различные типы уязвимостей в драйверах модели драйверов Windows (WDM). В ходе всесторонней оценки с участием 104 известных уязвимых драйверов WDM и 328 неизвестных, IOCTLance успешно выявил 117 ранее неизвестных уязвимостей в 26 различных драйверах. В результате было сообщено о 41 CVE, включающем 25 случаев отказа в обслуживании, 5 случаев недостаточного контроля доступа и 11 примеров повышения привилегий.

Возможности

Целевые типы уязвимостей

  • отображение физической памяти
  • управляемый дескриптор процесса
  • переполнение буфера
  • разыменование нулевого указателя
  • чтение/запись по управляемому адресу
  • произвольное выполнение шелл-кода
  • произвольное выполнение wrmsr
  • произвольное выполнение out
  • опасная операция с файлами
  • произвольное завершение процесса
  • закрытие управляемого дескриптора в контексте другого процесса

Дополнительные настройки

  • ограничение длины
  • граница цикла
  • общее время ожидания
  • тайм-аут для IoControlCode
  • рекурсия
  • символизация секции данных

Сборка

Docker (рекомендуется)

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

Локальная

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

Анализ

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)

Оценка

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

Тестирование

  1. Скомпилируйте тестовые примеры в test для создания тестовых файлов драйверов.
  2. Запустите IOCTLance на этих файлах драйверов.

Ссылки

  • ucsb-seclab/popkorn-artifact
  • eclypsium/Screwed-Drivers
  • koutto/ioctlbf
  • Living Off The Land Drivers
Скачать инструмент