自 2023 年 10 月初以來,微軟已經觀察到兩個由朝鮮政府撐腰的威脅組織:Diamond Sleet 和 Onyx Sleet,他們利用 CVE-2023-42793 漏洞影響 JetBrains TeamCity 服務器多個版本。TeamCity 作爲一款持續集成 / 持續部署(CI/CD)應用軟件,被衆多組織用于 DevOps 及其他軟件開發活動。
在過去的行動中,Diamond Sleet 及朝鮮的其他威脅組織通過滲入到軟件構建環境中,成功地實施了軟件供應鏈攻擊。有鑒于此,微軟認爲該活動對已受影響的組織構成了極大風險。目前,JetBrains 已發布了更新版來解決這個漏洞,并爲無法更新到最新軟件版本的用戶提供了緩解措施。
雖然這兩個威脅組織都利用同一個漏洞,但微軟觀察到 Diamond Sleet 和 Onyx Sleet 在成功滲入後都各自利用了一系列獨特的工具和技術。基于受這些入侵影響的受害者組織情況,微軟認爲威脅組織可能在伺機闖入易受攻擊的服務器。
這兩個組織都部署了惡意軟件和工具,并利用了可以持久訪問受害者環境的技術。與以往觀察到的政府撐腰的攻擊活動一樣,微軟直接通知了已成爲攻擊目标或受到威脅的客戶,并向他們提供保護其環境所需的信息。
Diamond Sleet 和 Onyx Sleet 是何方神聖?
Diamond Sleet(ZINC)是朝鮮政府撐腰的威脅組織,主要從事間諜活動、竊取數據、牟取經濟利益和破壞網絡。這個組織通常以全球各地的媒體、IT 服務和國防相關實體爲目标。微軟在 2021 年 1 月報告了 Diamond Sleet 針對安全研究人員的攻擊,該組織在 2022 年 9 月将開源軟件淪爲武器化。2023 年 8 月,Diamond Sleet 侵入了一家德國軟件供應商的軟件供應鏈。
Onyx Sleet 是同樣由朝鮮政府撐腰的威脅組織,主要針對韓國、美國和印度的國防和 IT 服務。Onyx Sleet 使用了自行開發的一套強大的工具對受害者環境實現持久訪問,并且不被發現,該組織經常利用 N 日漏洞(N-day)獲得對威脅目标的初始訪問權限。
Diamond Sleet 攻擊路徑 1:部署 ForestTiger 後門
在成功入侵 TeamCity 服務器之後,Diamond Sleet 利用 PowerShell 從之前被該威脅組織入侵的合法基礎設施下載了兩個攻擊載荷。這兩個攻擊載荷 Forest64.exe 和 4800-84DC-063A6A41C5C 存儲在 C:ProgramData 目錄中。
啓動後,Forest64.exe 檢查是否存在一個名爲 4800-84DC-063A6A41C5C 的文件,然後使用 "uTYNkfKxHiZrx3KJ" 嵌入的靜态分配密鑰來讀取和解密該文件的内容:
c: ProgramData Forest64.exe uTYNkfKxHiZrx3KJ
值得關注的是,當惡意軟件被調用時,這個同樣的值被指定爲一個參數,但是在分析過程中沒有看到它被利用。同樣的值和配置名稱還出現在卡巴斯基 Securelist 報告的這個名爲 ForestTiger 的惡意軟件的曆史活動中。
4800-84DC-063A6A41C5C 的解密内容是惡意軟件的配置文件,其中含有其他參數,比如後門用于指揮和控制(C2)的基礎設施。微軟觀察到 Diamond Sleet 使用了之前被該組織入侵的基礎設施充當 C2。
微軟觀察到 Forest64.exe 随後創建了一個名爲 Windows TeamCity 設置用戶界面的計劃任務,因此每次系統啓動時它都會運行,使用上述引用的命令參數 "uTYNkfKxHiZrx3KJ"。微軟還觀察到 Diamond Sleet 利用 ForestTiger 後門通過 LSASS 内存轉儲憑據。Microsoft Defender Antivirus 将該惡意軟件檢測爲 ForestTiger。
圖 1. Diamond Sleet 攻擊鏈 1 使用 ForestTiger 後門
Diamond Sleet 攻擊路徑 2:部署用于 DLL 搜索順序劫持攻擊的攻擊載荷
Diamond Sleet 利用受感染服務器上的 PowerShell 從攻擊者的基礎設施下載一個惡意 DLL。然後,這個惡意 DLL 與合法的 .exe 文件一起暫存在 C:ProgramData 中,以執行 DLL 搜索順序劫持。微軟觀察到該組織結合使用了這些惡意 DLL 和合法的 EXE 文件:
惡意 DLL 名稱 | 合法二進制文件名稱 |
DSROLE.dll | wsmprovhost.exe |
Version.dll | clip.exe |
DSROLE.dll 攻擊鏈
當 DSROLE.dll 由 wsmprovhost.exe 加載時,DLL 啓動一個線程,該線程枚舉并嘗試處理與該 DLL 在同一個執行目錄中的文件。讀取候選文件的前四個字節,并表示要讀取的剩餘緩沖區的大小。一旦讀回剩餘的數據,字節将被反轉,以顯示暫存在内存中的可執行載荷。預期的 PE 文件應該是特定導出名爲 "StartAction" 的 DLL。該導出的地址已被解析,然後在内存中啓動。
雖然 DSROLE.dll 的功能最終取決于它解混淆和啓動的任何攻擊載荷,但微軟觀察到該 DLL 被用于啓動 wksprt.exe,該文件與 C2 域進行聯系。Microsoft Defender Antivirus 使用家族名稱 RollSling 檢測 dslole .dll。
Version.dll 攻擊鏈
由 clip.exe 加載時,Version.dll 加載并解密 readme.md 的内容,這是與 Version.dll 一起從攻擊者攻陷的基礎設施下載的文件。文件 readme.md 含有用作多字節 XOR 密鑰的數據,用于解密嵌入在 Version.dll 中的位置無關代碼(PIC)。這個 PIC 加載并啓動最終階段的遠程訪問木馬(RAT)。
圖 2. Readme.md 的組成,被 Version.dll 用作多字節 XOR 密鑰
圖 3. 運用 XOR 密鑰暴露下一階段的代碼塊
圖 4. 從代碼塊中提煉出嵌入式 PE
一旦加載到内存中,第二階段的可執行文件将解密一個嵌入的配置文件,該配置文件含有惡意軟件用于指揮和控制的幾個 URL。在惡意軟件向回調 URL 傳達信号後不久,微軟觀察到一個單獨的進程 iexpress.exe 已創建,并與其他 C2 域進行聯系。Microsoft Defender Antivirus 使用家族名稱 FeedLoad 檢測 Version.dll。
圖 5. Diamond Sleet 攻擊鏈 2 使用 DLL 搜索順序劫持
在成功入侵後,微軟觀察到 Diamond Sleet 通過 LSASS 内存轉儲憑據。
在一些情況下,微軟觀察到 Diamond Sleet 入侵同時利用了攻擊路徑 1 和路徑 2 的工具和技術。
Onyx Sleet 攻擊路徑:用戶帳戶創建、系統發現和載荷部署
在使用 TeamCity 漏洞成功侵入後,Onyx Sleet 在受攻擊系統上創建了一個新的用戶帳戶。這個名爲 krtbgt 的帳戶很可能是爲了冒充合法的 Windows 帳戶名稱 KRBTGT,即 Kerberos 票據授予票據。創建帳戶後,該威脅組織通過 net use 将其添加到了本地管理員組:
net localgroup administrators krtbgt /add
威脅組織還在受感染系統上運行幾個系統發現命令,包括如下:
net localgroup 'Remote Desktop Users ’
net localgroup Administrators
cmd.exe "/c tasklist | findstr Sec"
cmd.exe "/c whoami"
cmd.exe "/c netstat -nabp tcp"
cmd.exe "/c ipconfig /all"
cmd.exe "/c systeminfo"
接下來,威脅組織通過 PowerShell 從攻擊者控制的基礎設施下載一個獨特的攻擊載荷,從而将其部署到受感染的系統。微軟觀察到有獨特攻擊載荷的這些文件路徑:
• C:WindowsTemptemp.exe
• C:WindowsADFSbg inetmgr.exe
該攻擊載荷在啓動後加載并解密嵌入式 PE 資源。然後将這個解密的攻擊載荷被加載到内存中并直接啓動。内部攻擊載荷是一個代理工具,可幫助在受攻擊的主機和攻擊者控制的基礎設施之間建立持久連接。Microsoft Defender Antivirus 将該代理工具檢測爲 HazyLoad。
微軟還觀察到在這條攻擊路徑中利用了攻擊後工具和技術:
•使用攻擊者控制的 krtbgt 帳戶通過遠程桌面協議(RDP)登錄到受感染的設備。
•停止 TeamCity 服務,可能是爲了防止其他威脅團夥訪問。
•通過 LSASS 内存轉儲憑據。
•部署工具來檢索憑據及浏覽器存儲的其他數據。
圖 6. Onyx Sleet 攻擊鏈,用戶帳戶已創建
建議采取的緩解措施
微軟建議采取以下緩解措施,以減小該威脅的影響。
•采用 JetBrains 發布的更新版或緩解措施以解決 CVE-2023-42793。
•使用文末所附的攻陷指标來調查它們是否存在于自己的環境中,并評估潛在的入侵。
•阻止來自 IOC 表中指定的 IP 地址的入站流量。
•使用 Microsoft Defender Antivirus 來防範該威脅。開啓雲交付的保護和自動樣本提交。這些功能使用人工智能和機器學習來快速識别和阻止新的威脅和未知的威脅。
•立即采取行動,解決受影響設備上的惡意活動。如果惡意代碼已經啓動,攻擊者很可能已經完全控制了設備。立即隔離系統,并執行憑據和令牌的重置。
•調查設備時間線,尋找使用其中一個受攻擊帳戶進行橫向移動活動的迹象。檢查攻擊者可能投放實現憑據訪問、橫向移動及其他攻擊活動的其他工具。
•确保 " 安全 DLL 搜索模式 " 已設定。
•打開減小攻擊面的以下規則:
•阻止可執行文件運行,除非它們符合流行程度、年限或受信任列表标準。
攻陷指标(IOC)
下表給出了我們在調查過程中觀察到的 IOC。我們鼓勵客戶調查其環境中的這些指标,并實施檢測和保護機制,以識别過去的相關活動,并防止系統遭到未來攻擊。
相關表詳見以下鏈接的末尾處:
https://www.microsoft.com/en-us/security/blog/2023/10/18/multiple-north-korean-threat-actors-exploiting-the-teamcity-cve-2023-42793-vulnerability/