作者:藍軍高級威脅團隊@深信服千里目安全實驗室
原文鏈接:https://mp.weixin.qq.com/s/wtEbawfOd1g_T2ovp1SaGg
1.針對SolarWinds供應鏈攻擊簡介
最近FireEye披露的UNC2452黑客組織入侵SolarWinds的供應鏈攻擊讓安全從業人員印象深刻。一是影響規模大,SolarWinds官方稱受影響的客戶數量可能有18000家。二是攻擊者留下的后門程序-Sunburst,十分隱蔽和具有迷惑性,分析認為攻擊者對SolarWinds Orion產品理解程度很深。
有證據表明,早在2019年10月,UNC2452黑客組織就一直在研究通過添加空類來插入代碼的能力。因此將惡意代碼插入原始SolarWinds.Orion.Core.BusinessLayer.dll的時間可能很早,甚至可能是在軟件構建編譯之前。這就導致SolarWinds官方無意間對包含4000行惡意代碼的DLL進行了數字簽名,這樣容易讓惡意代碼提升權限,并且很難被人發現。感染的Origin軟件第一個版本是2019.4.5200.9083,在此幾個月的時間內,用戶通過下載受到感染的產品版本被感染。目前原始dll文件中沒有發現存在動態拓展、也不存在橫向移動等后滲透階段的相關能力支持。
2.Sunburst后門總體流程
總體流程圖

Sunburst后門總體流程可以簡單地概括為以下幾個階段:
(1)SolarWinds.BusinessLayerHost.exe加載SolarWinds.Orion.Core.BusinessLayer.dll,并執行其中的惡意代碼。
(2)代碼通過9層環境檢查,來判斷當前環境上下文是否安全,是否應該繼續執行。
(3)如果檢查通過,嘗試使用DGA算法生成的域名發送DNS上線通知,并檢查DNS解析結果是否滿足自身運行要求。
(4)DNS上線通知成功,則會嘗試使用兩種User-Agent和3種代理模式,與C2服務器建立起HTTP控制通道。
(5)Sunburst后門本身能處理的控制指令并不多,攻擊者可以下載自定義的Payload,例如Cobalt Strike beacon,即TEARDROP進行進一步操作。
Sunburst后門的代碼都在SolarWinds.Orion.Core.BusinessLayer.dll這個文件中,這是個C#編寫的.NET assembly,可以直接反編譯查看源代碼,分析其運行邏輯。主要涉及的三項技術為代碼執行(Execution)、環境檢測(Discovery)和C2通信(Command and Control)。
3.TTPs提取與分析
3.1 代碼執行/Execution
3.1.1紅隊視角
無論是紅隊后滲透還是真實APT攻擊,第一步要在受害者的機器上運行起來控制程序(agent/implant/artifact)。Windows系統上的代碼執行的方法有很多,也可以從多種角度進行分類和總結。這里作者將之分為以下三類:
(1)BYOB: Bring Your Own Binary,就是把后門、工具、武器編譯成exe文件,上傳到目標主機上并運行。這也是最直接的執行方式。缺點是需要不斷的編譯和上傳、要處理殺軟和EDR的靜態檢測等等。
(2)LotL: Living off the Land,可以理解為就地取材,利用Windows系統和應用程序來加載執行惡意代碼,典型的案例就是利用powershell的攻擊。這種方式利用白名單程序來加載,會有一定規避檢查的優點,但會產生明顯的父子進程關系和進程參數,容易被獵捕。
(3)BYOL: Bring Your Own Land,這也是FireEye提出的一種方法,在使用前兩種方法建立了基本的代碼執行能力后,在內存中加載并運行Windows的PE文件、.NET assembly文件。優點是跳過了靜態文件查殺,不會明顯產生進程間調用關系和進程調用參數,缺點是需要自己開發內存加載執行的代碼,很多常規的命令需要自己重新實現。
3.1.2 Surburst實際攻擊技巧
本次供應鏈攻擊的Sunburst后門存在于SolarWinds.Orion.Core.BusinessLayer.dll文件中,它的運行需要SolarWinds.BusinessLayerHost.exe這個合法的進程來加載,可以理解為是一種變形的Living off the Land執行方法。類似于DLL劫持,但相比于常規的DLL劫持,這類修改原始DLL的供應鏈攻擊后門顯得更加隱蔽。往往有以下特點:
(1)修改原有的DLL,不會產生多余的DLL文件落地
(2)程序加載DLL運行,不會產生子進程和進程參數
(3)供應商的信任進程不在常規進程檢測名單,已知Windows lolbins檢測規則無效
本次的DLL后門,可以看到作者很注重隱蔽(OpSec),代碼中透露著檢測對抗的思想,其隱蔽技巧表現為:
(1)DLL合法的數字簽名,很大程度上規避了靜態文件查殺:

(2)代碼通過創建新線程,執行SolarWinds.Orion.Core.BusinessLayer.dll.OrionImprovementBusinessLayer庫目錄下的Initialize函數開始惡意動作。DLL入口函數調用棧較深,通過6層的調用才開始執行代碼,動態跟蹤需要花費更多精力:

(3)代碼使用自定義hash算法,常量字符串都進行hash處理,避免敏感字符串在傳輸流量和本地文件掃描時發現。實際使用的地方有9處,下圖是進程名檢測部分:
3.2 環境檢測/Discovery
3.2.1 紅隊視角
紅隊技術傳統技術往往高度關注進程列表檢測、驅動列表檢測的技巧:
3.2.1.1 進程檢測
對于殺軟和安全軟件的檢測,我們通常使用taskllist /v和tasklist /svc來檢查進程和服務,可以認為這是一種手工判斷+LotL的方法。這里推薦兩款自動化的檢測腳本和工具,大家可以根據自己的需求進行改造,結合內存加載實現BYOL的方式來檢查安全軟件。
(1)ProcessColor.cna,一款Cobalt Strike的插件腳本,可以幫助我們標記出常見的安全軟件、監控軟件、分析軟件。
(2)Seatbelt的InterestingProcesses命令,C#開發的多功能信息搜集工具,可單獨使用,可結合其他程序實現內存加載。

3.2.1.2 驅動檢測
既然進程和服務都檢測了,那么檢測這些驅動有什么意義嗎?

在常規的情況下,檢查進程和服務名稱就可以了解當前系統的安全軟件運行情況,但是一些高級系統管理員會修改進程和服務的名稱,我們就沒辦法判斷了。Sunburst后門在環境檢測中還檢查了系統驅動,這些驅動大部分都是殺軟和EDR產品使用的。這一點是值得紅隊人員借鑒的,下面以sysmon為例進行說明。
圖中左側為常規的sysmon安裝,我們可以在進程和服務中找到sysmon。右側只是簡單地把sysmon進行重命名,安裝之后我們在進程和服務的名字中已經找不到sysmon了,只能找到修改后的名稱。這個時候查看驅動就很必要了,因為sysmon默認安裝的驅動路徑和名字并沒有改變,如下圖:

即使管理員在安裝sysmon的時候將默認的驅動名稱也改了,但是每個驅動都有一個唯一的altitude,要修改這個成本就很高了。sysmon的altitude是385201,如下圖,可以對比上圖,這個是不變的:

3.2.2 Sunburst實現的機制
SolarWinds.Orion.Core.BusinessLayer.dll中的惡意代碼對于運行環境的檢查十分嚴格,一共有9層檢測機制,只有當所有檢測條件都通過時,其才會執行上線操作。
| 序號 | 檢測機制 |
|---|---|
| 1 | 通過哈希判斷當前加載惡意DLL的進程名字是solarwinds.businesslayerhost.exe |
| 2 | 惡意DLL的最后寫入時間比當前時間至少提前12到14天,說明其會潛伏半個月左右才會執行 |
| 3 | 檢查硬編碼的命名管道583da945-62af-10e8-4902-a8f205c72b2e,避免多進程重復執行 |
| 4 | 檢查惡意復用的配置選項ReportWatcherRetry,ReportStatus項不能為3,即Truncate退出狀態 |
| 5 | 檢查當前設備所在域,域名中不能包含哈希值校驗的黑名單patternHashes中的一些字符串;域名不能匹配到正則表達式“(?i)([^a-z]|^)(test)([^a-z]|$)”,該表達式主要用來檢查當前域名是不是測試用的域名;"(?i)(solarwinds)",猜測該表達式主要用來檢測是否處于sloarwinds公司辦公環境 |
| 6 | 檢查第一個非回環啟用網卡,不在IP黑名單中 |
| 7 | 檢測進程Hash黑名單(含137個進程),確保當前環境中沒有安全相關軟件和服務程序,如:Windbg、 Autoruns、 Wireshark,并嘗試關閉服務名單中的服務 |
| 8 | 檢查當前環境中是否存在13個安全軟件的驅動程序,如:groundling32.sys |
| 9 | 主機解析“api.solarwinds.com”為指令的IP地址 |
3.3 C2通信/Command and Control
代碼運行起來,檢測環境上下文是安全的,最后的一步就是和C2服務器進行通信了。Sunburst后門通過自定義的DGA算法生成C2域名,通過自定義DNS通道進行上線通知,通過自定義HTTP通道進行指令下發與數據回傳。
3.3.1 紅隊視角
對于紅隊來說,最常規的出網協議是HTTP[S]和DNS協議,但是大多數情況是手動判斷目標的網絡環境后來選擇C2通信的方式。雖然能夠修改和自定義C2通信協議,無疑是規避流量檢測的好方法,但是相對的成本會比較高,需要同時兼顧客戶端和服務端,還需要保證通信質量。簡易的做法是利用后滲透框架自身的配置來修改C2流量特征,比如Cobalt Strike、Empire、Covenant等工具都支持Malleable C2 profile的配置。
Sunburst后門這種使用DNS和HTTP協議結合的方式,讓作者想起了Sliver C2這款工具的DNS Canary功能。雖然DNS Canary不是用來進行C2通信的,但是提供了一種紅隊監測藍隊是否分析了自己implant的思路。
Sliver C2生成的implant默認會使用符號混淆來避免殺軟查殺,不會出現敏感字符串。但是當使用--canary/-c參數時,會將指定的DNS域名以常量字符串的形式嵌入implant中。并生成一個獨一無二的DNS域名,如果藍隊人員分析我們的implant,發現這個域名,只要逆行了DNS解析,我們的C2服務器就會收到DNS查詢請求,這說明我們的行動已經被發現。
如下圖,紅隊人員在創建implant的時候,設置DNS canary為mews.cs.local,在生成的implant中,嵌入了mqrrzkj.news.cs.local.和kvn3g0-.news.cs.local兩個域名。
當藍隊分析樣本,嘗試解析域名時,C2服務器就會收到告警。
告警信息如下:
3.3.2 Sunburst后門在該階段的亮點
(1)很具有迷惑性的DnsRecords代碼,用常規的變量名表達其他實際意義。
(2)對DGA生成的域名解析的IP地址,進行白名單、黑名單、等待名單的判斷,確定網絡解析環境是否安全才會繼續執行。
(3)HTTP協議的一種User-Agent會采用SolarWinds產品的User-Agent,更加接近真實可信的流量。
(4)出網會檢測代理設置,通過無代理、系統代理和SolarWinds本身配置的代理三種方式是嘗試出網,連接C2服務器。
(5)高度迷惑性的C2服務器響應。
(6)高度迷惑性的DGA算法。
上述動作的具體表現為:
(1)具有高度迷惑性的DNS上線請求:惡意代碼發送DNS請求并將返回的CNAME信息將保存至DnsRecords對象。
DNS查詢如果請求失敗,則設置隨機7-9小時的休眠時間(代碼如下圖),進行休眠后再進行下一次嘗試。

如請求成功,則首先判斷是否存在CNAME信息,如不存在,則處理IP的最后兩個字節,修改DnsRecords對象對應的字段:
length字段,此字段用于保存控制階段應用的代理類型;
_type字段,此字段決定控制階段使用的url以及對返回數據的解碼方式;
A字段,此字段決定DNS請求查詢階段每次DNS請求之間的延時。
(2)對DGA生成的域名解析的IP地址,進行白名單、黑名單、等待名單的判斷:檢測到IP處于任一黑名單,將導致狀態更改為Truncate,從而導致后續操作全部終止,并作標記此后不再嘗試。IP黑名單列表:
| IP地址 | 子網掩碼 | AddressFamilyEx類型 |
|---|---|---|
| 10.0.0.0(ZoomEye搜索結果) | 255.0.0.0 | Atm內網IP黑名單 |
| 172.16.0.0(ZoomEye搜索結果) | 255.240.0.0 | Atm內網IP黑名單 |
| 192.168.0.0(ZoomEye搜索結果) | 255.255.0.0 | Atm內網IP黑名單 |
| 224.0.0.0(ZoomEye搜索結果) | 240.0.0.0 | Atm內網IP黑名單 |
| fc00::(ZoomEye搜索結果) | fe00:: | Atm內網IP黑名單 |
| fec0::(ZoomEye搜索結果) | ffc0:: | Atm內網IP黑名單 |
| ff00::(ZoomEye搜索結果) | ff00:: | Atm內網IP黑名單 |
| 41.84.159.0(ZoomEye搜索結果) | 255.255.255.0 | Ipx外網黑名單 |
| 74.114.24.0(ZoomEye搜索結果) | 255.255.248.0 | Ipx外網黑名單 |
| 154.118.140.0(ZoomEye搜索結果) | 255.255.255.0 | Ipx外網黑名單 |
| 217.163.7.0(ZoomEye搜索結果) | 255.255.255.0 | Ipx外網黑名單 |
| 20.140.0.0(ZoomEye搜索結果) | 255.254.0.0 | ImpLink等待名單 |
| 96.31.172.0(ZoomEye搜索結果) | 255.255.255.0 | ImpLink等待名單 |
| 131.228.12.0(ZoomEye搜索結果) | 255.255.252.0 | ImpLink等待名單 |
| 144.86.226.0(ZoomEye搜索結果) | 255.255.255.0 | ImpLink等待名單 |
| 8.18.144.0(ZoomEye搜索結果) | 255.255.254.0 | NetBios白名單 |
| 18.130.0.0(ZoomEye搜索結果) | 255.255.0.0 | NetBios白名單 |
| 71.152.53.0(ZoomEye搜索結果) | 255.255.255.0 | NetBios白名單 |
| 99.79.0.0(ZoomEye搜索結果) | 255.255.0.0 | NetBios白名單 |
| 87.238.80.0(ZoomEye搜索結果) | 255.255.248.0 | NetBios白名單 |
| 199.201.117.0(ZoomEye搜索結果) | 255.255.255.0 | NetBios白名單 |
| 184.72.0.0(ZoomEye搜索結果) | 255.254.0.0 | NetBios白名單 |
上述表格中Atm代表內網IP黑名單,ImpLink代表外網IP黑名單,Ipx代表等待名單,NetBios代表白名單。如果返回的IP處于任一黑名單,則惡意代碼退出并且設置標記永不再上線。
在進行進程、服務、驅動狀態檢查通過后,然后還會解析官方域名“api.solarwinds.com”判斷是否為指定IP地址,如檢驗通過則進入后續的感染邏輯,整個邏輯可以用下圖表示:

(3)高度迷惑性的User-Agent:當惡意代碼從C2域名的CNAME DNS響應中成功檢索到域,將產生一個新的執行線程,調用HttpHelper.Initialize方法來與C2服務器通信。
HttpHelper的構造函數會處理由DNS請求查詢階段決定的請求類型與代理類型,兩種User-Agent,在正常情況下,第一種會用于Windows檢查證書吊銷列表。
第二種用于SolarWinds本身的通信過程,將偽裝為SolarWinds正常請求鏈接或靜態資源。

(4)高度迷惑性的代理配置:出網代理主要分為三類,無代理、系統代理和紅色箭頭標明的SolarWinds本身配置的代理,從這點也可以看出黑客組織對于SolarWins的了解的確十分深入。

最后組成了一個JSON文本,在其中添加了前面描述的userID,sessionID和一組其他不相關的數據字段。然后它將此JSON文檔發送到C2服務器。
(5)高度迷惑性的C2服務器響應:如果C2通信成功,C2服務器將回復編碼壓縮后的數據,該數據中包含后門要執行的命令。C2服務器可能還會回復有關要報告的其他C2地址的信息:

實際的服務器控制執行代碼在Job.ExecuteEngine函數中。以下是黑客C2服務器對遠端受害主機控制命令的類型和功能:
| 命令 | 值 | 詳細描述 |
|---|---|---|
| 空閑 | 0 | 無 |
| 退出 | 1 | 結束當前進程 |
| 設置延遲時間 | 2 | 設置主事件循環執行的延遲時間 |
| 收集系統信息 | 3 | 解析本地系統信息,包括主機名、用戶名、操作系統版本、MAC地址、IP地址、DHCP配置和域信息 |
| 上傳系統信息 | 4 | 向指定的URL發送HTTP請求,并把系統信息以特殊格式發送到C2服務器 |
| 啟動新任務 | 5 | 根據文件路徑和參數啟動新進程 |
| 枚舉進程信息 | 6 | 獲取進程列表,并根據參數決定是否獲取父進程ID、用戶名、域名 |
| 結束任務 | 7 | 根據PID結束指定進程 |
| 枚舉文件信息 | 8 | 根據文件路徑枚舉文件和目錄 |
| 寫入文件 | 9 | 根據文件路徑和Base64編碼字符串,將Base64解密字符串的內容以追加模式寫入文件,寫入后延遲1-2秒 |
| 判斷文件是否存在 | 10 | 判斷文件路徑是否存在 |
| 刪除文件 | 11 | 根據文件路徑刪除文件 |
| 獲取文件哈希 | 12 | 獲取文件的MD5哈希信息 |
| 讀注冊表值 | 13 | 讀取注冊表值 |
| 設置注冊表值 | 14 | 設置注冊表值 |
| 刪除注冊表值 | 15 | 刪除注冊表值 |
| 獲取注冊表子項和值 | 16 | 獲取注冊表路徑下的子項和值名稱的列表 |
| 重啟 | 17 | 嘗試使系統重啟 |
(6)高度迷惑性的DGA算法:
如果樣本通過上述階段,則樣本將在while循環中通過DGA算法開始生成域。樣本會延遲域生成之間的隨機間隔;此時間間隔可以是1到3分鐘,30到120分鐘或在錯誤條件下最長420到540分鐘(9小時)范圍內的任意隨機值。
總共用四種方法來生成url,分別為GetCurrentString,GetPreviousString,GetNextStringEx和GetNextString函數。
下圖是四種方法的調用條件,以及會組成的URL的第一段格式如上圖。這里需要了解一個變量和兩個算法,才能對DGA的算法生成過程更加了解。一個變量是GUID,兩個加密算法即CryptoHelper.Base64Encode和CryptoHelper.Base64Decode。
其中GetCurrentString/GetPreviousString可以認為是第一階段DGA,包含可以完整解析的域名,GetNextStringEx/GetNextString可以認為是第二階段DGA,包含了有效的服務器時間戳等信息。
不管哪種生成方式,在OrionImprovementBusinessLayer.GetOrCreateUserID中,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography的 MachineGuid值和第一個網絡適配器的物理地址MAC組成了UID,并通過計算UID的MD5哈希,再用ComputeHash類的方法將 MD5 哈希值作為16字節的數組返回,異或之后最終輸出64位哈希值這樣得到目標GUID。GUID通過CreateSecureString函數進行加密,CreateSecureString函數中使用了CryptoHelper.Base64Encode算法加密。所以整個加密過程全是CryptoHelper.Base64Encode函數和CryptoHelper.Base64Decode函數實現的,研究的重點就是CryptoHelper.Base64Encode函數和CryptoHelper.Base64Decode函數。然而這兩個函數都并不是名稱表示的常見的Base64編解碼函數。
CryptoHelper.Base64Decode其實是自定義的加密算法。
CryptoHelper.Base64Encode其實是自定義映射表的Base32算法。
下圖是GetCurrentString/GetPreviousString函數加密方式中以CryptoHelper.Base64Decode加密域名的方式生成的URL。藍色的表示會隨機變化,黑色表示固定不變。紫色00帶有下劃線代表是此種加密方式的標志位。
一、前15個字節是GUID被加密過后的編碼0fn7oe4cegrf933
二、中間一個字節是通過CreatString生成的“c”
三、后面的mudofi75f4tjvh則是AD域被編碼后的字符串。
因為這里十六個字節過后有“00”開頭的標志,所以可以斷定應該調用OrionImprovementBusinessLayer.CryptoHelper.Base64Decode對應的解碼算法。解碼后可以得到域名稱:WASHO。
下圖就是通過GetNextStringEx和GetNextString函數加密的方式生成的URL。對照上圖其實如果沒有“00”標志,這種URL形式和GetCurrentString/GetPreviousString函數加密方式中以CryptoHelper.Base64Encode加密域名的方式是很像的,所以這種直接使用CryptoHelper.Base64Encode對應的解碼算法即可,最終得到spsd.sk.ca域名。
安全研究員@bambenek在其Github上公布了1722個疑似與此次攻擊事件相關的DGA域名:
通過上述DGA域名格式解析,我們僅提取最有價值的以“.”分隔的第一段看起來雜亂無序的編碼嘗試進行逆向解密,如下是解密結果的部分展示,可以發現此次黑客攻擊目標的組織數量巨大,包括多數大型美國政府和企業的常見域名。
因為GUID是通過MD5計算出來的,所以要想還原MAC地址是不可能的,但這并不代表GUID就沒有價值。FireEye在其GitHub上發布的DNS請求內部包含以下加密的GUID:
我們在解密出的文檔中搜索發現同樣的規律:
r1q6arhpujcf6jb6ervisu10odohu0it.appsync-api.us-west-2.avsvmcloud.com
domain name part GUID (0x2956497EB4DD0BF9) offset 0 = central.pima.g
0oni12r13ficnkqb2w.appsync-api.us-west-2.avsvmcloud.com
domain name part GUID (0x2956497EB4DD0BF9) offset 35 = ov
r8stkst71ebqgj66ervisu10bdohu0gt.appsync-api.us-west-2.avsvmcloud.com
domain name part GUID (0x683D2C991E01711D) offset 0 = central.pima.g
ulfmcf44qd58t9e82w.appsync-api.us-west-2.avsvmcloud.com
domain name part GUID (0x683D2C991E01711D) offset 35 = ov
617stsr6ntep0auho2v60be2h.appsync-api.us-east-2.avsvmcloud.com
domain name part GUID (0x92EB3D64B8A03CB) offset 35 = ions.com
由此可見相同GUID可以作為域名長度過長時進行分割的子串,逆向拼接即可形成完整的域名。
4.總結
本文從紅隊的視角分析了Sunburst后門中的TTPs,其后門實現邏輯可以看出攻擊者把安全隱蔽(OpSec)放在了第一位,雖然其中很多技術是惡意軟件本身的技巧,但是涉及的一些思想和TTPs對紅隊建設仍有很大參考價值,也透露出現階段紅隊技巧和第一梯隊APT組織實戰攻擊技巧的差距。紅隊行動首先就要制定策略,是隱蔽優先還是速度優先。但是無論哪種策略,OpSec始終是紅隊人員的必修課。
5.附:Sunburst環境檢測階段的黑名單
5.1 域名黑名單
| HASH | 歸屬地 |
|---|---|
| 1109067043404435916UL | 'swdev.local'(SolarWinds本地設備) |
| 15267980678929160412UL | 'swdev.dmz'(SolarWinds Development DMZ) |
| 8381292265993977266UL | 'lab.local'(本地實驗室) |
| 3796405623695665524UL | 'lab.na'(SolarWinds 北美辦公室) |
| 4578480846255629462UL | 'lab.brno'(SolarWinds Brno 辦公室) |
| 8727477769544302060UL | 'emea.sales'(EMEA Sales) |
| 10734127004244879770UL | 'cork.lab'(SolarWinds Cork 辦公室) |
| 11073283311104541690UL | 'dev.local'(Development) |
| 4030236413975199654UL | 'dmz.local'(Demilitarized Zone) |
| 7701683279824397773UL | 'pci.local'(PCI) |
| 5132256620104998637UL | 'saas.swi'(SaaS SolarWinds) |
| 5942282052525294911UL | 'lab.rio'(SolarWinds Rio辦公室) |
| 16858955978146406642UL | 'pac.lab'(SolarWinds APAC 辦公室) |
5.2 進程黑名單
| HASH | 軟件名稱 |
|---|---|
| 2597124982561782591UL | apimonitor-x64 (Rohitab病毒分析軟件) |
| 2600364143812063535UL | apimonitor-x86 (Rohitab病毒分析軟件) |
| 13464308873961738403UL | autopsy64 (AutopsyForensics) |
| 4821863173800309721UL | autopsy (AutopsyForensics) |
| 12969190449276002545UL | autoruns64 (Autoruns病毒分析軟件) |
| 3320026265773918739UL | autoruns (Autoruns病毒分析軟件) |
| 12094027092655598256UL | autorunsc64 (Autoruns病毒分析軟件) |
| 10657751674541025650UL | autorunsc (Autoruns病毒分析軟件) |
| 11913842725949116895UL | binaryninja (Binary Ninja病毒分析軟件) |
| 5449730069165757263UL | blacklight (BlacklightForensics) |
| 292198192373389586UL | cff explorer (NTCore Explorer Suite病毒分析軟件) |
| 12790084614253405985UL | cutter (Rizin Cutter病毒分析軟件) |
| 5219431737322569038UL | de4dot (de4dotForensics) |
| 15535773470978271326UL | debugview (DebugView病毒分析軟件) |
| 7810436520414958497UL | diskmon (DiskMon病毒分析軟件) |
| 13316211011159594063UL | dnsd (Symantec反病毒) |
| 13825071784440082496UL | dnspy (dnSpy病毒分析軟件) |
| 14480775929210717493UL | dotpeek32 (dotPeek病毒分析軟件) |
| 14482658293117931546UL | dotpeek64 (dotPeek病毒分析軟件) |
| 8473756179280619170UL | dumpcap (Wireshark病毒分析軟件) |
| 3778500091710709090UL | evidence center (Belkasoft Evidence CenterForensics) |
| 8799118153397725683UL | exeinfope (Exeinfo PE病毒分析軟件) |
| 12027963942392743532UL | fakedns (fakedns (iDefense)病毒分析軟件) |
| 576626207276463000UL | fakenet (fakenet病毒分析軟件) |
| 7412338704062093516UL | ffdec (Free Flash Decompiler病毒分析軟件) |
| 682250828679635420UL | fiddler (Fiddler病毒分析軟件) |
| 13014156621614176974UL | fileinsight (McAfee病毒分析軟件) |
| 18150909006539876521UL | floss (FireEye病毒分析軟件) |
| 10336842116636872171UL | gdb (gdb病毒分析軟件) |
| 12785322942775634499UL | hiew32demo (Hiew病毒分析軟件) |
| 13260224381505715848UL | hiew32 (Hiew病毒分析軟件) |
| 17956969551821596225UL | hollows_hunter (hollows hunter病毒分析軟件) |
| 8709004393777297355UL | idaq64 (IDA病毒分析軟件) |
| 14256853800858727521UL | idaq (IDA病毒分析軟件) |
| 8129411991672431889UL | idr (InsightDR?病毒分析軟件) |
| 15997665423159927228UL | ildasm (IL Disassembler病毒分析軟件) |
| 10829648878147112121UL | ilspy (ILSpy病毒分析軟件) |
| 9149947745824492274UL | jd-gui (Java Decompiler病毒分析軟件) |
| 3656637464651387014UL | lordpe (LordPE病毒分析軟件) |
| 3575761800716667678UL | officemalscanner (Officemalscanner病毒分析軟件) |
| 4501656691368064027UL | ollydbg (OllyDbg病毒分析軟件) |
| 10296494671777307979UL | pdfstreamdumper (PDFStreamDumper病毒分析軟件) |
| 14630721578341374856UL | pe-bear (PE-bear病毒分析軟件) |
| 4088976323439621041UL | pebrowse64 (Pebrowser病毒分析軟件) |
| 9531326785919727076UL | peid (PeiD病毒分析軟件) |
| 6461429591783621719UL | pe-sieve32 (PE-sieve病毒分析軟件) |
| 6508141243778577344UL | pe-sieve64 (PE-sieve病毒分析軟件) |
| 10235971842993272939UL | pestudio (pestudio病毒分析軟件) |
| 2478231962306073784UL | peview (Peview病毒分析軟件) |
| 9903758755917170407UL | pexplorer (Pexplorer病毒分析軟件) |
| 14710585101020280896UL | ppee (PPEE病毒分析軟件) |
| 14710585101020280896UL | ppee (PPEE病毒分析軟件) |
| 13611814135072561278UL | procdump64 (ProcDump病毒分析軟件) |
| 2810460305047003196UL | procdump (ProcDump病毒分析軟件) |
| 2032008861530788751UL | processhacker (Process Hacker病毒分析軟件) |
| 27407921587843457UL | procexp64 (Process Explorer病毒分析軟件) |
| 6491986958834001955UL | procexp (Process Explorer病毒分析軟件) |
| 2128122064571842954UL | procmon (ProcMon病毒分析軟件) |
| 10484659978517092504UL | prodiscoverbasic (ProDiscoveryForensics) |
| 8478833628889826985UL | py2exedecompiler (Py2ExeDecompiler病毒分析軟件) |
| 10463926208560207521UL | r2agent (Radare2病毒分析軟件) |
| 7080175711202577138UL | rabin2 (Radare2病毒分析軟件) |
| 8697424601205169055UL | radare2 (Radare2病毒分析軟件) |
| 7775177810774851294UL | ramcapture64 (Ram CapturerForensics) |
| 16130138450758310172UL | ramcapture (Ram CapturerForensics) |
| 506634811745884560UL | reflector (Red Gate Reflector病毒分析軟件) |
| 18294908219222222902UL | regmon (RegMon病毒分析軟件) |
| 3588624367609827560UL | resourcehacker (Resource Hacker病毒分析軟件) |
| 9555688264681862794UL | retdec-ar-extractor (Avast RetDec病毒分析軟件) |
| 5415426428750045503UL | retdec-bin2llvmir (Avast RetDec病毒分析軟件) |
| 3642525650883269872UL | retdec-bin2pat (Avast RetDec病毒分析軟件) |
| 13135068273077306806UL | retdec-config (Avast RetDec病毒分析軟件) |
| 3769837838875367802UL | retdec-fileinfo (Avast RetDec病毒分析軟件) |
| 191060519014405309UL | retdec-getsig (Avast RetDec病毒分析軟件) |
| 1682585410644922036UL | retdec-idr2pat (Avast RetDec病毒分析軟件) |
| 7878537243757499832UL | retdec-llvmir2hll (Avast RetDec病毒分析軟件) |
| 13799353263187722717UL | retdec-macho-extractor (Avast RetDec病毒分析軟件) |
| 1367627386496056834UL | retdec-pat2yara (Avast RetDec病毒分析軟件) |
| 12574535824074203265UL | retdec-stacofin (Avast RetDec病毒分析軟件) |
| 16990567851129491937UL | retdec-unpacker (Avast RetDec病毒分析軟件) |
| 8994091295115840290UL | retdec-yarac (Avast RetDec病毒分析軟件) |
| 13876356431472225791UL | rundotnetdll (RunDotNetDLL病毒分析軟件) |
| 14968320160131875803UL | sbiesvc (Sandbox的IE虛擬化/容易) |
| 14868920869169964081UL | scdbg (SCDBG病毒分析軟件) |
| 106672141413120087UL | scylla_x64 (Scylla病毒分析軟件) |
| 79089792725215063UL | scylla_x86 (Scylla病毒分析軟件) |
| 5614586596107908838UL | shellcode_launcher (Shellcode Launcher病毒分析軟件) |
| 3869935012404164040UL | solarwindsdiagnostics (SolarWindsdev/test) |
| 3538022140597504361UL | sysmon64 (SysmonEDR) |
| 14111374107076822891UL | sysmon (SysmonEDR) |
| 7982848972385914508UL | task explorer (Task Explorer病毒分析軟件) |
| 8760312338504300643UL | task explorer-64 (Task Explorer病毒分析軟件) |
| 17351543633914244545UL | tcpdump (tcpdump病毒分析軟件) |
| 7516148236133302073UL | tcpvcon (TCPView病毒分析軟件) |
| 15114163911481793350UL | tcpview (TCPView病毒分析軟件) |
| 15457732070353984570UL | vboxservice (VirtualBox虛擬化/容易) |
| 16292685861617888592UL | win32_remote (IDA病毒分析軟件) |
| 10374841591685794123UL | win64_remotex64 (IDA病毒分析軟件) |
| 3045986759481489935UL | windbg (WinDbg (Microsoft)病毒分析軟件) |
| 17109238199226571972UL | windump (WinPcap WinDump病毒分析軟件) |
| 6827032273910657891UL | winhex64 (WinHex病毒分析軟件) |
| 5945487981219695001UL | winhex (WinHex病毒分析軟件) |
| 8052533790968282297UL | winobj (WinObj病毒分析軟件) |
| 17574002783607647274UL | wireshark (Wireshark病毒分析軟件) |
| 3341747963119755850UL | x32dbg (x64dbg病毒分析軟件) |
| 14193859431895170587UL | x64dbg (x64dbg病毒分析軟件) |
| 17439059603042731363UL | xwforensics64 (X-Ways Forensics病毒分析軟件) |
| 17683972236092287897UL | xwforensics (X-Ways Forensics病毒分析軟件) |
| 700598796416086955UL | redcloak (Red Cloak / SecureWorksEDR) |
| 3660705254426876796UL | avgsvc (AVG反病毒) |
| 12709986806548166638UL | avgui (AVG反病毒) |
| 3890794756780010537UL | avgsvca (AVG反病毒) |
| 2797129108883749491UL | avgidsagent (AVG反病毒) |
| 3890769468012566366UL | avgsvcx (AVG反病毒) |
| 14095938998438966337UL | avgwdsvcx (AVG反病毒) |
| 11109294216876344399UL | avgadminclientservice (AVG反病毒) |
| 1368907909245890092UL | afwserv (Avast反病毒) |
| 11818825521849580123UL | avastui (Avast反病毒) |
| 8146185202538899243UL | avastsvc (Avast反病毒) |
| 2934149816356927366UL | aswidsagent (Avast/AVG反病毒) |
| 13029357933491444455UL | aswidsagenta (Avast/AVG反病毒) |
| 6195833633417633900UL | aswengsrv (Avast/AVG反病毒) |
| 2760663353550280147UL | avastavwrapper (Avast反病毒) |
| 16423314183614230717UL | bccavsvc (Avast反病毒) |
| 2532538262737333146UL | psanhost (熊貓安全EDR) |
| 4454255944391929578UL | psuaservice (熊貓安全EDR) |
| 6088115528707848728UL | psuamain (熊貓安全EDR) |
| 13611051401579634621UL | avp (卡巴斯基反病毒) |
| 18147627057830191163UL | avpui (卡巴斯基反病毒) |
| 17633734304611248415UL | ksde (卡巴斯基EDR) |
| 13581776705111912829UL | ksdeui (卡巴斯基EDR) |
| 7175363135479931834UL | tanium (TaniumEDR) |
| 3178468437029279937UL | taniumclient (TaniumEDR) |
| 13599785766252827703UL | taniumdetectengine (TaniumEDR) |
| 6180361713414290679UL | taniumendpointindex (TaniumEDR) |
| 8612208440357175863UL | taniumtracecli (TaniumEDR) |
| 8408095252303317471UL | taniumtracewebsocketclient64 (TaniumEDR) |
5.3 驅動HASH黑名單
| HASH | 驅動名稱 |
|---|---|
| 17097380490166623672UL | cybkerneltracker.sys (CyberArk) |
| 15194901817027173566UL | atrsdfw.sys (Altiris / Symantec) |
| 12718416789200275332UL | eaw.sys (Raytheon Cyber Solutions) |
| 18392881921099771407UL | rvsavd.sys (OPSWAT / CJSC Returnil) |
| 3626142665768487764UL | dgdmk.sys (Verdasys) |
| 12343334044036541897UL | sentinelmonitor.sys (SentinelOne) |
| 397780960855462669UL | hexisfsmonitor.sys (Hexis Cyber Solutions) |
| 6943102301517884811UL | groundling32.sys (Dell Secureworks) |
| 13544031715334011032UL | groundling64.sys (Dell Secureworks) |
| 11801746708619571308UL | safe-agent.sys (SAFE-Cyberdefense) |
| 18159703063075866524UL | crexecprev.sys (Cybereason) |
| 835151375515278827UL | psepfilter.sys (Absolute Software) |
| 16570804352575357627UL | cve.sys (Absolute Software Corp.) |
| 1614465773938842903UL | brfilter.sys (Bromium - App allowlisting) |
| 12679195163651834776UL | brcow_x_x_x_x.sys (Bromium - App allowlisting) |
| 2717025511528702475UL | lragentmf.sys (LogRhythm) |
| 17984632978012874803UL | libwamf.sys (OPSWAT development) |
5.4 服務HASH黑名單
| HASH | 安全廠商名稱 |
|---|---|
| 11385275378891906608UL | carbonblack (Carbon Black - App allowlisting) |
| 13693525876560827283UL | carbonblackk (Carbon Black - App allowlisting) |
| 17849680105131524334UL | cbcomms (Carbon Black - App allowlisting) |
| 18246404330670877335UL | cbstream (Carbon Black - App allowlisting) |
| 8698326794961817906UL | csfalconservice (Crowdstrike Falcon - EDR) |
| 9061219083560670602UL | csfalconcontainer (Crowdstrike Falcon - EDR) |
| 11771945869106552231UL | csagent (Crowdstrike - EDR) |
| 9234894663364701749UL | csdevicecontrol (Crowdstrike - EDR) |
| 8698326794961817906UL | csfalconservice (Crowdstrike Falcon - EDR) |
| 15695338751700748390UL | xagt (FireEye - EDR) |
| 640589622539783622UL | xagtnotif (FireEye - EDR) |
| 15695338751700748390UL | xagt (FireEye - EDR) |
| 9384605490088500348UL | fe_avk (FireEye - EDR) |
| 6274014997237900919UL | fekern (FireEye - Forensics) |
| 15092207615430402812UL | feelam (ESET - EDR) |
| 3320767229281015341UL | fewscservice (FireEye - Forensics) |
| 3200333496547938354UL | ekrn (ESET - EDR) |
| 14513577387099045298UL | eguiproxy (ESET - EDR) |
| 607197993339007484UL | egui (ESET - EDR) |
| 15587050164583443069UL | eamonm (ESET - EDR) |
| 9559632696372799208UL | eelam (ESET - EDR) |
| 4931721628717906635UL | ehdrv (ESET - EDR) |
| 3200333496547938354UL | ekrn (ESET - EDR) |
| 2589926981877829912UL | ekrnepfw (ESET - EDR) |
| 17997967489723066537UL | epfwwfp (ESET - EDR) |
| 14079676299181301772UL | ekbdflt (ESET - EDR) |
| 17939405613729073960UL | epfw (ESET - EDR) |
| 521157249538507889UL | fsgk32st (F-Secure - EDR) |
| 14971809093655817917UL | fswebuid (F-Secure - EDR) |
| 10545868833523019926UL | fsgk32 (F-Secure - EDR) |
| 15039834196857999838UL | fsma32 (F-Secure - EDR) |
| 14055243717250701608UL | fssm32 (F-Secure - EDR) |
| 5587557070429522647UL | fnrb32 (F-Secure - EDR) |
| 12445177985737237804UL | fsaua (F-Secure - EDR) |
| 17978774977754553159UL | fsorsp (F-Secure ORSP - EDR) |
| 17017923349298346219UL | fsav32 (F-Secure - EDR) |
| 17624147599670377042UL | f-secure gatekeeper handler starter (F-Secure - EDR) |
| 16066651430762394116UL | f-secure network request broker (F-Secure - EDR) |
| 13655261125244647696UL | f-secure webui daemon (F-Secure - EDR) |
| 12445177985737237804UL | fsaua (F-Secure - EDR) |
| 3421213182954201407UL | fsma (F-Secure - EDR) |
| 14243671177281069512UL | fsorspclient (F-Secure ORSP - EDR) |
| 16112751343173365533UL | f-secure gatekeeper (F-Secure - EDR) |
| 3425260965299690882UL | f-secure hips (F-Secure - EDR) |
| 9333057603143916814UL | fsbts (F-Secure - EDR) |
| 3413886037471417852UL | fsni (F-Secure - EDR) |
| 7315838824213522000UL | fsvista (F-Secure - EDR) |
| 13783346438774742614UL | f-secure filter (F-Secure - EDR) |
| 2380224015317016190UL | f-secure recognizer (F-Secure - EDR) |
| 3413052607651207697UL | fses (F-Secure - EDR) |
| 3407972863931386250UL | fsfw (F-Secure - EDR) |
| 10393903804869831898UL | fsdfw (F-Secure - EDR) |
| 12445232961318634374UL | fsaus (F-Secure - EDR) |
| 3421197789791424393UL | fsms (F-Secure - EDR) |
| 541172992193764396UL | fsdevcon (F-Secure - EDR |
6.參考文獻
[1] Highly Evasive Attacker Leverages SolarWinds Supply Chain to Compromise Multiple Global Victims With Sunburst Backdoor
https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-Sunburst-backdoor.html
[2] Sunburst Additional Technical Details
https://www.fireeye.com/blog/threat-research/2020/12/Sunburst-additional-technical-details.html
[3] Analyzing Solorigate, the compromised DLL file that started a sophisticated cyberattack, and how Microsoft Defender helps protect customers
https://www.microsoft.com/security/blog/2020/12/18/analyzing-solorigate-the-compromised-dll-file-that-started-a-sophisticated-cyberattack-and-how-microsoft-defender-helps-protect/
[4] 從Solarwinds供應鏈攻擊(金鏈熊)看APT行動中的隱蔽作戰
https://mp.weixin.qq.com/s/DsFgqpQ2Gbs0j0aQaFbsYA
[5] Sunburst Cracked
https://github.com/ITAYC0HEN/Sunburst-Cracked
[6] Sunburst DGA decoder
https://github.com/2igosha/Sunburst_dga
[7] Living Off The Land Binaries and Scripts (and also Libraries)
https://lolbas-project.github.io/
[8] Bring Your Own Land (BYOL) – A Novel Red Teaming Technique
https://www.fireeye.com/blog/threat-research/2018/06/bring-your-own-land-novel-red-teaming-technique.html
[9] ProcessColor.cna
https://github.com/harleyQu1nn/AggressorScripts/blob/master/ProcessColor.cna#L10
[10] Seatbelt InterestingProcessesCommand
https://github.com/GhostPack/Seatbelt/blob/master/Seatbelt/Commands/Windows/InterestingProcessesCommand.cs
[11] Sliver
https://github.com/BishopFox/sliver
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1443/
暫無評論