欢迎光临
我们一直在努力

如何在Kali Linux下编译Windows Exploit

前言

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

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

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,需要我们手动安装。命令如下:

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

输入“Y”继续安装。安装需要等待一段时间。

找不到MinGW-W64安装包

在安装过程中可能会提示你无法找到MinGW-W64安装包:

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

要解决这个问题得确保在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:

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

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

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

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

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

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

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

可以看到编译好的Exploit在windows 7上被成功执行后将我们的权限从test提升为了system。这个Exploit是在当前shell中生成了一个新的shell,而不是在新窗口中创建新shell 。这意味着我们可以从命令行shell运行此利用程序。比如在Meterpreter中。

Meterpreter shell下利用

我们可以使用Msfvenom来快速生成一个Meterpreter的TCP反弹shell,并在目标主机上执行。同时我们使用 Metasploit下的Multi handler来处理反弹会话。使用以下命令生成 Payload:

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

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

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

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

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

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

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows Exploit

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

Mingw-w64-How-to-compile-Windows-exploits-on-kali-linux-webwm 如何在Kali Linux下编译Windows 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
分享到: 更多 (0)