Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ioctlance — 一款用于挖掘x64 WDM驱动程序漏洞的工具 | Kitploit
工具/GitHubGitHub/zeze-zeze/ioctlance
静态分析动态分析 (沙盒)漏洞利用框架漏洞分析逆向工程模糊测试二进制分析
GitHubzeze-zeze/ioctlance

ioctlance

一款用于挖掘x64 WDM驱动程序漏洞的工具

查看仓库
469552个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

IOCTLance

描述

该项目在 CODE BLUE 2023 上展示,论文题为 使用符号执行和污点分析增强 WDM 驱动程序漏洞挖掘,它引入了 IOCTLance,一种增强在 Windows 驱动程序模型 (WDM) 驱动程序中检测多种漏洞类型能力的工具。在针对 104 个已知存在漏洞的 WDM 驱动程序和 328 个未知驱动程序进行的全面评估中,IOCTLance 成功地在 26 个不同的驱动程序中发现了 117 个先前未知的漏洞。最终,报告了 41 个 CVE,包括 25 个拒绝服务案例、5 个访问控制不足案例和 11 个权限提升案例。

特性

目标漏洞类型

  • 映射物理内存
  • 可控进程句柄
  • 缓冲区溢出
  • 空指针解引用
  • 读写可控地址
  • 任意 Shellcode 执行
  • 任意 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                  要分析的驱动程序路径(目录,包含子目录)或文件路径

optional arguments:
  -h, --help            显示帮助信息并退出
  -i IOCTLCODE, --ioctlcode IOCTLCODE
                        分析指定的 IoControlCode(例如 22201c)
  -T TOTAL_TIMEOUT, --total_timeout TOTAL_TIMEOUT
                        整个符号执行的总超时时间(默认 1200,0 表示无限制)
  -t TIMEOUT, --timeout TIMEOUT
                        分析每个 IoControlCode 的超时时间(默认 40,0 表示无限制)
  -l LENGTH, --length LENGTH
                        技术 LengthLimiter 的指令数量限制(默认 0,0 表示无限制)
  -b BOUND, --bound BOUND
                        技术 LoopSeer 的循环边界(默认 0,0 表示无限制)
  -g GLOBAL_VAR, --global_var GLOBAL_VAR
                        对 .data 段中多少字节进行符号化(默认 0 十六进制)
  -a ADDRESS, --address ADDRESS
                        直接以空白状态开始狩猎的 ioctl 处理程序地址(例如 140005c20)
  -e EXCLUDE, --exclude EXCLUDE
                        要排除的函数地址,以逗号分隔(例如 140005c20,140006c20)
  -o, --overwrite       如果 x.sys 已被分析过,则覆盖 x.sys.json(默认 False)
  -r, --recursion       检测到递归时不终止状态(默认 False)
  -c, --complete        获取完整的基状态(默认 False)
  -d, --debug           分析时打印调试信息(默认 False)

评估

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

positional arguments:
  path        目标目录或文件路径

optional arguments:
  -h, --help  显示帮助信息并退出
  -w, --wdm   将 WDM 驱动程序复制到 <path>/wdm 中

测试

  1. 编译 test 目录中的测试示例,生成测试驱动程序文件。
  2. 对驱动程序文件运行 IOCTLance。

参考

  • ucsb-seclab/popkorn-artifact
  • eclypsium/Screwed-Drivers
  • koutto/ioctlbf
  • Living Off The Land Drivers
下载工具