在近期,Palo Alto Networks Unit 42 回報了一款新的入侵平台,我們稱之為「DealersChoice」(莊家規則),被 Sofacy group (又稱作 APT28、Fancy Bear、STRONTIUM、Pawn Storm、Sednit) 所用。我們在原本的貼文中有強調,DealersChoice 入侵平台能產生可使用內嵌 OLE Word 文件的惡意 RTF 文件。這些內嵌 OLE Word 文件會包含專為入侵 Adobe Flash 漏洞而設計的內嵌 Adobe Flash (.SWF) 檔案。
在首起案件回報後,我們找出了兩個變體:
- 變體 A:酬載中包含 Flash 入侵代碼的獨立變體。
- 變體 B:載入隨選發動入侵代碼的模組化變體,在一開始並不會有運作跡象。
從那時開始,我們便能夠收集 DealersChoice 入侵平台所產生的其他武器化文件樣本。這類最新的額外樣本皆為變體 B 的樣本。其中兩個樣本有著運作中的指令與控制伺服器,讓我們能夠收集與分析其他與攻擊相關的構件。
2016 年 10 月底,Adobe 發布 Adobe Security Bulletin (Adobe 安全告示) APSB16-36 來因應 CVE-2016-7855。2016 年 11 月初,Microsoft 發布 Microsoft Security Bulletin (Microsoft 安全告示) MS16-135 來因應 CVE-2016-7255。
這兩份告示都是為了回應其他研究人員認為與 Sofacy group 有關的零時差漏洞入侵行為。其餘報告以及我們的分析都指出,用來入侵 Adobe Flash CVE-2016-7855 漏洞的代碼的確是使用 DealersChoice 傳遞出來的。內部測試也顯示使用 Palo Alto Networks Traps 端點代理程式的客戶會受到保護,免於這款新型入侵代碼的威脅。
讓我參與:找出上線的 C2 伺服器
在我們先前討論 DealersChoice 的部落格貼文中,我們找出了變體 B 在受害者主機上執行後會採取的步驟,但當時我們無法成功與所找到的指令與控制 (C2) 伺服器互動。
之後我們便發現了兩個仍在運作且動態的 C2 伺服器 (versiontask[.]com 與 postlkwarn[.]com),遵循著和我們在貼文中所述一模一樣的步驟運行;將額外的 Flash 入侵代碼載入記憶體,之後將相關酬載一同載入記憶體。圖 1 詳細描述了受害者與 C2 間通訊的工作流程。
圖 1:DealersChoice 的工作流程
變體 B 中的 ActionScript 會與 C2 伺服器互動,尤其是為了取得惡意 SWF 檔案與酬載。流程的一開始,主機會對 C2 伺服器送出初始信標,當中包含系統資訊以及受害者的 Adobe Flash Player 版本。圖 2 展示了 ActionScript 寄送至 C2 伺服器的信標。
圖 2:DealersChoice 送至其 C2 伺服器的初始信標
C2 會以 DealersChoice 的 ActionScript 用來作為接下來動作中變數的字串來回應初始信標,例如額外的 HTTP 要求以及對這些要求回應的解碼。圖 3 展示了 C2 伺服器對信標的回應,特別包含了 k1、k2、k3 與 k4 值。
圖 3:C2 對信標的回應提供了 DealersChoice 解密資料所需的語彙基元與金鑰
ActionScript 接著會利用 C2 回應資料中的 k1 變數作為 HTTP 要求內的語彙基元,傳回至 C2 伺服器來取得惡意 SWF 檔案,如圖 4 所示。
C2 伺服器將會以資料回應此要求,而 ActionScript 將會使用 k3 變數值來解密該資料。
動態 C2 伺服器會提供帶有惡意 SWF 檔案的變體 B,此 SWF 檔案與入侵 CVE-2015-7645 的變體 A 樣本中發現的相同 (於 2016 年 10 月的 Adobe Security Bulletin APSA15-05 中加以因應)。
c42a0d50eac9399914090f1edc2bda9ac1079edff4528078549c824c4d023ff9
45a4a376cb7a36f8c7851713c7541cb7e347dafb08980509069a078d3bcb1405
圖 4:DealersChoice HTTP 要求,用來取得入侵 Adobe Flash Player 的惡意 SWF 檔案
取得惡意 SWF 檔案後,變體 B 將使用 k2 變數作為語彙基元來發出一個 HTTP 要求,用以取得其酬載,如圖 5 所示。C2 將會以資料回應此要求,而變體 B 將會使用 k4 變數中的值作為密鑰,來解密該資料。解密完畢的資料中會包含 shellcode 與 shellcode 要解密與執行的酬載。
圖 5:DealersChoice HTTP 要求,用來取得 shellcode 與成功入侵後要執行的酬載
動態 C2 伺服器 versiontask[.]com 與 postlkwarn[.]com 提供了能解密與執行酬載的 shellcode,在兩個案例中,酬載都是木馬載入程式,能擷取與解密儲存於系統中的內嵌 DLL。
5dd3066a8ee3ab5b380eb7781c85e4253683cd7e3eee1c29013a7a62cd9bef8c fa8b4f64bff799524f6059c3a4ed5d169e9e7ef730f946ac7ad8f173e8294ed8
在兩個案例中,儲存至系統的 DLL 都是使用 Carberp 原始碼的 Sofacy 工具變體。
82213713cf442716eac3f8c95da8d631aab2072ba44b17dda86873e462e10421 3ff1332a84d615a242a454e5b29f08143b1a89ac9bd7bfaa55ba0c546db10e4b
Seduploader 工具的兩個變體都擁有相同的 apptaskserver[.]com C2 網域,卻有著 appservicegroup[.]com 與 joshel[.]com 兩個不同的備用 C2 網域。
隱藏王牌:分析受害者指紋
在分析變體 B 的動態 C2 伺服器的過程中,我們想要測試我們的假設,看看 C2 伺服器是否會根據受害者指紋不同,載入不同的入侵代碼。我們透過提供不同的回應至 C2 伺服器來測試這一點。
首先,我們透過一個位於美國加州的 VPN 來發送要求至 C2 伺服器,而伺服器並沒有回應這些要求。我們接著連線到另一個位於中東的 VPN,並發送相同的要求,這時 C2 伺服器便回應了惡意 SWF 與酬載。這個驗證結果顯示 Sofacy Group 是利用地理位置來過濾掉來自他們目標地區外的要求。
我們接著又發送了數個不同要求來測試 C2,每次 C2 伺服器都會回應不同的 k1、k2、k3 與 k4 變數,表示伺服器針對每個內送要求隨機選取這些數值。
為了進一步測試 C2 伺服器的邏輯,我們建立了包含不同作業系統與 Flash Player 版本值的要求。當我們將 Adobe Flash Player 版本設為 23.0.0.185,也就是最近期具有 CVE-2016-7855 漏洞的 Flash 版本後,我們將該 HTTP 要求傳送至 C2 伺服器,而伺服器回應了專門入侵此漏洞的 SWF 壓縮檔 (SHA256: c993c1e10299162357196de33e4953ab9ab9e9359fa1aea00d92e97e7d8c5f2c)。
最後,當我們發送要求至 C2 伺服器,表示受害者為 macOS 系統時,C2 伺服器傳回跟先前相同的惡意 SWF 檔案與 Windows 酬載,表示 Sofacy Group 現在尚未使用 DealersChoice 來檢查受害者的作業系統類型。
在所有案例中,C2 伺服器所傳送的酬載都是木馬載入程式 (SHA256:3bb47f37e16d09a7b9ba718d93cfe4d5ebbaecd254486d5192057c77c4a25363),會安裝 Seduploader 的變體 (SHA256:4cbb0e3601242732d3ea7c89b4c0fd1074fae4a6d20e5f3afc3bc153b6968d6e),並使用 akamaisoftupdate[.]com 的 C2 伺服器。
壓上全部籌碼:誘餌文件
在這波 DealersChoice 攻擊中我們收集到了六個文件,全都是變體 B,使用我們在上一波攻擊中觀察到的相似誘餌。我們發現的六個檔案名稱為:
- Operation_in_Mosul.rtf – 一篇關於摩蘇爾土耳其軍隊的文章
- NASAMS.doc – 一份文章的副本文件,內容有關立陶宛國防部購買挪威飛彈防禦系統
- Programm_Details.doc – 一份倫敦網路威脅情報會議的日程表副本文件,以歐洲各國國防部為目標
- DGI2017.doc – 一份以中亞國家外交部為目標的文件,內容有關倫敦國防地理位置情報會議的議程
- Olympic-Agenda-2020-20-20-Recommendations.doc – 一份包含有 2020 年奧運協議詳細資料的文件
- ARM-NATO_ENGLISH_30_NOV_2016.doc – 一份列出阿美尼亞與北約間之協議的文件
圖 6: 這波攻擊中收集到的誘餌文件
跟首波 DealersChoice 攻擊不同,這些文件是使用剪貼或偽造的中繼資料來增加混淆。當中兩份文件,NASAMS.doc 和 Programm_Details.doc 都有著相同且獨特的使用者名稱「pain」,列於「上次存檔者」欄位。除此之外,每個武器化文件都持續使用我們先前報導過的 OfficeTestSideloading 技巧。這是個我們發現 Sofacy Group 從去年夏季開始使用的技巧,是一種利用 Microsoft Office 套件內建的效能測試模組來側載 DLL 檔案的方式,同時還能維持在受害者主機上的持續性。
檔案名稱 | 作者 | 上次存檔者 | 主題 | SHA256 |
Operation_in_Mosul.rtf | Robert Tasevski | —- | 摩蘇爾的土耳其軍隊 | f5d3e827… |
NASAMS.doc | Антон Гладнишки | pain | 挪威飛彈防禦系統 | 1f81609d… |
Programm_Details.doc | Laci Bonivart | pain | 會議日程 | 1579c7a1… |
DGI2017.doc | Невена Гамизов | Невена Гамизов | 會議日程 | c5a389fa… |
Olympic-Agenda-2020-20-20-Recommendations.doc | admin | 使用者 | 2020 年奧運的建議 | 13718586… |
ARM-NATO_ENGLISH_30_NOV_2016.doc | 使用者 | 使用者 | NATO 協議 | 73ea2cce… |
武器化文件的六個首階段 C2 網域都是以由唯一的註冊電子郵件所註冊。Versiontask[.]com 和 Uniquecorpind[.]com 看來是全新的基礎架構,未跟先前觀察到的 Sofacy Group 攻擊活動共用任何構件。
類型 | 網域 | 註冊日期 | 註冊電子郵件 |
首階段 C2 | Versiontask[.]com | 2016/10/24 | dalchi0@europe.com |
首階段 C2 | Uniquecorpind[.]com | 2016/10/25 | yasiner@myself.com |
首階段 C2 | Securityprotectingcorp[.]com | 2016/8/19 | ottis.davis@openmailbox.org |
首階段 C2 | Postlkwarn[.]com | 2016/11/11 | fradblec@centrum.cz |
首階段 C2 | adobeupgradeflash[.]com | 2016/11/22 | nuevomensaje@centrum.cz |
首階段 C2 | globalresearching[.]org | 2016/11/18 | carroz.g@mail.com |
我們辨識出了六個 DealersChoice 傳遞 Seduploader 酬載所用的第二階段 C2 網域。
類型 | 網域 | 註冊日期 | 註冊電子郵件 |
Seduploader C2 | Joshel[.]com | 2016/11/11 | germsuz86@centrum.cz |
Seduploader C2 | Appservicegroup[.]com | 2016/10/19 | olivier_servgr@mail.com |
Seduploader C2 | Apptaskserver[.]com | 2016/10/22 | partanencomp@mail.com |
Seduploader C2 | Akamaisoftupdate[.]com | 2016/10/26 | mahuudd@centrum.cz |
Seduploader C2 | globaltechresearch[.]org | 2016/11/21 | morata_al@mail.com |
Seduploader C2 | researchcontinental[.]org | 2016/12/2 | Sinkhole |
跟首階段 C2 網域非常相似,五個非 Sinkhole 的第二階段 C2 網域都是在近期註冊,並且使用 Sofacy Group 先前未使用的獨特註冊電子郵件地址。然而,這些網域都通常使用與 Sofacy Group 有所相關的名稱伺服器,ns*.carbon2u[.]com 和 ns*.ititch[.]com。網域 akamaisoftupdate[.]com 顯示了額外的構件,讓其能連結回過去的 Sofacy Group 攻擊活動。根據被動 DNS 資料,我們發現 akamaisoftupdate[.]com 可解析為 89.45.67.20。在同一個等級 C 子網路上,我們發現了 89.45.67.189,先前被解析為 updmanager[.]net,有許多回報案例,是 Sofacy Group 正在使用中的網域。
我們也發現網域 securityprotectingcorp[.]com 能連結至先前的 Sofacy Group 基礎架構。這個網域於數個月前註冊,但註冊電子郵件地址的分析顯示它曾用於註冊 microsoftsecurepolicy[.]org,而透過使用被動 DNS 資料我們發現其解析為 40.112.210.240,是數個其他 Sofacy Group 相關網域的 Sinkhole。Sofacy Group 在過去數年曾利用數個對應的 Sinkhole 網域來實現各種目的,例如作為 Azzy 或 XAgent 等多重工具的 C2 伺服器,或者用來裝載釣魚網站,從目標處取得憑證。
圖 7:DealersChoice 基礎架構圖表
結語
顯然到了此時,Sofacy Group 已經在積極使用 DealersChoice 工具,特別是使用變體 B 來攻擊其鎖定的目標。從根據近期 Flash 漏洞修補所送出的入侵代碼 (此代碼用於零時差攻擊) 看來,我們能發現惡意軟體如何為入侵方法提供更多彈性,並且獨立成為一個平台。在過去的確有專為 DealersChoice 所建立的新基礎架構,但如同我們在過去所看到的,Sofacy Group 有重新使用過去攻擊活動購件的傾向,這次也不例外。Palo Alto Networks 客戶可以透過以下方式來瞭解更多並受到保護:
- 在 WildFire 中正確地將相關樣本識別為惡意軟體
- 將 DealersChoice 網域和 C2 流量分類為惡意
- Traps 能正確識別並預防入侵代碼執行
- 可能會使用一個 DealersChoice AutoFocus 標籤來識別並追蹤此惡意軟體系列
請注意,雖然 CVE-2016-7855 是零時差漏洞,Palo Alto Networks 客戶仍會如圖 8 所見,受到我們 Traps 端點代理程式的保護。
圖 8:Palo Alto Networks Traps 阻擋利用 CVE-2016-7855 漏洞的入侵
受到入侵的指標
文件雜湊:
f5d3e827c3a312d018ef4fcbfc7cb5205c9e827391bfe6eab697cc96412d938e
1f81609d9bbdc7f1d2c8846dcfc4292b3e2642301d9c59130f58e21abb0001be
1579c7a1e42f9e1857a4d1ac966a195a010e1f3d714d68c598a64d1c83aa36e4
c5a389fa702a4223aa2c2318f38d5fe6eba68c645bc0c41c3d8b6f935eab3f64
137185866649888b7b5b6554d6d5789f7b510acd7aff3070ac55e2250eb88dab
73ea2ccec2cbf22d524f55b101d324d89077e5718922c6734fef95787121ff22
DealersChoice 的 C2 伺服器:
Versiontask[.]com
Uniquecorpind[.]com
Securityprotectingcorp[.]com
postlkwarn[.]com
adobeupgradeflash[.]com
researchcontinental[.]org
Seduploader 的 C2 伺服器:
Appservicegroup[.]com
Apptaskserver[.]com
Akamaisoftupdate[.]com
Joshel[.]com
globaltechresearch[.]org
researchcontinental[.]org