如何在Kali Linux下编译Windows Exploit
前言
微软的Windows在企业或是个人应用领域占据着最大的市场份额,在渗透测试过程中你会经常遇到很多Windows的工作站和服务器。另一方面,大多数渗透测试人员主要使用基于Linux的发行版渗透测试系统,比如Kali Linux或者Pentoo和Backbox。因此你可能就需要有在Linux机器上快速编译Windows Exploit的能力。一款叫做“Mingw-w64”的软件可以解决这个问题。

Mingw-w64 是一款用于创建Windows应用程序的开源开发环境。Mingw-w64源码Mingw32,因为它起初并不支持 64位的操作系统。在本教程中,我将演示如何在Kali Linux下编译Windows Exploit。下面让我们先在Kali Linux上安装 Mingw-w64 。
Kali Linux安装Mingw-w64
Kali Linux 2.0并未集成Mingw-w64,需要我们手动安装。命令如下:


输入“Y”继续安装。安装需要等待一段时间。
找不到MinGW-W64安装包
在安装过程中可能会提示你无法找到MinGW-W64安装包:

要解决这个问题得确保在sources.list文件有可用的存储库。使用nano来编辑该文件:
/etc/apt/sources.list
检查存储库是否正确可用,不同版本Kali Linux的存储库可以在以下页面找到:
http://docs.kali.org/general-use/kali-linux-sources-list-repositories
正确配置好sources.list文件的存储库之后使用apt-get update来更新源,然后重新安装Mingw-w64即可。
使用MinGW-W64编译Windows Exploit
成功安装Mingw-w64之后,我将以CVE-2011-1249(MS11-046)漏洞为例,它是一个用C语言编写的Windows 7 SP0 x86上的一个Exploit。这个版本的Windows系统在辅助功能驱动程序(AFD)中包含一个特权提升漏洞。Mingw-w64虽然是为64位的系统定制的,但它依然可以编译32位的Windows Exploit。
我们先从Exploit-db上下载需要编译的Exploit:

使用以下命令编译Windows 32位的afd.sys Exploit:

编译Windows 7 afd.sys提权Exploit的命令如下:


编译完成后将编译好的exe文件拷贝到Apache web服务根目录下测试利用,使用cmd.exe打开可以看到如下信息:

可以看到编译好的Exploit在windows 7上被成功执行后将我们的权限从test提升为了system。这个Exploit是在当前shell中生成了一个新的shell,而不是在新窗口中创建新shell 。这意味着我们可以从命令行shell运行此利用程序。比如在Meterpreter中。
Meterpreter shell下利用
我们可以使用Msfvenom来快速生成一个Meterpreter的TCP反弹shell,并在目标主机上执行。同时我们使用 Metasploit下的Multi handler来处理反弹会话。使用以下命令生成 Payload:

IP和Port根据自身情况填写然后启动msfconsole配置Multi handler exploit:


下载Exploit并执行,我们就会得到目标主机Meterpreter会话shell :

然后我们就可以通过shell进入命令行console运行Exploit来实现权限的提升操作:

如图我们成功将普通权限提升为了系统权限。由于在执行它的shell中生成了一个新的系统shell,我们权限将会受到一定限制,导致我们无法在原来的shell中看到Exploit的输出信息。Exit退出到普通shell中就可以看到Exploit的输出信息:

MottoIN小编注
Kali 下编译 Exploit
gcc -m32 -o output32 hello.c (32 位) gcc -m64 -o output hello.c (64 位)
Kali 下编译 Windows Exploit
wget -O mingw-get-setup.exe http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download wine mingw-get-setup.exe select mingw32-base cd /root/.wine/drive_c/windows wget http://gojhonny.com/misc/mingw_bin.zip && unzip mingw_bin.zip cd /root/.wine/drive_c/MinGW/bin wine gcc -o ability.exe /tmp/exploit.c -lwsock32 wine ability.exe
如何在Kali Linux下编译Windows Exploit的更多相关文章
- 在Kali Linux上编译Windows EXP
使用vc6.0去编译的时候,难免会出现点问题 这里找到MS11-046的exp来编译 poc地址:https://www.exploit-db.com/exploits/40564/ 首先需要安装mi ...
- Compile for Windows on Linux(交叉编译,在Linux下编译Windows程序),以OpenSSL为例
OpenSSL for Windows In earlier articles, we have looked at how to create a gcc build environment on ...
- 教你如何在Kali Linux 环境下设置蜜罐?
导读 Pentbox是一个包含了许多可以使渗透测试工作变得简单流程化的工具的安全套件.它是用Ruby编写并且面向GNU/Linux,同时也支持Windows.MacOS和其它任何安装有Ruby的系统. ...
- Libevent windows/linux下编译
1.windows下: 编译环境: windows xp sp3 + vs2010 (1) 解压libevent-2.0.21-stable.tar.gz到D:\libevent-2.0.21- ...
- 在虚拟机linux环境下编译windows版adb fastboot
原文出自:http://blog.chinaunix.net/uid-20546441-id-1746200.html 我根据虚拟机编译遇到的问题进行一些添加 [前提条件] Linux Android ...
- Linux下编译并使用miracl密码库
参考:http://blog.sina.com.cn/s/blog_53fdf1590102y9ox.html MIRACL(Multiprecision Integer and RationalAr ...
- 如何用javac 和java 编译运行整个Java工程 (转载)【转】在Linux下编译与执行Java程序
如何用javac 和java 编译运行整个Java工程 (转载) http://blog.csdn.net/huagong_adu/article/details/6929817 [转]在Linux ...
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- <iostream> 和 <iostream.h>的区别 及 Linux下编译iostream.h的方法
0.序言 其实2者主要的区别就是iostream是C++标准的输入输出流头文件,而iostream.h是非标准的头文件. 标准头文件iostream中的函数属于标准命令空间,而iostream.h中的 ...
随机推荐
- 关于SharePoint 2013 UserProfile跨场的几点注意
1.跨场中需要以下几个Service实例,没有这几个会遇到各种问题 2.发布场和消费场同时需要创建Host站点,否则消费场的SiteFeed无法使用. 3.跨场关注的问题请参考:http://www. ...
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q25-Q28)
Question 25 You are designing a SharePoint 2010 farm in your organization. You need to design the li ...
- 基于XMPP的IOS聊天客户端程序
简介:XMPP协议是一种基于Socket长连接.以XML格式进行基本信息交换.C/S S/S多种架构的聊天协议 XMPPServer 基于XMPP协议的服务端(例如eJabber.OpenFire) ...
- [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3574131.html 这个可以实现ImageView异步加载 ...
- android ndk开发(二)实现一个官方demo
实现了一个官方的demo:bitmap-plasma(水波纹) 源代码就在samples文件夹下,可以自己去找. 界面: 建立项目的步骤和配置环境不明白的可以去看:http://www.cnblogs ...
- Android时区及语言代码
1. 设置默认时区 PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.timezone=Asia/Shanghai\ 注:搜索“persist ...
- iOS 用webView加载后台返回的HTML数据
返回数据: <p><b>\U516c\U53f8\U7b80\U4ecb</b></p><p> \U5584\U76c8\U7ba1\ ...
- 电脑公司最新GHOST WIN7系统32,64位优化精简版下载
系统来自系统妈:http://www.xitongma.com 电脑公司最新GHOST win7系统32位优化精简版V2016年3月 系统概述 电脑公司ghost win7 x86(32位)万能装机版 ...
- android 界面设计基本知识Ⅲ
本章继续讲述在android界面设计中相关的知识点.介绍内容包括BroadcastReceiver(广播),Service(服务),Widget(小部件),WebView(网页加载控件). 1.Bro ...
- iOS开发--关于TableViewCell的可视化设置细节
由于时间问题,本篇博文很简略. 1.关于设置Cell的边距问题