剖析Facebook惡意軟體通過Chrome擴充傳播的流程

Editor發表於2017-10-12

剖析Facebook惡意軟體通過Chrome擴充傳播的流程


Kaspersky Lab 和Detectify 聯合對上週在Facebook 上傳播的惡意軟體進行逆向分析。當我們的裝置受到攻擊時,可以從所涉及的公司和雲服務中得到幫助, 以便快速關閉攻擊的部分,減輕攻擊帶來的影響。

更新 #1: 攻擊仍在進行, 但它已經改變了流程, 現在竊取了 non-expiry 的訪問-令牌。請閱讀以下內容。

介紹

自從卡巴斯基實驗室在部落格上公佈關於多平臺的facebook 惡意軟體過去了一些日子, 這款惡意軟體是通過 facebook 的信使傳播。在卡巴斯基實驗室分析這一軟體的安全威脅同時,其實還有有一些研究人員在做同樣的工作, 包括Frans Rosén, Detectify 的安全顧問。

在Frans看了David對部落格的評論,他找到David問他:為什麼他們都做同樣的工作。Frans有一個想法, 所以他們開始比較筆記, 發現Frans實際上分析了David一些沒有的部分。他們決定共同寫下第二部分的分析, 將攻擊行為詳細描述。

傳播機制

Frans花了許多時間分析JavaScript,希望找到惡意軟體是如何傳播的,雖然這個任務看似簡單。試圖找出 Javascript 有效載荷的方法有多個步驟。此外, 由於指令碼動態決定何時啟動攻擊, 因此必須在攻擊者觸發它時對其進行監視。

這些結論可以分解成幾個步驟, 因為它不僅是傳播連結, 惡意軟體還會通知攻擊者關於每個感染者所收集統計資訊, 並列舉瀏覽器。我們試著儘可能簡單地總結這些步驟:

1.受害者會在Facebook 聊天視窗收到好友發來的一個連結。

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

2.連結轉到 Google 文件, 它的影像看起來像是一個假的視訊播放器, 上面有朋友的個人資料圖片。

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

3. 在chrome瀏覽器上開啟該連結,瀏覽器將進入一個假冒的 YouTube 網頁, 要求您直接在頁面上的 安裝chrome 擴充套件工具。

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

4. 安裝 Chrome 擴充套件工具後, 會將惡意連結傳播給受害者的線上好友, 並與受害者的個人

資料圖片相結合。

在這些步驟中,有一些有趣的東西,所以我們來認真看看。

技術細節

Facebook訊息

訊息本身將由獲取訊息的使用者的名字、單詞 "視訊" 和隨機選擇的這些 emojis 的一個名稱組成:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

同時還有URL短地址的一個連結

谷歌文件共享 PDF 預覽

使用者點選連結會被重定向到一個地址為docs.google.com的網頁。此連結是通過使用共享PDF的預覽連結製作的,這一可能性比較大,因為這是通過外部連結在合法的Google域上獲取大型受控內容區域的最快方式。

PDF本身是使用PHP中的TCPDF 6.2.13建立的,然後使用Google Cloud Services上傳到GoogleDocs。點選就會轉到一個正在預覽的PDF檔案的詳細資訊頁面。

生成的連結的共享設定,其中包含一個有趣的細節:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

“任何人都可以編輯”。這個結構意味著任何擁有這個連結的人都可以編輯。看看這個連結是如何傳播的,這個攻擊重複傳送相同的連結到受害者的朋友。但任何一個好友改變連結訪問許可權,就會阻止攻擊蔓延到受害者的其它朋友。

另外一個有趣的細節是建立文件的使用者。收集了一系列的案例後,我們可以看清一些模式:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

分析來自不同受害者的四個連結,雖然它們是在不同的Google Cloud專案中建立的,但是其中三個共享相同的IAM 使用者名稱(ID-34234)

攻擊的時候,來自PDF預覽的連結沒有一個 被Google 列入黑名單

重定向部分

在Google Docs的連結被點選之後,使用者會經歷一系列重定向,最有可能是為了獲取瀏覽器的數字證照。以下我們將重點分析Chrome瀏覽器。

對於其他的瀏覽器(出現了廣告, 並且下載了廣告軟體)請閱讀下面的登陸頁面。

虛假的YouTube上帶有Chrome擴充安裝包

當在電腦上使用Chrome瀏覽器,你就會被定向到一個虛假的YouTube頁面。我們注意到在攻擊中用到的 幾個不同的域名。

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

這個網頁會詢問你是否要安裝Chrome擴充工具。因為你可以直接在網頁上安裝一個Chrome擴充工具,受害者需要做的動作就是點選“新增擴充工具”。 在這一點之後, 攻擊會進一步蔓延Chrome擴充套件,然而卻不需要受害者其他的操作。

Chrome Extension

在這過程用到了多種的Chrome 擴充套件工具。所有的擴充都工具是新建立的,程式碼是從名稱相似的副檔名中複製來的。這些擴充套件程式的Java指令碼程式碼主要是使用background.js和manifest.json的修改版。

通過修改manifest,以控制tabs和所有的URL,並啟用對background指令碼的支援:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

我們發現的所有Chrome擴充套件程式中的後臺指令碼都是混淆的,但基礎的指令碼如下圖所示:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

混淆的後臺指令碼

這個指令碼有些有趣的東西

首先,這個擴充工具只有從Chrome Webstore上安裝,background.js才能獲取外部URL;使用本地檔案安裝這個擴充工具並不會引起攻擊。

抓取的URL將被新增另一個指令碼的引用。這個指令碼將使用URL.createObjectURL傳送到一個Javascript的Blob物件,然後執行background.js。

這個來自blob的新指令碼也將會被混淆編碼。看起來就像這樣:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

下面就是這些功能的主要內容:

1.新增監聽工具,監測每一個成功載入的新網頁。

2.當網頁載入成功,會向另一個URL傳送一個新的請求。如果收到的相應中含有內容,將被髮回標籤頁面,同時使用executeScript進行載入。該檔案之後將在發出請求的標籤頁面上執行Javascript,從而及時實現XSS注入。

獲取所有的指令碼

當在查詢並試著確定被注入檔案的過程中,我注意到攻擊者的C&C伺服器並不是總有程式碼返回。我的猜想是他們可以控制是否傳播病毒,而且手動或採取特殊手段實施攻擊。

為了避免坐以待斃,我自己也根據他們的擴充工具寫了一段相同功能的偽擴充工具,但我只是把它保留在本地,而不是啟用程式碼。

一段時間後,我注意到我獲取到大量點選。點選者的終端均立即發回了回應碼(back code):

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

返回的程式碼經過任何混淆處理,可以清楚地看到具體的功能。這是專門為Facebook而編寫的。

該指令碼執行了以下操作:

• 監測執行的域中是否包含facebook.com

• 提取CSRF憑證以訪問Facebook,將其名為“fb_dtsg”。

• 檢查是否已經獲取訪問憑證(是用來完成Facebook API的身份驗證)。如果還沒有,它就會傳送請求來用CSRF憑證來獲取訪問令牌

• 將訪問令牌(access token)和使用者ID傳送給攻擊者的外部站點。

• 確保平臺的功能已經啟用(禁用平臺的kill-switch):

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

• 建立一個合法的訪問令牌。事實證明Facebook已經棄用他們的FQL API,而這個API過去一直負責與Facebook API通訊;

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

• 但是攻擊者發現,如果你使用一款名叫“Pages Manager for iOS”的APP來建立訪問令牌,FQL AP仍然是可以用的

現在,讓目光轉移到最有趣的部分--指令碼都做了哪些操作

對攻擊者點贊Facebook頁面的剖析

指令碼將根據硬編碼內容為一個Facebook頁面點贊。這個可能是攻擊者通過檢視頁面上點讚的數量,來記錄受感染使用者的數量,

在該攻擊的某一階段中,我們發現頁面中的點贊數量激增,從8900:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

在短短數小時之中,躍升到近32000:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

很明顯,他們使用C&C伺服器上的指令碼獲取器控制了何時啟用指令碼,因為在攻擊過程中,該網頁點贊數量的增長速度呈現出巨大差異。

他們在攻擊的過程中也不短更換網頁,最可能是因為他們原來的網頁被Facebook封掉

獲取你的好友

既然攻擊者現在有FQL-enabled 訪問令牌,他們就可以使用棄用的API來獲取受害者的好友目錄,並按上線日期進行劃分,將線上的朋友提取出來。

他們通過一次選取50名好友將其打亂,只有當這些好友處於空閒或線上狀態時,才開始發動攻擊。

接著,他們將通過另一域名生成連結,專門用於接收使用者ID資訊。這一連結將在Google Docs上建立PDF檔案,記錄目前受害者的檔案資料,再由一個短地址將其發回。

在獲取到連結後,攻擊者會向好友隨機傳送一條資訊,但是在相同的好友中連結會重複使用。

有趣的細節

感染程式碼的一些部分從未執行,或是以前攻擊遺留下來的

其中一部分就是在合適條件下向每名好友傳送訊息的定位功能,在實際攻擊中其被換成了隨機的emoji表情:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

login.php

攻擊者所使用的域中包含了一些檔案,使我們猜測類似login.php在內的PHP檔案應該儲存其中。該檔案將同時釋放出一個Facebook登入指令碼,以及一個硬編碼電子郵箱地址:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

版本

我們注意到注入到Facebook的指令碼中使用了許多版本。攻擊的最後,指令碼只會在Facebook網頁中點贊,也不會傳播。同時,用來收集訪問令牌的域也從指令碼中移除。

登入介面

就如先前提過的,指令碼也會識別你用什麼瀏覽器。指令碼的Chrome部分只在受感染使用者的Chrome瀏覽器上有效。如果你使用其他的瀏覽器,病毒程式碼就會執行其他指令。

有趣的是,攻擊者用的指令碼可以支援大部分作業系統;我們並沒有收集到任何針對Linux系統的樣本。

我們收集到的所有樣本均為惡意廣告程式,在受感染使用者登入最後的登入介面,他們講被重定向到數個包含郵件或廣告的跟蹤域。這也說明了攻擊者想要通過點選量或分發惡意郵件或廣告進行謀利。

Safari

MD5 (AdobeFlashPlayerInstaller.dmg) = d8bf71b7b524077d2469d9a2524d6d79

MD5 (FlashPlayer.dmg) = cfc58f532b16395e873840b03f173733

MD5 (MPlay.dmg) = 05163f148a01eb28f252de9ce1bd6978

Theseare all fake Adobe Flash updates, but the victim ends up at different websites every time, it seems that they are rotating a set of domains for this.

這些都是虛假的Adobe Flash更新,但受感染使用者每次都會關閉不同的網站。因此,攻擊者似乎輪流使用了一組域名來解決這個問題。

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

Mozilla Firefox

MD5 (VideoPlayerSetup_2368681540.exe) = 93df484b00f1a81aeb9ccfdcf2dce481

MD5 (VideoPlayerSetup_3106177604.exe) = de4f41ede202f85c370476b731fb36eb

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

我的裝置受到感染了,我該怎麼做?

Google Chrome的安全小組已經禁用了所有的惡意擴充工具,但是當攻擊者盜取了你的Facebook個人資料,他們同時也盜取了你Facebook賬號的訪問令牌。雖然這個令牌可能有時效,但是這個令牌所給予的許可權是很大的,因為這個令牌主要是用於“Facebook for Android”-app。有了訪問令牌,攻擊者可以再次獲取你的個人資料,不論你是否更改了密碼、登出Facebook賬戶或是關閉了Facebook上的的平臺設定:

剖析Facebook惡意軟體通過Chrome擴充傳播的流程

請點選此處輸入圖片描述

我們目前正在與Facebook就這個問題進行探討。但目前看來,受害者似乎並沒有一個簡單的方法廢除被攻擊者偷走的訪問令牌。現在只能祈禱攻擊者不要在令牌過期之前做任何事情。

我們強烈推薦你應該更新一下你的反病毒軟體,因為這個惡意的域和指令碼是已經模組化了。

總結

攻擊活動主要依賴現實的社互動動,動態使用者內容和合法域名作為中間步驟。感染的核心傳播機制是安裝Chrome的擴充工具。當你允許擴充套件工具控制瀏覽器活動時請格外注意。同時,也要弄清楚目前你的瀏覽器上執行了哪些擴充套件程式。如果你使用的是Chrome瀏覽器,可以在URL中輸入chrome://extensions/,以獲取正在執行的擴充套件程式列表。

本文由看雪翻譯小組 南極小蝦 編譯,來源detectifylabs@Frans Rosén and David Jacoby 轉載請註明來自看雪社群

相關文章