https://medium.com/@jonathan.leitschuh/zoom-zero-day-4-million-webcams-maybe-an-rce-just-get-them-to-visit-your-website-ac75c83f4ef5
漏洞原因:
zoom在本地自建了一个含有漏洞的web 服务 为了妥协 CORS-RFC
端口在:19421
修复方案:
关闭视频
# For just your local account
defaults write ~/Library/Preferences/us.zoom.config.plist ZDisableVideo 1
# For all users on the machine
sudo defaults write /Library/Preferences/us.zoom.config.plist ZDisableVideo 1
# To prevent the vulnerable server from running on your machine
# (this does not impact Zoom functionality), run these two lines in your Terminal.
pkill "ZoomOpener"; rm -rf ~/.zoomus; touch ~/.zoomus && chmod 000 ~/.zoomus;
pkill "RingCentralOpener"; rm -rf ~/.ringcentralopener; touch ~/.ringcentralopener && chmod 000 ~/.ringcentralopener;
# (You may need to run these lines for each user on your machine.)
https://speakerdeck.com/patrickwardle/virusbulletin-2016-getting-duped-piggybacking-on-webcam-streams-for-surreptitious-recordings?slide=27
如何使用xpc来监控访问摄像头的程序。
https://objective-see.com/products/oversight.html
https://objective-see.com/blog/blog_0x56.html
鉴于全球疫情爆发,居家视频会议需求的暴增,云视频软件Zoom顺势爆红,市值暴涨130%,峰值在线人一度高达2亿人次。与此同时Zoom也成为全球黑客组织发起攻击的“重磅轰炸区”,最近几周Zoom各种负面新闻层出不穷,引发信任危机。
平台的安全性,私密性和安全性受到前所未有的挑战。遂CEO迅速发话宣布:【Zoom将在90天冻结功能更新,全力解决隐私和安全问题.】
当然,冰冻三尺非一日之寒。Zoom自身的安全性一直就被人诟病。早在19年7月安全研究员 @JLLeitschuh 就曝光过Zoom的Mac客户端中一个使受害者进入会议并打开摄像头的0day漏洞。而Zoom在知晓此漏洞的100天里都没有进行修复。
SO,本文将简单的列举一下Zoom近一年在macOS上出现的一些安全漏洞,常见的几大类型漏洞都有,刚好能借此学习一下macOS上的安全姿势。
CVE编号 漏洞类型及危害 影响版本
CVE-2019–13449 远程拒绝服务 < v4.4.2
CVE-2019–13450 信息泄露,强制进入会议并打开摄像头 < v4.4.5
CVE-2019-13567 1-click 远程RCE < v4.4.5
本地权限提升#1 Privilege Escalation to Root < v4.6.9
本地权限提升#2 Code Injection for Mic & Camera Access < v4.6.9
漏洞测试环境
macOS 10.12
zoom v4.6.8
由于目前找到靠谱低版本mac软件的下载渠道,所以简单分析通过zoom v4.6.8的安装包,来简单分析下最近修复的两个提权漏洞。
0x01 Zoom本地权限提升#1:权限提升
0.macOS应用权限背景:
Mac上不常见有ring0,ring3的概念。所以我简单把Mac上应用分为沙盒应用,普通应用,System应用。
沙盒应用:在macOS上,Appstore中的程序是处在沙盒中的只能读写自己~Library/Containers/
/目录下的文件。
普通应用:从开发人员网站直接下载DMG镜像中的程序,PKG包程序或者xcode编写的关闭APP Sanbox程序。
System应用:系统应用或者申请System授权的程序。
普通应用能利用此漏洞劫持文件来做权限提升到ROOT。
1.提权漏洞原理如下:
原因就是Zoom在通过PKG软件安装时,一般会申请System的弹窗权限。而Zoom在申请到System权限后调用AuthorizationExecuteWithPrivileges的API以root权限来执行一个落在磁盘可读可写临时目录上的runwithroot文件,此API没有验证将要执行的二进制文件,低权限的应用程序或者恶意软件可以暗中篡改、替换它,从而将利用此文来来讲自身的权限升级到root:
2.漏洞的攻击方式:
所以普通程序利用此漏洞的攻击方式为,监控PKGS解压的临时文件目录。劫持并改写runwithroot文件从而以root权限来执行自己的脚本。
临时文件的目录一般在/private/var/folders/*/T/
tester@users-Mac T % pwd
/private/var/folders/v5/s530008n11dbm2n2pgzxkk700000gp/T
tester@users-Mac T % ls -lart com.apple.install.v43Mcm4r
total 27224
-rwxr-xr-x 1 tester staff 70896 Mar 23 02:25 zoomAutenticationTool
-rw-r–r-- 1 tester staff 513 Mar 23 02:25 zoom.entitlements
-rw-r–r-- 1 tester staff 12008512 Mar 23 02:25 zm.7z
-rwxr-xr-x 1 tester staff 448 Mar 23 02:25 runwithroot
3.漏洞验证如下:
POC: 在执行的runwithroot追加如下代码
cp /bin/ksh /tmp
chown root:wheel /tmp/ksh
chmod u+s /tmp/ksh
open /tmp/ksh
可以看到利用此漏洞普通的程序提权成root,了解到此漏洞的原理后,此提权攻击场景还是比较受限的。只有在安装时刻才能做到劫持。
0x02 Zoom本地权限提升#2:获取麦克风与摄像头权限的代码注入
0.macOS摄像头及麦克风权限:
在macOS的新版系统上,应用使用麦克风和摄像头等权限会有一个权限的申请弹窗。
一般情况下正常使用的zoom都会拥有麦克风和摄像头权限。没有这两项权限的应用只要注入到zoom中就可以获得这两项权限。
1.漏洞的攻击方式:
此种利用的攻击方式与环境变量注入有相似之处。通过使用代理的模式替换了目标(即Zoom)所依赖的合法库文件libcrypto.1.0.0.dylib,注入我们要执行的代码,执行完毕后将请求代理回原始库文件,以确保程序功能正常使用。
验证依赖库:重命名动态运行库libcrypto.1.0.0.dylib,运行Zoom会出现崩溃。
2.漏洞的攻击方式:
使用xcode新建一个Libray库,libssl.1.0.0.dylib。
其中核心注入代码如下:
#import
{ char path[2000];
proc_pidpath (getpid(), path, sizeof(path)-1);
NSLog(@"zoom zoom: loaded in %d: %s", getpid(), path); return;
}
将原本目录下的/Applications/zoom.us.app/Contents/Frameworks/libcrypto.1.0.0.dylib重命名为_libssl.1.0.0.dylib.并放入我们刚编译的libcrypto.1.0.0.dylib。运行zoom,成功注入了代码。
3.漏洞修复方式如下:
程序的修复的方式是,对预加载的libcrypto.1.0.0.dylib进行一次校验。检验不成功程序就退出。
0x03 一些总结及想法:
0.安全是一个特性,当产品发展到差异化极小的阶段时,安全有可能会成为产品的一种核心竞争力,成为拉开产品与竞争对手之间差距的秘密武器。只有安全也做得好的产品,才能成为真正的好产品。
1.以黑灰产跟炒热点的尿性,近期各种Zoom盗版,仿冒欺诈软件必会层出不穷。建议大家从官方渠道下载Zoom,且及时更新到最新版。案例见:黑客利用Zoom的流行来传播恶意软件
2.同时从各项漏洞的分析中,也学习到了审计macOS应用的一些思路(文件劫持,dylib注入提权)。相信聪明的你也已经get到了~
3.假设此时正有APT组织利用Zoom的0day或者Nday的RCE来全网扫含有漏洞的机器,我们又如何编写蜜罐去捕获到这些在野的攻击呢?
0x04 参考:
The ‘S’ in Zoom, Stands for Security
Zoom Zero Day: 4+ Million Webcams & maybe an RCE? Just get them to visit your website!