針對美國智庫、非盈利組織及公共部門的攻擊事件
一、前言
路透社最近報道了針對全球各類目標的一次黑客攻擊活動。在路透社相關報道發表之前,微軟研究人員已經在密切跟蹤這個攻擊組織。
根據我們感測器收集到的資料,此次攻擊活動主要針對的是公共部門機構和非政府組織,如智庫和研究中心等,但也包括教育機構以及石油、天然氣、化學、酒店領域的私營企業。
使用 ofollow,noindex" target="_blank">Microsoft Threat Protection 解決方案的客戶能免受此次攻擊影響。Microsoft Threat Protection採用了基於行為的防護機制,能夠在早期階段阻止惡意活動。 Office 365 Advanced Threat Protection 能夠攔截郵件中的惡意URL,阻止基於郵件的攻擊活動(也能處理首次發現的樣本)。與此同時, Windows Defender Advanced Threat Protection 也能通過大量告警機制揭露攻擊者在攻擊環節中使用的各種技術。
第三方安全研究人員認為此次攻擊活動由APT29(即CozyBear)所主導,該組織與我們標記的YTTRIUM攻擊組織有較大重疊。雖然分析人員非常嚴謹,但我們尚未找到足夠的證據將此活動與YTTRIUM聯絡在一起。
無論如何,由於受害者身份特殊,並且我們能看到國家級攻擊活動的影子,因此微軟將此次威脅事件通知了數百個組織中上千個潛在的受害者。作為 Defending Democracy Program 的一部分,微軟鼓勵滿足條件的組織參與 Microsoft AccountGuard ,這項服務能幫助容易成為攻擊目標的客戶免受網路安全威脅影響。
二、攻擊概覽
此次攻擊活動於11月14日早晨開始,攻擊目標似乎集中在與政策制定、政治事務或者在該領域有一定影響力的組織。
圖1. 釣魚攻擊目標分佈圖
雖然攻擊目標遍佈全球,但主要集中在美國,特別是華盛頓特區及周邊區域。其他目標還位於歐洲、香港、印度以及加拿大。
圖2. 釣魚攻擊區域分佈圖
釣魚郵件內容偽裝成來自OneDrive的共享通知,如路透社報道中提到的,攻擊者偽裝成在美國國務院工作的人員身份。如果受害人點選了釣魚郵件中的連結,就會觸發攻擊鏈,最終下載並被植入DLL後門,使攻擊者能夠遠端訪問收件人的計算機。
圖3. 攻擊鏈
三、技術分析
投遞方式
攻擊活動中使用了釣魚郵件,偽裝成來自OneDrive的檔案共享通知:
圖4. 釣魚郵件內容
郵件中包含指向合法網站的某個連結,但該網站已經被攻擊者成功入侵:
hxxps://www.jmj.com/personal/nauerthn_state_gov/TUJE7QJl[random string]
連結中使用的隨機字串很可能用於識別點選該連結的不同使用者。然而,我們觀察到的所有樣本使用的都是同一個連結,指向同一個網站:
hxxps://www.jmj.com/personal/nauerthn_state_gov/VFVKRTdRSm
當用戶點選該連結時,就會收到包含惡意LNK檔案的一個ZIP壓縮文件。一次攻擊中使用的所有檔案都採用相同的檔名,如 ds7002.pdf
、 ds7002.zip
以及 ds7002.lnk
。
後門安裝
LNK檔案為攻擊的第一階段,該檔案會執行經過混淆的一個Shell/">PowerShell命令,從LNK檔案中釋放出經過base64編碼的payload,payload資料從檔案 0x5e2be
偏移地址開始,大小為16,632個位元組。
圖5. LNK檔案中的內容
這個payload也是經過高度混淆的一個PowerShell指令碼,也會被解碼執行:
圖6. 解碼後的第二個指令碼
第二個指令碼會從 .LNK
檔案中提取處另外2個資源:
ds7002.PDF cyzfc.dat
命令控制
PowerShell指令碼會將第一階段DLL釋放到 %AppData%\Local\cyzfc.dat
,這是一個64位DLL程式,具有一個匯出函式: PointFunctionCall
。
隨後,PowerShell指令碼呼叫 rundll32.exe
來執行 cyzfc.dat
。第一階段的命令及控制(C2)伺服器地址為 pandorasong[.]com
(IP為 95.216.59.92
),連線成功後, cyzfc.dat
會執行如下操作,開始安裝最終payload:
1、為第二階段payload分配一個 ReadWrite
頁面;
2、以資源形式提取第二階段payload;
3、從第一個payload的 0xEF
偏移處提取頭部資訊;
4、將頭部資料與從 0x12A
地址開始的資源資料拼接起來;
5、使用迴圈異或( ROR1
)方式,解密第二階段payload,初始祕鑰為 0xC5
。
第二階段payload實際上是Cobalt Strike(一個商用滲透測試工具)的一個例項,會執行如下操作:
1、定義一個本地命名管道,格式為 \\.\pipe\MSSE-<number>-server
,其中 <number>
為0到9897之間的一個隨機數;
2、將payload通過XOR演算法解密到一個新的 RW
記憶體區域,這次XOR祕鑰非常簡單:每4個位元組使用 0x7CC2885F
來解密;
3、將這段區域設定為 RX
標誌;
4、建立一個執行緒,開始執行paylaod。
將全域性資料寫入管道的過程實際上是寫入了第三個payload,這個payload經過XOR加密處理,加密方式與資料讀取方式相同。payload解密後會得到一個PE檔案,檔案頭為Meterpreter頭。惡意軟體會解析PE頭部中包含的指令,將控制權移交給反射載入器:
第3個payload載入成功後會連線C2伺服器,C2伺服器地址已硬編碼到PE檔案的配置資訊區域中,而配置資訊會在第3個payload執行時異或解密:
配置資訊中主要包含的是C2資訊:
CobaltStrike是一個功能豐富的滲透測試攻擊,可以為遠端攻擊者提供各種功能,比如提升許可權、獲取使用者輸入資訊、通過PowerShell或者WMI執行任意命令、偵察踩點、通過各種協議與C&C伺服器通訊以及下載並安裝其他惡意軟體等。
四、緩解措施
Windows Defender ATP 可以檢測與攻擊相關的已知檔案系統及網路特徵。此外,也會根據行為來檢測LNK檔案相關操作。如果看到以下告警資訊,則表明當前環境中存在攻擊行為:
- 檢測到高階威脅特徵
- 檢測到與高階威脅有關的網路活動
- 經過簽名的程式已執行低信譽度任意程式碼
- 開啟可疑的LNK檔案
網路防護機制可疑阻止連線到可疑域名及IP地址的行為。大家也可以使用如下 attack surface reduction (攻擊面減少)規則來阻止與此次攻擊活動關聯的惡意行為:
Block executable files from running unless they meet a prevalence, age, or trusted list criteria
通過Windows Defender Security Center,安全運營團隊可以調查這些告警資訊,分析主機、使用者及 攻擊事件 檢視,跟蹤端到端攻擊活動。在自動化調查及響應功能、 威脅分析 、高階搜尋及 自定義檢測 的幫助下,安全運營團隊能夠保護網路環境免受此類攻擊影響。大家可以註冊使用免費版 Windows Defender ATP ,體驗針對高階攻擊威脅的防護機制。
可以使用如下高階搜尋查詢語句,搜尋網路環境中是否存在此類攻擊活動:
//Query 1: Events involving the DLL container let fileHash = "9858d5cb2a6614be3c48e33911bf9f7978b441bf"; find in (FileCreationEvents, ProcessCreationEvents, MiscEvents, RegistryEvents, NetworkCommunicationEvents, ImageLoadEvents) where SHA1 == fileHash or InitiatingProcessSHA1 == fileHash | where EventTime > ago(10d) //Query 2: C&C connection NetworkCommunicationEvents | where EventTime > ago(10d) | where RemoteUrl == "pandorasong.com" //Query 3: Malicious PowerShell ProcessCreationEvents | where EventTime > ago(10d) | where ProcessCommandLine contains "-noni -ep bypass $zk=' JHB0Z3Q9MHgwMDA1ZTJiZTskdmNxPTB4MDAwNjIzYjY7JHRiPSJkczcwMDIubG5rIjtpZiAoLW5vdChUZXN0LVBhdGggJHRiKSl7JG9lPUdldC1DaGlsZEl0" //Query 4: Malicious domain in default browser commandline ProcessCreationEvents | where EventTime > ago(10d) | where ProcessCommandLine contains "https://www.jmj.com/personal/nauerthn_state_gov" //Query 5: Events involving the ZIP let fileHash = "cd92f19d3ad4ec50f6d19652af010fe07dca55e1"; find in (FileCreationEvents, ProcessCreationEvents, MiscEvents, RegistryEvents, NetworkCommunicationEvents, ImageLoadEvents) where SHA1 == fileHash or InitiatingProcessSHA1 == fileHash | where EventTime > ago(10d)
以上規則查詢的是過去10天內的安全事件,大家可以根據實際情況,修改 EventTime
的值。
五、IOC/">IOC
檔案(SHA-1):
ds7002.ZIP: cd92f19d3ad4ec50f6d19652af010fe07dca55e1 ds7002.LNK: e431261c63f94a174a1308defccc674dabbe3609 ds7002.PDF (PDF誘餌檔案): 8e928c550e5d44fb31ef8b6f3df2e914acd66873 cyzfc.dat (第一階段): 9858d5cb2a6614be3c48e33911bf9f7978b441bf
URL:
hxxps://www.jmj[.]com/personal/nauerthn_state_gov/VFVKRTdRSm
C&C伺服器:
pandorasong[.]com (95.216.59.92) (第一階段C&C伺服器)