您好,登錄后才能下訂單哦!
本篇文章為大家展示了影響400多萬Mac系統的Zoom視頻會議軟件漏洞是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
作者發現了視頻會議軟件ZOOM for Mac客戶端程序的兩個漏洞和一個缺陷,安裝有ZOOM客戶端的Mac系統用戶可能會受到RCE攻擊,可被攻擊者遠程未授權開啟本機攝像頭。
Zoom是一款多人云視頻會議軟件,為用戶提供兼備高清視頻會議與移動網絡會議功能的免費云視頻通話服務。用戶可通過手機、平板電腦、PC與工作伙伴進行多人視頻及語音通話、屏幕分享、會議預約管理等商務溝通。Zoom支持100人以下的高清視頻通話,是目前領先的移動視頻會議工具。Zoom適用于Windows、Mac、Linux、iOS、Android系統。
漏洞原因在于ZOOM for Mac系統的客戶端軟件中存在bug缺陷,攻擊者通過在自己網站中部署利用代碼,當安裝有ZOOM for Mac的系統用戶訪問該網站后,就能觸發漏洞,實現未授權的攝像頭開啟。該漏洞可能會對采用Zoom軟件應用于日常視頻會議的全球75萬家公司造成影響。
CVE漏洞編號
CVE-2019–13450:開啟受害者系統攝像頭導致的信息泄露漏洞(未修復)
CVE-2019–13449:DoS拒絕服務攻擊 (在ZOOM 4.4.2客戶端版本中已經修復)
該漏洞可以通過訪問一個惡意網站的方式,遠程未授權地激活開啟受害者系統中與ZOOM關聯的攝像頭,并強制ZOOM客戶端用戶加入某個ZOOM視頻會議。
這種情況下,可讓受害者反復不停地加入一個無效的視頻會議,致使其安裝有ZOOM客戶端形成拒絕服務攻擊(DoS)。此外,如果用戶在系統中安裝了ZOOM客戶端軟件之后又卸載了它,但是,它仍然在你的系統中殘存有一個localhost的Web服務,通過該殘存服務,ZOOM可以不用任何用戶交互操作即能實現完整的程序重裝,目前,這個所謂的“重裝”功能依然有效。
在Mac系統中,如果你安裝了ZOOM客戶端軟件,它會形成一個本地localhost:19421的Web服務,你可以在終端中用命令 lsof -i :19421 來查看。
首先,這種安裝了ZOOM客戶端軟件,就開啟一個無任何文檔說明的API接口的事至少讓我覺得不妥;其次,我訪問的任何網站都可能會與該localhost Web服務發生交互,這對搞安全的我來說,簡單就是一個風險隱患。以下是ZOOM源碼中開啟locaohost服務的代碼段:
看到代碼的時候我就想,是否其參數處理過程會存在緩沖區溢出漏洞,這樣就會讓操作系統面臨RCE攻擊。當然,此僅當猜測,最終也沒發現這樣的問題。當訪問一個視頻會議加入(Join)鏈接之后,可通過Chrome瀏覽器調試工具對該locaohost服務的行為進行觀察,如下:
后來我還發現,該locaohost服務對應的頁面并不執行正常的AJAX請求,但它會從本機運行的localhost web服務中加載一張圖片,這張加載圖片的不同尺寸都對應著表示ZOOM服務的不同狀態和錯誤碼,如下:
可怕的是,從以上這個狀態和錯誤碼推斷來看(download、install、upgrade、launch...),這個本機的localhost web服務具備的功能,不僅僅是能啟動ZOOM視頻會議,也就是前述提到的,如果用戶卸載了ZOOM,它還能執行重裝......,等等。
我的疑問是,為什么這個localhost web服務會返回這種以圖片尺寸為狀態響應的編碼數據?唯一的理由是,它是為了繞過CORS策略限制。但是,針對本機localhost的CORS策略,瀏覽器已經完全不做限制了啊。比如,Chrome自2010年起,就已經不對localhost的CORS請求進行限制了。我猜想ZOOM此舉是出于安全考慮,也貌似可能是濫用這種技巧去繞過CORS策略。在此,我對開啟受害者系統攝像頭的CVE-2019–13450、導致DoS拒絕服務的CVE-2019–13449以及卸載后殘存的重裝bug進行一個簡要分析。
我用不同賬號在本機創建了一個ZOOM私人會議,并用Postman對其進行請求分析和參數測試,看看啟動一個會議所需的最小GET請求是些什么。分析中有大量隨機參數發向localhost web服務,其中有兩個重要參數如下:
action=join (執行操作-加入)
confno=[whatever the conference number is] (會議編號)
操縱這兩個參數,從Postman中構造以下GET請求,我就能讓我的電腦加入其它用戶創建的ZOOM視頻會議了。
之后,我又修改了其它參數看能否實現其它行為,但從ZOOM公開的說明文檔和ProtoBuff機制來看,我找不到任何可利用的隱藏功能,而且,這個本機的web服務沒有任何官方說明,難以理解。以上的GET請求只能作為一個小小的驗證性POC,用它可誘使受害者強制用戶加入會議,新加入會議后, “New Meeting”的默認設置是會讓用戶選擇音頻/視頻加入,我認為這本身就是一個安全漏洞。
之后,我注意到Tenable上報過ZOOM的一個RCE漏洞(CVE-2018-15715),它在去年底才被完整修復,但如果CVE-2018-15715和我發現的這個漏洞結合的話,可能會對安裝有ZOOM客戶端的任何Mac系統形成RCE攻擊影響。而就我當前的發現來說,我暫時還沒真正的exploit利用代碼,如何讓受害者系統的攝像頭激活開啟是一個難點。但當我設置辦公視頻會議時,看到了ZOOM中的以下這個界面,也就是說,在設置會議的時候,可選擇讓參會者開啟攝像頭加入會議:
選擇Video項下的 “Participants: On”按鈕,其它參會人員將會自動開啟其本機攝像頭,以視頻形式加入會議。這樣一來,我就可以繼續再構造新的POC了。
由于本機的localhost web服務在后臺運行,所以實際來說,要使受害者中招,根本不需要以傳統方式真實運行目標應用。第一行POC代碼強制受害者加入會議:
<img src="http://localhost:19421/launch?action=join&confno=492468757"/>
如果要使加入會議的受害者自動開啟攝像頭,可把以下視頻邀請鏈接嵌入到由攻擊者控制的惡意網站iframe中就行,第二行POC代碼:
<iframe src="https://zoom.us/j/492468757"/>
攻擊者只需把以上兩行POC代碼部署在自己控制的網站中,然后誘使受害者訪問瀏覽,受害者Mac系統中的ZOOM客戶端就會開啟攝像頭,加入攻擊者預先設置的視頻會議。這種POC代碼嵌入可以通過惡意廣告,或釣魚頁面等方式。目前,該漏洞仍然有效。https://jlleitschuh.org/zoom_vulnerability_poc/這是我構造的一個POC頁面,它實現強制加入會議:
https://jlleitschuh.org/zoom_vulnerability_poc/zoompwn_iframe.html,這個POC頁面實現開啟你的攝像頭,加入我的視頻會議:
以上漏洞同樣可以導致對受害者系統的DOS攻擊,只要發送一個重復無效的GET請求給受害者,受害者系統中的ZOOM客戶端程序就會從當前系統中反復執行GET請求,具體POC如下:
<body><script>// It's actually better if this number isn't a valid zoom number.var attackNumber = "694138052"setInterval(function(){ var image = document.createElement("img"); // Use a date to bust the browser's cache var date = new Date(); image.src = "http://localhost:19421/launch?action=join&confno=" + attackNumber + "&" + date.getTime(); image.onload = function() { // Be tidy, clean up the DOM afterwards image.parentNode.removeChild(image); }; document.body.appendChild(image);}, 1);</script></body>
目前,該DOS漏洞已在ZOOM客戶端4.4.2版本中得到修復。
如果用戶在系統中安裝了ZOOM客戶端程序之后,就會自動開啟前述的localhost web服務,即使是卸載了ZOOM程序,這個localhost web服務仍然存在,在后續的會議發起請求時,它支持ZOOM的重裝和更新。我通過反編譯該localhost web服務去了解其中的邏輯調用。在Hopper Disassemble幫助下,我發現了localhost web服務中涉及的以下方法函數:
這看起來像是,從某個API接口請求中獲取參數,并用它創建一個下載網址,用于升級已安裝的ZOOM程序。而這個方法函數又由以下方法來控制,它會確保下載URL來自zoom的可信域名:
在這個localhost web服務中,內置有一個用來在Mac系統中更新和重裝當前ZOOM程序的API,用戶可以通過以下方式來確認:
如果你的Mac系統此前從未安裝過ZOOM,則先安裝ZOOM;
然后打開ZOOM客戶端,接著把它關閉;
把Applications/zoom.us.app文件刪除放到垃圾箱,執行對ZOOM程序的卸載;
現在,點擊任何ZOOM會議加入邀請鏈接,這時,你系統中殘存的localhost web服務會“友善”地執行對ZOOM程序的重裝,之后并會啟動ZOOM程序。
可以在反編譯后的ZOOM客戶端代碼中看到一些內置域名,引用這些域名對應的鏈接可以從ZOOM官網實現遠程的更新重裝動作,比如這個https://zipow.com/upgrade?os=mac:
對這些內置域名whois之后,可以發現這些域名的存在可被劫持利用風險,如zoomgov.com到2019年5月1日就過期了,如果ZOOM廠商未能及時續注,那么攻擊者就可能把該域名注為己有,進而托管惡意程序,對正常安裝和卸載了ZOOM客戶端的用戶形成感染。當然,如果進一步利用,這種域名劫持風險結合上述漏洞,將能在ZOOM客戶端系統中實現RCE攻擊。還好,在我上報漏洞之后,ZOOM方面對這個zoomgov.com及時續注到了2024年5月1日。
在我看來,網站和桌面應用程序之間不應該實現互動調用,瀏覽器應該執行一個最基本的沙箱程序來防止惡意代碼在用戶機器上執行。
因為ZOOM用戶系統中存在的那個localhost web服務可以接收到HTTP和GET請求,所以,這就能繞過瀏覽器原有沙箱防護機制實現代碼執行,導致ZOOM用戶處于很大攻擊面之中。
作者于2019年3月8日向ZOOM官方上報了以上存在的問題,ZOOM方面承諾會在90天內修復漏洞,并會盡快給出“快速修復”解決方案;期間,歷經了10多輪反復冗長的溝通協商,2019年6月21日,ZOOM終于告知作者漏洞已經修復,但在后期7月7日的復測過程中,作者又成功復現了遠程攝像頭開啟漏洞。非常無奈之下,作者還是選擇了公開披露漏洞。
當前,Zoom、Google Meet 和 Skype for Business是主流的視頻會議應用,截至2015年,Zoom擁有超過4000萬用戶,鑒于蘋果電腦占個人電腦市場的10%,自2015年以來,Zoom市場占有率持續增長,Zoom的用戶中至少有400萬人在使用Mac系統。本質來說,以上漏洞都會對Zoom用戶造成嚴重安全威脅,但遺憾的是,Zoom在90天寬限期內,仍然未完全修復,現在,將近有400萬Zoom用戶面臨安全風險。
上述內容就是影響400多萬Mac系統的Zoom視頻會議軟件漏洞是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。