2017年9月,在針對烏克蘭的攻擊活動中FireEye發現了FELIXROOT后門這款惡意載荷,并將其反饋給我們的情報感知客戶。該攻擊活動使用了一些惡意的烏克蘭銀行文檔,其中包含一個宏,用來下載FELIXROOT載荷并將其投遞給攻擊目標。
最近FireEye觀察到有新的攻擊活動中用到了同樣的FELIXROOT后門。在這次攻擊活動中,武器化的誘騙文檔涉及到與環境保護研討會相關的話題,利用了兩個已知的Microsoft Office漏洞(CVE-2017-0199以及CVE-2017-11882)來將后門程序釋放到受害者主機上并加以執行,攻擊活動流程圖如圖1所示。
圖1. 攻擊流程圖
惡意軟件借助俄語文檔(如圖2所示)進行傳播,文檔用到了已知的Microsoft Office漏洞利用技術。在此次攻擊活動中,我們觀察到攻擊者利用CVE-2017-0199以及CVE-2017-11882漏洞來傳播惡意軟件。所使用的惡意文檔名為“Seminar.rtf”,文檔利用CVE-2017-0199漏洞從193.23.181.151
這個地址處(如圖3所示)下載第二階段所使用的攻擊載荷,所下載的文檔包含了CVE-2017-11882漏洞利用技術。
圖2. 誘餌文檔
圖3. Seminar.rtf文檔中的URL信息(十六進制數據)
圖4表明第一個載荷正嘗試下載攻擊第二階段所使用的Seminar.rtf。
圖4. 下載第二階段所使用的Seminar.rtf
下載的Seminar.rtf文檔中包含一個二進制文件,通過公式編輯器將可執行文件釋放到%temp%
目錄中。該文件將可執行文件釋放到%temp%
目錄(MD5:78734CD268E5C9AB4184E1BBE21A6EB9),后者用來下載并執行FELIXROOT釋放器組件(MD5:92F63B1227A6B37335495F9BCB939EA2)。
釋放出來的可執行文件(MD5:78734CD268E5C9AB4184E1BBE21A6EB9)在PE(Portable Executable)覆蓋區中包含經過壓縮處理的FELIXROOT釋放器組件。當該文件被執行時會創建兩個文件:指向%system32%\rundll32.exe
路徑的一個LNK文件以及FELIXROOT加載器組件。LNK文件會被移動到啟動目錄中。LNK文件中包含用來執行FELIXROOT加載器組件的命令,如圖5所示:
圖5. LNK文件中包含的命令
內置的后門組件使用了自定義加密算法進行加密。該文件會直接在內存中解密并執行,不涉及到落盤操作。
成功利用漏洞后,釋放器組件會執行并釋放加載器組件。加載器組件借助RUNDLL32.EXE
來執行。后門組件會被加載到內存中,只包含一個導出函數。
后門中包含的字符串經過自定義的加密算法進行加密處理,加密算法為XOR(異或)算法,采用了4字節的密鑰。ASCII字符串對應的解密邏輯如圖6所示。
圖6. ASCII解密過程
Unicode字符串的解密邏輯如圖7所示。
圖7. Unicode解密過程
執行起來后,后門會創建一個新的線程,然后休眠10分鐘,接著確認自身是否由RUNDLL32.EXE
使用#1
參數啟動,如果條件滿足,則后門會在執行命令與控制(C2)網絡通信操作之前先進行初始的系統信息收集。為了收集系統信息,后門通過ROOTCIMV2
命名空間連接到Windows Management Instrumentation(WMI)。
整個操作過程如圖8所示:
圖8. 后門組件初始執行流程
從ROOTCIMV2
及RootSecurityCenter2
命名空間中引用的類如表1所示:
WMI命名空間 |
---|
Win32_OperatingSystem |
Win32_ComputerSystem |
AntiSpywareProduct |
AntiVirusProduct |
FirewallProduct |
Win32_UserAccount |
Win32_NetworkAdapter |
Win32_Process |
表1. 引用的類
用到的WMI查詢語句如下所示:
SELECT Caption FROM Win32_TimeZone
SELECT CSNAME, Caption, CSDVersion, Locale, RegisteredUser FROM Win32_OperatingSystem
SELECT Manufacturer, Model, SystemType, DomainRole, Domain, UserName FROM Win32_ComputerSystem
后門會讀取注冊表相關鍵值信息,收集管理員權限提升信息及代理信息。
1、查詢SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem
路徑中的ConsentPromptBehaviorAdmin
及PromptOnSecureDesktop
表項值;
2、查詢SoftwareMicrosoftWindowsCurrentVersionInternet Settings
路徑中的ProxyEnable
、Proxy:(NO)
、Proxy
及ProxyServer
表項值。
FELIXROOT后門的功能如表2所示。每條命令都會在獨立的線程中執行。
命令 | 描述 |
---|---|
0x31 | 通過WMI及注冊表收集系統指紋信息 |
0x32 | 釋放文件并加以執行 |
0x33 | 遠程Shell |
0x34 | 終止與C2服務器的連接 |
0x35 | 下載并運行批處理腳本 |
0x36 | 下載文件到本地 |
0x37 | 上傳文件 |
表2. FELIXROOT后門命令
使用圖6及圖7的解密方法后,我們從內存中提取出了每條命令執行后的日志信息,如圖9所示。
圖9. 命令執行后的日志
FELIXROOT會通過HTTP與HTTPS POST協議與C2服務器通信。通過網絡發送的數據經過加密處理,采用自定義的數據結構。所有的數據都經過AES加密,轉換為Base64數據然后再發送給C2服務器(如圖10所示)。
圖10. 發送給C2服務器的POST請求
Request及Response數據包頭部中的其他所有字段(如User-Agents
、Content-Type
及Accept-Encoding
)都經過XOR加密處理,可以在惡意軟件中找到。惡意軟件調用Windows API獲取計算機名、用戶名、卷序列號、Windows版本、處理器架構以及其他兩個值(分別為“1.3”以及“KdfrJKN”)。“KdfrJKN”這個值可能是個標識符,可以在文件內部的JSON對象中找到(如圖11所示)。
圖11. 每次通信中所使用的主機信息
FELIXROOT后門在C2通信中用到了3個參數,每個參數都可以提供關于目標主機的一些信息(如表3所示)。
參數 | 描述 |
---|---|
‘u=’ | 該參數包含目標主機信息,具體格式為:<Computer Name>, <User Name>, <Windows Versions>, <Processor Architecture>, <1.3>, < KdfrJKN >, <Volume Serial Number> |
‘&h=’ | 該參數包含執行的命令及具體結果 |
‘&p=’ | 該參數包含與C2服務器有關的數據信息 |
表3. FELIXROOT后門參數
發送給C2服務器的所有數據都經過AES加密處理,通過IbindCtx
接口使用HTTP或者HTTPS協議進行傳輸。每次通信所使用的AES密鑰都不相同,該密鑰經過兩個RSA公鑰的加密處理。FELIXROOT所使用的RSA密鑰如圖12及圖13所示,AES加密參數如圖14所示。
圖12. RSA公鑰1
圖13. RSA公鑰2
圖14. AES加密參數
加密處理后,發往C2的密文還會經過Base64編碼。發送給服務器的數據結構體如圖15所示,C2通信中對應的數據結構如圖16所示。
圖15. 用來將數據發送至服務器的結構體
圖16. 發往C2服務器數據結構樣例
后門使用CryptBinaryToStringA
函數將該結構體數據轉換為Base64編碼。
FELIXROOT后門包含若干條命令,用于不同的任務。每項任務執行完畢后,惡意軟件會在執行下一項任務前睡眠1分鐘。一旦所有任務執行完畢,惡意軟件會跳出循環,刪除數據緩沖區,然后清除目標主機上的所有痕跡,包含如下清痕操作:
1、從啟動目錄中刪除LNK文件;
2、刪除HKCUSoftwareClassesApplicationsrundll32.exeshellopen
注冊表項;
3、從系統中刪除釋放器組件。
CVE-2017-0199以及CVE-2017-11882是目前我們最常見到的兩個漏洞。攻擊者通常會越來越廣泛地利用這些漏洞發動攻擊,直至漏洞再無可用之處為止,因此各個單位必須確保他們處于足夠的防護中。在本文成文時,FireEye Multi Vector Execution(MVX)引擎已經能正確識別并阻止此類安全威脅。我們建議所有行業保持警惕,因為此次攻擊活動的肇事者很有可能會擴大他們的攻擊范圍。
IOC
MD5哈希值 | 樣本 |
---|---|
11227ECA89CC053FB189FAC3EBF27497 | Seminar.rtf |
4DE5ADB865B5198B4F2593AD436FCEFF | Seminar.rtf |
78734CD268E5C9AB4184E1BBE21A6EB9 | Zam<隨機數>.doc |
92F63B1227A6B37335495F9BCB939EA2 | FELIXROOT Dropper |
DE10A32129650849CEAF4009E660F72F | FELIXROOT Backdoor |
表4. FELIXROOT IOC
網絡IOC
217.12.104.100/news
217.12.204.100:443/news
193.23.181.151/Seminar.rtf
Accept-Encoding: gzip, deflate
content-Type: application/x-www-form-urlencoded
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)
配置文件
版本1:
{"1" : "https://88.198.13.116:8443/xmlservice","2" : "30","4" : "GufseGHbc","6" : "3", "7" : “http://88.198.13.116:8080/xmlservice"}
版本2:
{"1" : "https://217.12.204.100/news/","2" : "30","4" : "KdfrJKN","6" : "3", "7" : "http://217.12.204.100/news/"}
FireEye檢測結果
MD5 | 產品 | 特征 | 操作 |
---|---|---|---|
11227ECA89CC053FB189FAC3EBF27497 | NX/EX/AX | Malware.Binary.rtf | 阻止 |
4DE5ADB865B5198B4F2593AD436FCEFF | NX/EX/AX | Malware.Binary.rtf | 阻止 |
78734CD268E5C9AB4184E1BBE21A6EB9 | NX/EX/AX | Malware.Binary | 阻止 |
92F63B1227A6B37335495F9BCB939EA2 | NX/EX/AX | FE_Dropper_Win32_FELIXROOT_1 | 阻止 |
DE10A32129650849CEAF4009E660F72F | NX/EX/AX | FE_Backdoor_Win32_FELIXROOT_2 | 組織 |
11227ECA89CC053FB189FAC3EBF27497 | HX | IOC | 警告 |
4DE5ADB865B5198B4F2593AD436FCEFF | HX | IOC | 警告 |
表5. FireEye檢測結果