譯者:紫曦歸來
預估稿費:200RMB
投稿方式:發送郵件至linwei#360.cn,或登陸網頁版在線投稿
前言
我們經常會使用 Facebook Messenger 與朋友分享有趣的影片或資訊鏈接,不過最近你要提高警惕了,因為黑客可能正通過這些鏈接傳播惡意軟體。日前,卡巴斯基實驗室和Detectify實驗室的研究人員發現,黑客正利用 Facebook Messenger 進行跨平台攻擊活動, 即以目標用戶好友身份發送經過處理的視頻鏈接。一旦點擊鏈接,則會根據用戶瀏覽器與操作系統將其重新定向至虛假網站,並誘導用戶下載惡意擴展程序,從而自動下載惡意廣告軟體至用戶電腦設備。目前,卡巴斯基實驗室針對此威脅進行評估。來自Detectify實驗室的Frans Rosé也在對此進行分析研究。因此,卡巴斯基研究員David Jacoby和Detectify的研究員Frans Rosé決定共同撰寫此次事件的研究報告。
傳播機制
Frans Rosé花費了相當長的時間對JavaScript進行分析,並試圖弄清楚惡意軟體的傳播方式。從表面上看,這貌似是一個簡單的工作,但實際情況並非如此。這項工作涉及多個步驟,其中就包括確定Javascript的有效載荷。此外,由於是由腳本決定何時發起網路攻擊,因此要實時關注攻擊者何時發起攻擊。
利用Chrome傳播的惡意軟體不僅僅是傳播惡意的網路鏈接,還會收集和統計受害者的信息。我們嘗試將此次惡意軟體傳播過程進行分解,總結下來主要分為以下幾個步驟:
1、受害者從朋友那裡收到Facebook Messenger的鏈接。
2、一旦對方點入就會導引到一個Google Doc網頁,其中現實的是一個朋友頭像照片的虛假的視頻播放器。
3、點擊這個鏈接並使用Chrome瀏覽器進行觀看,就會被複位向至虛假的YouTube網站,同時該網站會誘導受害者從 Google 應用商店下載惡意 Chrome 擴展程序(實際上它是一個Downloader)。
4、一旦安裝了這個惡意的Chrome 擴展程序,受害者就會向其線上的朋友繼續發送惡意鏈接。
Chrome 惡意擴展程序傳播步驟值得我們深入研究——
Facebook的消息框
消息框中的信息包括用戶的姓氏、「視頻」(Video)一詞和隨機的emoji表情:
以及使用URL縮短工具創建的鏈接。
Google文檔共享PDF預覽
點擊鏈接後,用戶就會被複位向到docs.google.com上的一個URL。此鏈接是通過使用共享PDF的預覽鏈接製作的。這一可能性比較大,因為這是通過外部鏈接在合法的Google域上獲取大型受控內容區域的最快方式。
PDF本身是使用PHP中的TCPDF 6.2.13創建的,然後使用Google Cloud Services上傳Google文檔。
TCPDF 6.2.13的PHP創建的,然後使用Google Cloud Services上傳到Google文檔。點擊
就會轉到一個正在預覽的PDF文件的詳細信息頁面。
生成的鏈接的共享設置,其中包含一個有趣的細節:
上圖中顯示「任何人都可以編輯」(Anyone can edit」),這就意味著任何擁有鏈接的人都可以對其進行編輯。讓我們來看看這個鏈接是如何傳播開來的——攻擊對所有受害者facebook好友都發送了相同的鏈接。但任何一個好友改變鏈接訪問許可權,就會阻止攻擊蔓延到受害者的其它朋友。
另一個有趣的細節是創建文檔的用戶。對大量的個案進行研究就會發現其中的規律:
上圖所示是發送給四個不同受害者的鏈接,但其中的三個鏈接都使用了一個相同的IAM用戶名(ID-34234),即便這三個鏈接使用的是不同的Google Cloud項目創建的。
在黑客發起攻擊時,這些發送給受害者的pdf預覽頁面的URL都不在Google的黑名單之列。
重新定向
在點擊Google文檔鏈接後,用戶將被重新定向,最有可能出現的是指紋識別瀏覽器。以下我們將重點分析Chrome瀏覽器。
Chrome擴展程序重新定向被重新定向至虛假的YouTube網頁
使用Chrome瀏覽器的用戶將被重新定向至虛假的YouTube網頁。我們注意到在攻擊時使用了幾個不同的域。
被重新定向的頁面還會要求您安裝Chrome擴展程序。由於用戶可以直接在頁面上安裝Chrome擴展程序,因此受害者唯一可以執行的操作就是單擊「添加擴展名」。一旦受害者點擊了「添加擴展名」,黑客的攻擊行動就成功了。
Chrome擴展程序
這裡使用了多種Chrome擴展程序。所有的擴展程序都是新創建的,代碼是從名稱相似的擴展名中盜來的。這些擴展程序主要是使用background.js和manifest.json的修改版。
顯示進行了更改以控制tabs和所有的URL,並啟用對background.js的支持:
我們發現的所有Chrome擴展程序中的後台腳本都是模糊的,但基礎的腳本如下圖所示:
模糊後台腳本
這個腳本非常值得深入推敲。首先,用戶只有從Chrome Webstore上安裝了擴展程序,background.js才能獲取外部URL;如果使用未打包的從本地安裝的擴展程序則不會觸發網路攻擊。
抓取的URL將包含另一個腳本的引用。這個腳本將使用URL.createObjectURL發送到一個Javascript的Blob對象,然後運行background.js。
Blob對象中新生成的腳本同樣是模糊的,如下圖所示:
之後將出現這兩種情況:
1、如果tab載入成功,就會為所有tab添加一個聽眾。
2、標籤頁面載入後,將向另一URL地址發起請求。如果該響應包含任何內容,將被發回標籤頁面,同時使用executeScript進行觸發。該文件之後將在發出請求的標籤頁面上運行Javascript,從而及時實現XSS注入。
獲取所有腳本
進行識別被注入文件的研究時,我注意到攻擊者的C&C伺服器並非始終有代碼返回。我開始猜測,當攻擊發起時,攻擊者能夠控制是否傳播攻擊,以及是否採取手動或特定手段進行。
為了避免在這裡白白坐等,我建立了偽擴展程序來模擬攻擊者的行為。當然,我並沒有激活相關代碼,而是將其保存在本地。
一段時間後,我注意到自己已經獲得許多點擊量,點擊者的終端均立即發回了回應碼(back code):
返回的代碼沒有經過任何混淆處理,能夠從中看清具體流程。該代碼實際是專門針對Facebook而編寫的。
該腳本將執行以下操作:
查看運行的域中是否包含Facebook.com。
提取CSRF憑證以訪問Facebook,將其名為「fb_dtsg」。
查看是否已經獲取訪問憑證(獲得訪問許可權是為了完成Facebook API的身份驗證)。
將訪問令牌(access token)和用戶ID發送給攻擊者的外部站點。
確保平台功能已啟用(禁用kill-switch):
創建一個訪問令牌。目前Facebook已經棄用了FQL API,Facebook此前一直使用FQL API:
然而攻擊者發現,如果目標使用iOS系統中的「Pages Manager」應用程序定製訪問憑證,FQL API將繼續保持可用。
讓我們繼續來看最有趣的部分,即這些腳本都幹了什麼:
對攻擊者點贊Facebook頁面的剖析
該腳本將根據硬編碼內容為一個Facebook頁面點贊。而攻擊者很有可能是通過監控該頁面的點贊數量來計算受感染用戶的具體數量的。
在該攻擊的某一階段中,我們發現頁面中的點贊數量激增,在短短數小時之中,從8900躍升到近32000:
同樣明顯的是,攻擊者能夠通過C&C伺服器中的腳本獲取器來控制攻擊時間。在攻擊過程中,該網頁點贊數量的增長速度呈現出巨大差異。
攻擊者此外還數次更換了頁面,很有可能是因為他們的頁面遭到了Facebook封停。
取得好友列表
由於攻擊者已經獲得一個支持FQL的訪問憑證,他們將能利用過時API取得受害者的朋友列表,並按上線日期進行劃分,將一直保持在線的朋友選取出來。
他們通過一次選取50名好友將其打亂,只有當這些好友處於空閑或在線狀態時,才開始發動攻擊。
接著,他們將通過另一域名生成鏈接,專門用於接受用戶ID信息。這一鏈接將在Google Docs上創建PDF文件,記錄目前受害者的檔案資料,再由一個短地址將其發回。
攻擊者接收該鏈接後,會再次隨即向所有好友發送信息,並使該鏈接再次運轉。
有趣的細節
在前面的攻擊中,植入代碼的某些部分從未被使用過,或有所遺留。
其中一部分就是在合適條件下向每名好友發送消息的定位功能,在實際攻擊中其被換成了隨機的emoji表情:
login.php
攻擊者所使用的域中包含了一些文件,使我們猜測類似login.php在內的PHP文件應該存儲其中。該文件將同時釋放出一個Facebook登錄腳本,以及一個硬編碼電子郵箱地址:
版本
我們發現攻擊者使用了數種版本的Facebook注入腳本。在攻擊的末尾階段,該腳本僅僅點贊了Facebook頁面,卻並未發動攻擊。另外,用於收集訪問憑證的域名也從腳本中移除了。
登錄頁
正如我們所提到,腳本同樣列舉了你正在使用的瀏覽器類型。Chrome拓展部分僅對使用Google Chrome的用戶有效。如果你使用的是另一種瀏覽器,相關代碼也會執行其它命令。
有趣的是,攻擊者雖然對大多數操作系統添加了支持,但我們並未收集到針對Linux操作系統的任何樣本。
我們所收集的樣本均為惡意廣告程序,在受害者打開最後的登陸頁時,將被複位向至數個
包含惡意郵件或廣告的跟蹤域。這也說明了攻擊者想要通過點擊量或分發惡意郵件或廣告進行謀利。
Safari瀏覽器
MD5 (AdobeFlashPlayerInstaller.dmg) = d8bf71b7b524077d2469d9a2524d6d79
MD5 (FlashPlayer.dmg) = cfc58f532b16395e873840b03f173733
MD5 (MPlay.dmg) = 05163f148a01eb28f252de9ce1bd6978
這些均為虛假的Adobe Flash更新,但受害者每次都會關閉不同的網站。為此,攻擊者似乎輪流使用了一組域名。
火狐瀏覽器(Mozilla Firefox)
MD5 (VideoPlayerSetup_2368681540.exe) = 93df484b00f1a81aeb9ccfdcf2dce481
MD5 (VideoPlayerSetup_3106177604.exe) = de4f41ede202f85c370476b731fb36eb
「我感染了這個,我該怎麼辦?
目前,Google Chrome安全小組已禁用所有惡意擴展程序,但是當攻擊者使用惡意軟體盜取了你的Facebook個人資料的同時,也盜取了你Facebook賬號的訪問令牌(access-token)。這個訪問令牌可能使有時間限制的,但是它的訪問許可權非常之大。Facebook賬號的訪問令牌主要是用於安卓系統的Facebook軟體。一旦獲得了你的訪問令牌,攻擊者就可以訪問用戶的個人資料,不論你是否更改了密碼、註銷Facebook賬戶或是關閉了Facebook上的的平台設置。
我們目前正在與Facebook就這個問題進行探討。但目前看來,受害者似乎並沒有一個簡單的方法廢除被攻擊者偷走的訪問令牌。現在只能祈禱攻擊者不要在令牌過期之前做任何事情。
我們強烈建議用戶更新殺毒軟體。
結語
攻擊主要依賴現實的社交互動,動態用戶內容和合法域名作為中間步驟。上述擴散機制的核心感染點是安裝Chrome擴展程序。當你允許擴展過程式控制制瀏覽器活動時請格外注意。同時,也要弄清楚目前你的瀏覽器上運行了哪些擴展程序。如果你使用的是Chrome瀏覽器,可以在URL中輸入chrome://extensions/,以獲取正在運行的擴展程序列表。