0xFF 免责声明
由于传播、利用此文提供的信息而造成的任何直接或间接的后果,均有使用者承担,本站不为此承担任何责任。
太长不看版:
(2021年4月17日的0day漏洞)
3.2.1.132及之前版本的PC版微信有安全漏洞,通过微信内置浏览器点击恶意链接,即可实现任意命令执行(RCE)
以上测试为打开Windows系统(64位机)内置计算器
RCE(Remote command/code execute)漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。具体能做什么,只有受害者想不到,没有攻击者做不到(假的,这个需要技术的)。比较常见的应用为shell反弹,即通过构造恶意代码,打开控制受害者机器的大门,再通过花式提权,获取机器的最高权限(如果可以的话)。理论上不反弹shell也能执行很多危险造作,比如删库跑路等,具体可以知乎搜索CTF搅屎棍(误)
简单解释一下RCE
0x00 故事起因
昨天看到奇安信的紧急通告:
紧急更新公告
“严重安全问题”,“强烈建议”,这BUG好猛啊,是不是可以RCE啊,这不赶紧来试一下
然后去360响应中心上找了一下预警……发现确实是个在野漏洞:
组件: Windows版微信
漏洞类型: 远程代码执行
影响: PC接管
简述: 攻击者可以通过微信发送一个特制的web链接,用户一旦点击链接,Windows版微信便会加载执行攻击者构造恶意代码,最终使攻击者控制用户PC。
0x01 漏洞成因
安全预警里面也说了,是Chrome的安全问题导致的……PC端微信调用了较低版本的Chrome内核,而且没有开启沙箱(–no-sandbox模式),使用微信内置浏览器时,会触发Chrome内核解释器的漏洞,造成浏览器PWN,实现任意命令执行(RCE)。
0x02 漏洞复现
a.配置环境
首先需要找一个没有更新微信同学要一下微信安装包……
其实官网也有历史版本,只是比较隐蔽:微信历史版本
我们下载并测试3.1.0:
为什么不用最新版呢——因为最新版标记的日期虽然是0day
曝光之前的,但是下载下来却是3.2.1.142
(已经修复了漏洞的版本www)
b.寻找EXP模板
去gayhub查查有木有别人写好的exp
,居然还真有。
https://github.com/Jaky5155/Wechat_0day
而且仿佛是新鲜的,新鲜到README都没写(x):
https://github.com/Jaky5155/Wechat_0day
点进去莽了一眼,好像就是从Chrome 0day的EXP里面CV过来的
不过我还是给了他一个star,毕竟能嫖到的代码谁会想自己写呢(x)
仔细看一眼,发现shellcode
需要我们自己写:
3.编写shellcode
因为只是做测试,就不搞花里胡哨的shell反弹了,做一个最简单的,打开计算器。
有两种方法:一种是手撸汇编代码,生成二进制文件,找到代码段对应机器码,然后copy下来即可;第二中是借助MSF直接生成机器码……手撸shellcode有点顶,下次想起来单独写一篇博客,这里我们通过MSF直接生成:
1 | msfconsole |
得到的shellcode如下:
我们通过Python脚本将其转换为需要的list形式:
1 | import binascii |
然后将结果复制粘贴到poc.js
中
4.配置服务端
直接本地起一个一键式容器(其实只要用各种方法开启了WEB服务就行),由于不涉及数据库什么的,随手写了一个docker-compose:
docker-compose.yml
:直接拖了个LAMP,没啥花里胡哨的
1 | version: '3' |
index.html
:这部分就可以做的花里胡哨了,只要调用了poc.js
就行
1 |
|
poc.js
:这个是攻击的核心,尤其是shellcode部分(这里的shellcode是刚刚自己掰的,功能是打开计算器)
框架部分是嫖的,感谢Jaky5155开源的EXP
1 | ENABLE_LOG = true; |
0x04 测试效果
主机服务跑起来,虚拟机用过微信内置浏览器访问主机地址——成功弹出计算器:
然后在服务器上也配置一个:http://xiabee.cn:9999/
经过多次测试,计算器正常弹出,漏洞有效。
0x05 漏洞危害与修复建议
这是一个RCE(Remote Command Execute,任意命令执行)!这是一个RCE!这是一个RCE!重要的事情说三遍!
这里只是展示了如何打开计算器,但是理论上攻击者可以根据需要编写任意的shellcode以控制受害者主机,比如最常见的shell反弹等;而且这个利用浏览器的漏洞,不需要攻击者提供恶意软件(不需要受害者下载病毒),只需精心设计一串代码,提供一个链接,诱惑受害者点击,危险指数较高。
修复的话……部分安全软件(比如Windows Defender
)并没有阻止我们点击恶意链接,部分安全软件(比如卡巴斯基)在点击含有反弹shell
的链接时发出了警告——过度依赖安全软件是不对的,不明链接不要随意点击。
当然,最保险的修复方案还是官方更新啦,直接升级到最新版(3.2.1.141及以后版本)即可 。
及时更新,及时更新,及时更新,重要的事情说三遍(x)