Facebook WhatsApp TLS令牌泄漏漏洞復現(CVE-2021-24027)
發布時間 2021-04-30背景
WhatsApp是美國Facebook的即時通訊應用,在海外擁有龐大的用戶基數。4月14日,安全研究員Chariton Karamitas披露Android WhatsApp存在令牌泄露漏洞,結合其他漏洞可導致遠程代碼執行。該漏洞影響WhatsApp v2.21.4.18和WhatsApp Business v2.21.4.18之前的版本,建議用戶及時更新到2.21.4.18或更高版本,以規避該漏洞存在的攻擊風險。
漏洞分析
1、令牌泄露漏洞(CVE-2021-24027)
該漏洞存在的原因,是由于WhatsApp將TLS會話登陸后的序列化令牌文件放在了sdcard目錄下,該目錄并未設置訪問權限。
WhatsApp采用TLS1.3/TLS1.2來進行客戶端到服務器的通信,在TLS握手的過程中,通信雙方進行相互認證和密鑰協商,服務器身份驗證使用非對稱加密方式,對于較小尺寸的嵌入式設備,這是一個計算量非常大的過程。為了減少功耗,節省CPU周期,提出了會話恢復過程,當重新建立握手時,復用之前的會話信息。
下圖中為設置會話緩存文件夾的反編譯代碼截圖及實際文件路徑截圖,WhatsApp將登陸會話緩存TLS1.2和TLS1.3分別放在文件夾SSLSessionCache和watls-sessions中。這些目錄在不受保護的外部存儲下。攻擊者可以通過物理接觸手機獲得這些文件,造成令牌泄漏。
2、目錄穿越漏洞
WhatsApp有Emoji和照片濾鏡熱更新功能,我們可以利用中間人來篡改Emoji或照片濾鏡熱更新時的zip包。zip文件解壓反編譯代碼截圖如下:
WhatsApp進行Emoji或照片濾鏡熱更新時,沒有過濾”.//”,可導致目錄穿越。如果受害者被中間人劫持,并且攻擊者篡改了熱更新zip包,其中包含由”.//”目錄構成的so文件,使其覆蓋WhatsApp動態鏈接庫so文件,將導致任意代碼執行。
漏洞利用
前面提到需要通過物理接觸獲取令牌,局限性較大。如果攻擊者配合網絡釣魚,發送一個偽裝的html文件給受害者,當受害者使用Chrome(存在漏洞CVE-2020-6516)打開此html時,執行html中的js代碼,遍歷sdcard文件夾查找TLS緩存文件,并把文件發送到攻擊者指定的服務器上。大致過程如下:
(1)在發送一條消息時,包含消息的類型、消息的預覽圖片、消息的標題和消息的實際內容文件四部分。類路徑X/041的A0l字段指示發送消息的類型,類路徑X/0Qe的A03字段指示消息的預覽圖片的byte數組,類路徑X/0Nd的A04字段指示發送消息的標題,類路徑X/0M6的A05(Ljava/util/List;Landroid/net/Uri;Ljava/lang/String;LX/041;LX/02l;Z)方法為最終發送消息實際內容文件的函數。相關截圖如下:
(2)攻擊者采用frida的RPC遠程調用功能創建一個函數,并在hook函數中修改第一步中待發送的消息,將消息的預覽圖片更換成具有吸引力的圖片,并調用X/0M6的A05(Ljava/util/List;Landroid/net/Uri;Ljava/lang/String;LX/041;LX/02l;Z)方法將消息發送給受害者(第一個參數為由受害者的WhatsApp地址構成的List,WhatApp地址格式為mobile_number@s.whatsapp.net),如果受害者點擊圖片,調用Chrome打開惡意html文件,TLS緩存令牌可能被發送到攻擊者服務器。
(3)html文件關鍵部分截圖如下。在成功獲取到TLS緩存文件后,我們即可進行中間人攻擊。
(4)利用Emoji或照片濾鏡熱更新功能,通過中間人來篡改Emoji或照片濾鏡熱更新響應zip包,從而導致遠程任意代碼執行(演示視頻為了方便,直接使用Charles來模擬熱更新覆蓋WhatsApp動態鏈接庫so文件,來達到RCE的過程)。
漏洞復現
1、令牌泄露漏洞復現
2、RCE漏洞復現
參考鏈接:
[1]https://www.census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/
[2] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-24027
[3] https://github.com/CENSUS/whatsapp-mitd-mitm
[4] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-6516
[5]https://bugs.chromium.org/p/chromium/issues/detail?id=1092449
[6] https://youtu.be/sdVqTEXHxxY
[7] https://youtu.be/KO_K0F4W36I
啟明星辰積極防御實驗室(ADLab)
ADLab成立于1999年,是中國安全行業最早成立的攻防技術研究實驗室之一,微軟MAPP計劃核心成員,“黑雀攻擊”概念首推者。截止目前,ADLab已通過CVE累計發布安全漏洞近1100個,通過 CNVD/CNNVD累計發布安全漏洞1000余個,持續保持國際網絡安全領域一流水準。實驗室研究方向涵蓋操作系統與應用系統安全研究、智能終端安全研究、物聯網智能設備安全研究、Web安全研究、工控系統安全研究、云安全研究。研究成果應用于產品核心技術研究、國家重點科技項目攻關、專業安全服務等。