狩獵俄羅斯APT28——對其一系列新的惡意軟體分析
一、簡介
最近,一系列新的惡意軟體樣本被提交到主要的在線沙箱。我們注意到一些提交給Virus Total的樣本被一些專家歸因溯源到俄羅斯APT28組織。
APT28組織(又名Fancy Bear,Pawn Storm,Sednit,Sofacy,和Strontium)至少從2007年以來一直活躍,針對全球的政府、軍事和安全組織。該組織還參與了針對2016年美國總統選舉的一系列攻擊。
在研究人員DrunkBinary(Twitter ,@DrunkBinary)的幫助下,我們獲得了一組樣本,與我們擁有的樣本進行比較,以發現是否存在臭名昭著的APT28後門的新變種X-Agent。
我們所分析的攻擊是多階段的,用Delphi編程語言(APT28在其他行動中使用的語言)編寫的初始dropper惡意軟體從Internet下載第二階段有效載荷並執行它。有效載荷使用HTTPS協議與伺服器通信,因此無法竊聽其生成的惡意流量。
我們還分析了另一個惡意DLL,它顯然與以前的樣本無關,但與俄羅斯APT組織的其他有效載荷有許多相似之處。這個惡意軟體對我們來說特別有意思,因為它與名為「marina-info.net」的命令和控制伺服器通聯,明確提到義大利軍事公司Marina Militare。這導致我們猜測惡意代碼是針對義大利Marina Militare或與之相關的其他實體而開發的。
最後一個DLL似乎與之前的樣本完全沒有關聯,但進一步的調查使我們相信它是APT28在此行動中用來攻陷目標系統的附加組件。
APT28擁有豐富的武器庫,由大量模塊組成,包括我們分析的X-Agent的dll組件。X-Agent是注入受害計算機的持久有效載荷,幾乎適用所有計算機操作系統,也可以通過添加開發的新ad-hoc組件來增強特定網路攻擊。在我們的案例中,當新的攻擊行動正在進行時,該組件已提交到在線沙箱。我們不能排除APT組織開發後門以針對特定組織,包括義大利Marina Militare或任何其他承包商。在分析中,我們無法將惡意dll文件直接連接到X-Agent樣本,但相信它們都是APT28支持的協調良好的攻擊的一部分。
連接到marina-info.net的DLL可能是僅在特定條件發生時觸發的最後階段的惡意軟體,例如當惡意軟體感染具有屬於特定範圍的IP地址的系統時。
二、發現的樣本
在本節中,我們將報告調查中分析的所有樣本。
「sdbn.dll」
「upnphost.exe」
三、四個可執行文件背後隱藏著相同的惡意軟體
在我們調查的新攻擊行動中,上一節中列出的前四個可執行文件被用作感染媒介。樣本顯示為不同的有效載荷,但進一步的基本靜態分析使我們發現它們是相同的惡意軟體樣本:
·前兩個樣本是相同的,唯一的區別是第二個樣本使用UPX工具打包。解壓縮後,我們發現了相同的有效載荷以及與第一個樣本相同的散列
·第三個和第四個也是相同的,不同之處在於第四個是使用UPX工具打包的。
·我們有兩個不同的樣本,然後能夠從第二個系列中提取2個文件:經典的「.lnk」文件和「jpg」文件。
圖1 - 提取的文件
這些文件似乎是經典的img和鏈接,但實際上jpg文件是第二個示例的可執行文件,並且在鏈接文件中隱藏了以下命令:
%systemroot%System32cmd.exe /c copy 12-033-1589(1).rar
C:UsersPublic12-033-1589(1).exe || copy 12-033-1589(2).jpg
C:UsersPublic12-033-1589(1).exe & start C:UsersPublic12-033-1589(1).exe
1. upnphost.exe
執行該文件後,它會聯繫IP 45.124.132.127,定期發送在操作系統上使用命令行「cmd.exe / c tasklist&systeminfo」收集的一些信息。
根據WHOIS記錄,該伺服器位於香港:
使用POST方法通過HTTPS通信將信息發送到命令和控制伺服器。
圖2 - 嗅探的POST流量
一旦惡意軟體將有關主機配置的信息發送到C2,它將下載另一個文件upnphost.exe,該文件是最終的有效載荷,存儲路徑為「%APPDATA%LocalTemp」。
此外,可執行文件通過設置註冊表項來實現持久性機制:
圖3 - 持久性機制的註冊表項
另一個文件與位於拉脫維亞的另一個命令和控制伺服器46.183.218.37通聯:
圖4 - 關於46.183.218.37的Whois信息
2.我們提交給VirusTotal
我們還發現upnphost.exe文件是由我們提交給Virus Total的,可能是因為dropper實現了evasion技術。
為了分析dropper,我們修補了它。應用修補程序後,我們就能夠分析惡意軟體的完整惡意行為。
圖5 - dropper的補丁點
惡意代碼開始聯繫前面提到的命令和控制伺服器並下載「upnphost.exe」文件。
下面是我們獲取的在VirusTotal上提交的修補版本的結果:
圖6 - VirusTotal得分
3.AutoIt 腳本
使用AutoIt語言編寫的腳本管理與命令和控制伺服器的通信。此腳本作為資源嵌入upnphost.exe文件中,並在啟動時與HTTPS中的其他伺服器通信,發送有關受害者計算機的一些信息。
圖7 - 一段反編譯代碼
上圖顯示了一段AutoIt腳本的反編譯代碼,其中IP地址和路徑以及用戶代理使用十六進位編碼偽裝。
解碼參數後,我們獲取了用於通聯C&C的IP地址,路徑和用戶代理,並發回有關目標系統的信息。
另一個特點是提供HTTPS通信代碼的函數的名稱。其名稱為checkupdate(),似乎惡意軟體被指示定期聯繫C&C等待新命令。
下圖顯示了多階段攻擊:
圖8 - 多階段攻擊方案
4.sdbn.dll
此文件是從威脅情報平台獲取的,並被標記為APT28樣本,如同之前的文件。目前尚不清楚此樣本是否與之前的樣本相關聯,但它可能屬於同一個感染行動,因為它是在幾個在線沙箱中的同一時間段上傳的。
與之前文件的另一個共同特點是,它是用Delphi編程語言編寫的,就像四個初始dropper文件一樣。很難找到用Delphi語言編寫的惡意軟體,但其他安全公司之前進行的調查證實,APT28組已經在過去的攻擊行動中使用過該語言編寫的惡意軟體。
從sdbn.dll的分析中得出的最重要的證據是,它聯繫了域名:marina-info.net,明確提到了義大利語Marina Militare。該域名已解析為位於荷蘭的IP 191.101.31.250:
圖9 - 關於「marina-info.net」的Whois
在本樣本中,也通過使用HTTPS協議來執行與C2的通信。我們發現了至少有三條與自定義用戶代理標頭聯繫的路徑:
表1 - 發現的URL和路徑
與upnphost.exe惡意軟體一樣,此可執行文件會定期聯繫命令控制伺服器等待新命令。但是,我們發現伺服器始終響應403狀態代碼,對惡意軟體本身發送的請求也是如此。
圖10 - 來自C2C的響應
這種行為可能是伺服器實施的伺服器端控制的結果,只允許來自特定IP地址的請求,或者只是被攻擊者故意禁用,可能是因為他們認為已經被受害者或安全人員發現。它可能是攻擊者實施的安全機制,應對安全公司進行嚴格的調查。此外,我們決定進一步調查VirusTotal上這個新文件的檢測率。當我們開始分析它時為零,這意味著威脅完全未被發現,目前惡意代碼的檢測率為35/65。
四、攻擊地圖
在本節中,我們展示威脅圖,其中包含我們分析的樣本所通聯的各種IP地址。
圖11 - 威脅地圖
正如我們所看到的,黑客組織所覆蓋的攻擊面非常寬:歐洲有兩個不同的C2C,另一個在中國,用於誤導分析,這會在重建完整的網路攻擊時造成混亂。
Yara rules
import "pe"
rule Dropper_APT28XAGENTJuly2018 {
meta:
description = "Yara Rule for dropper of APT28 XAGENT
July2018"
author = "CSE CybSec Enterprise - Z-Lab"
last_updated = "2018-07-13"
tlp = "white"
category = "informational"
strings:
$a =
$b =
condition:
(pe.number_of_sections == 9
and pe.sections[3].name == ".bss"
and all of them)
or (pe.number_of_sections == 3
and pe.sections[0].name == "UPX0"
and pe.sections[1].name == "UPX1"
and pe.number_of_resources == 70
and pe.resources[61].type == pe.RESOURCE_TYPE_RCDATA
and pe.resources[60].type == pe.RESOURCE_TYPE_RCDATA
and pe.resources[59].type == pe.RESOURCE_TYPE_RCDATA)
}
rule FirstPayload_upnphost_APT28XAGENTJuly2018 {
meta:
description = "Yara Rule for APT28 XAGENT July2018 First
Payload"
author = "CSE CybSec Enterprise - Z-Lab"
last_updated = "2018-07-13"
tlp = "white"
category = "informational"
strings:
$a =
$b =
condition:
pe.number_of_resources == 26
and pe.resources[19].type == pe.RESOURCE_TYPE_RCDATA
and pe.version_info["FileDescription"] contains
"Compatibility"
and all of them
}
rule SecondPayload_sdbn_APT28XAGENTJuly2018 {
meta:
description = "Yara Rule for APT28 XAGENT July2018 Second
Payload sdbn.dll"
author = "CSE CybSec Enterprise - Z-Lab"
last_updated = "2018-07-13"
tlp = "white"
category = "informational"
strings:
$a =
$b =
condition:
pe.number_of_sections == 6
and pe.number_of_resources == 1
and pe.resources[0].type == pe.RESOURCE_TYPE_VERSION
and pe.version_info["ProductName"] contains "Microsoft"
and all of them
}
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※詳細分析微軟Edge瀏覽器Chakra引擎UAF漏洞
※Gartner分享2018年Top10安全項目
TAG:嘶吼RoarTalk |