Untangling KNOTWEED:使用 0-day 漏洞的歐洲私營部門攻擊者
Microsoft 威脅情報中心 (MSTIC) 和 Microsoft 安全響應中心 (MSRC )在針對歐洲和中美洲客戶的有限且有針對性的攻擊。PSOA(MSTIC 跟蹤為 KNOTWEED)開發了名為 Subzero 的惡意軟件,用于這些攻擊。
此博客詳細介紹了 Microsoft 對觀察到的 KNOTWEED 活動以及用于針對我們客戶的針對性攻擊的相關惡意軟件的分析。此信息將與我們的客戶和行業合作伙伴共享,以改進對這些攻擊的檢測。鼓勵客戶加快部署 2022 年 7 月的 Microsoft 安全更新,以保護其系統免受使用 CVE-2022-22047 的攻擊。Microsoft Defender Antivirus 和 Microsoft Defender for Endpoint 還實施了針對 KNOTWEED 的惡意軟件和工具的檢測。
微軟也將其稱為網絡雇傭軍的PSOA通過各種商業模式銷售黑客工具或服務。這種類型的參與者的兩種常見模型是訪問即服務和黑客出租。在訪問即服務中,參與者出售完整的端到端黑客工具,購買者可以在操作中使用這些工具,而 PSOA 不參與任何針對操作的目標或操作。在 hack-for-hire 中,購買者將詳細信息提供給演員,然后演員進行有針對性的操作。根據觀察到的攻擊和新聞報道,MSTIC 認為 KNOTWEED 可能會融合這些模型:他們將 Subzero 惡意軟件出售給第三方,但也觀察到在某些攻擊中使用 KNOTWEED 相關的基礎設施,這表明他們有更直接的參與。
誰是 KNOTWEED?
KNOTWEED 是一家總部位于奧地利的 PSOA,名為 DSIRF。DSIRF網站[網絡檔案鏈接] 稱,他們“為技術、零售、能源和金融領域的跨國公司”提供服務,并且他們擁有“一套收集和分析信息的高度復雜的技術。” 他們公開提供多項服務,包括“通過深入了解個人和實體來加強盡職調查和風險分析流程”和“高度成熟的紅隊挑戰貴公司最關鍵的資產”。
然而,多條 新聞 報道已將 DSIRF 與名為 Subzero 的惡意軟件工具集的開發和嘗試銷售聯系起來。MSTIC 發現 Subzero 惡意軟件通過多種方法部署,包括 2021 年和 2022 年在 Windows 和 Adob??e Reader 中的 0-day 攻擊。作為我們對該惡意軟件實用性調查的一部分,微軟與 Subzero 受害者的通信顯示,他們沒有委托任何紅隊或滲透測試,并確認這是未經授權的惡意活動。迄今為止,觀察到的受害者包括奧地利、英國和巴拿馬等國家的律師事務所、銀行和戰略咨詢公司。需要注意的是,一個國家/地區的目標識別并不一定意味著 DSIRF 客戶居住在同一個國家/地區,因為國際定位很常見。
MSTIC 發現 DSIRF 與這些攻擊中使用的漏洞和惡意軟件之間存在多個鏈接。其中包括直接鏈接到 DSIRF 的惡意軟件使用的命令和控制基礎設施、在一次攻擊中使用的與 DSIRF 相關的 GitHub 帳戶、頒發給 DSIRF 的代碼簽名證書用于簽署漏洞利用以及其他開源新聞報道將 Subzero 歸因于 DSIRF。
觀察到的演員活動
KNOTWEED 初始訪問
MSTIC 發現 KNOTWEED 的 Subzero 惡意軟件以多種方式部署。在隨后的部分中,Subzero 的不同階段由它們的 Microsoft Defender 檢測名稱來表示:Jumplump表示持久加載程序,Corelump表示主要惡意軟件。
KNOTWEED 在 2022 年的利用
2022 年 5 月,MSTIC 發現一個 Adob??e Reader 遠程代碼執行 (RCE) 和一個 0-day Windows 權限提升利用鏈被用于導致部署 Subzero 的攻擊。這些漏洞被打包成一個 PDF 文檔,通過電子郵件發送給受害者。微軟無法獲得漏洞利用鏈的 PDF 或 Adob??e Reader RCE 部分,但受害者的 Adob??e Reader 版本于 2022 年 1 月發布,這意味著使用的漏洞利用要么是 1 月至 5 月開發的 1 天漏洞利用,要么是0天漏洞利用。基于 KNOTWEED 對其他 0-day 漏洞的廣泛使用,我們以中等信心評估 Adob??e Reader RCE 是一個 0-day 漏洞利用。MSRC 分析了 Windows 漏洞利用,發現它是一個 0-day 漏洞利用,然后在 2022 年 7 月修補為 CVE-2022-22047。有趣的是,
CVE-2022-22047 漏洞與Windows 上客戶端服務器運行時子系統 (CSRSS) 中的激活上下文緩存問題有關。在較高級別,該漏洞可能使攻擊者能夠提供精心制作的程序集清單,這將在激活上下文緩存中為任意進程創建惡意激活上下文。這個緩存的上下文會在下一次進程產生時使用。
CVE-2022-22047 被用于 KNOTWEED 相關的權限提升攻擊。該漏洞還提供了逃避沙箱的能力(有一些警告,如下所述)并實現系統級代碼執行。漏洞利用鏈首先從沙盒 Adob??e Reader 渲染器進程將惡意 DLL 寫入磁盤。然后,CVE-2022-22047 漏洞利用通過提供具有未記錄屬性的應用程序清單來針對系統進程,該屬性指定了惡意 DLL 的路徑。然后,下一次產生系統進程時,使用惡意激活上下文中的屬性,從給定路徑加載惡意DLL,實現系統級代碼執行。
需要注意的是,利用 CVE-2022-22047 需要攻擊者能夠將 DLL 寫入磁盤。然而,在沙盒的威脅模型中,例如 Adob??e Reader 和 Chromium,在攻擊者無法控制路徑的情況下寫出文件的能力并不被認為是危險的。因此,這些沙盒并不是利用 CVE-2022-22047 的障礙。
KNOTWEED 在 2021 年的利用
2021 年,MSRC 收到報告稱兩個 Windows 提權漏洞(CVE-2021-31199和CVE-2021-31201)與 Adob??e Reader 漏洞(CVE-2021-28550)一起使用,所有這些漏洞都在 6 月修補2021. MSTIC 能夠確認在用于部署 Subzero 的漏洞鏈中使用了這些。
我們后來能夠將 Subzero 的部署與第四個漏洞相關聯,該漏洞與 Windows Update Medic 服務 ( CVE-2021-36948 ) 中的 Windows 提權漏洞有關,該漏洞允許攻擊者強制服務加載任意簽名的動態鏈接庫。攻擊中使用的惡意 DLL 由“DSIRF GmbH”簽名。
圖 1. DSIRF 對 Medic Service 漏洞利用 DLL 的有效數字簽名
惡意 Excel 文檔
除了漏洞利用鏈,導致部署 Subzero 的另一種訪問方法是偽裝成房地產文檔的 Excel 文件。該文件包含一個惡意宏,該宏被來自 Kama Sutra 的大量良性評論、字符串混淆和 Excel 4.0 宏的使用所混淆。

圖 2:KNOTWEED Excel 宏混淆的兩個示例
在運行時對字符串進行去混淆處理后,VBA 宏使用ExecuteExcel4Macro函數調用本機 Win32 函數以將 shellcode 加載到使用VirtualAlloc分配的內存中。在調用 CreateThread執行 shellcode之前,使用memset將每個操作碼單獨復制到新分配的緩沖區中。
圖 3:復制操作碼
圖 4:在 shellcode 上調用 CreateThread
以下部分描述了宏執行的 shellcode。
KNOTWEED 惡意軟件和策略、技術和程序 (TTP)
Corelump 下載器和加載器 shellcode
下載器 shellcode 是從漏洞利用鏈或惡意 Excel 文檔執行的初始 shellcode。shellcode 的目的是從參與者的命令和控制 (C2) 服務器中檢索Corelump第二階段惡意軟件。下載器 shellcode 下載 JPEG 圖像,該圖像包含附加到文件末尾的額外加密數據(經過表示 JPEG 文件結尾的0xFF 0xD9標記)。然后將 JPEG 寫入用戶的%TEMP%目錄。

圖 5:嵌入了加載器 shellcode 和 Corelump 的圖像之一
下載器 shellcode 搜索緊跟 JPEG 結尾的 16 字節標記。找到標記后,下載器 shellcode RC4 使用接下來的 16 個字節作為 RC4 密鑰解密加載器 shellcode。最后,加載器 shellcode RC4 使用第二個 RC4 密鑰解密Corelump惡意軟件,并將其手動加載到內存中。
Corelump 惡意軟件
Corelump是主要的有效載荷,專門駐留在內存中以逃避檢測。它包含多種功能,包括鍵盤記錄、捕獲屏幕截圖、泄露文件、運行遠程 shell 以及運行從 KNOTWEED 的 C2 服務器下載的任意插件。
作為安裝的一部分,Corelump會復制合法的 Windows DLL 并用惡意代碼覆蓋其中的部分。作為此過程的一部分,Corelump還修改了 PE 標頭中的字段以適應惡意更改,例如添加新的導出函數、禁用Control Flow Guard以及使用來自CheckSumMappedFile 的計算值修改圖像文件校驗和。這些木馬化的二進制文件 ( Jumplump ) 被放到磁盤的C:\Windows\System32\spool\drivers\color\中,并且修改了 COM 注冊表項以保持持久性(有關 COM 劫持的更多信息,請參閱行為部分)。
Jumplump裝載機
Jumplump負責將Corelump從 %TEMP% 目錄中的 JPEG 文件加載到內存中。如果Corelump不存在,Jumplump 會嘗試從 C2 服務器再次下載它。Jumplump和下載器shellcode 都被嚴重混淆,使分析變得困難,大多數指令后跟一個 jmp 到另一個指令/jmp 組合,在整個程序中提供了一個復雜的控制流。
圖 6:反匯編顯示 Jumplump 中使用的 jmp/指令混淆
墨西哥和 PassLib
還使用定制的實用工具 Mex 和 PassLib 觀察了 KNOTWEED。這些工具由 KNOTWEED 開發,并具有源自公開來源的功能。例如,Mex 是一個命令行工具,其中包含從 GitHub 復制的幾個紅隊或安全插件(如下所列):

PassLib 是一個自定義密碼竊取工具,能夠從各種來源轉儲憑據,包括 Web 瀏覽器、電子郵件客戶端、LSASS、LSA 機密和 Windows 憑據管理器。
妥協后行動
在使用 KNOTWEED 惡意軟件的受害者中,觀察到了各種攻擊后行為:
- 將UseLogonCredential設置為“1”以啟用明文憑據:
- 注冊添加 HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
- 通過comsvc??s.dll轉儲憑證:
- rundll32.exe C:\Windows\System32\comsvc??s.dll, MiniDump
- 嘗試使用來自 KNOTWEED IP 地址的轉儲憑據訪問電子郵件
- 使用 Curl 從公共文件共享(例如vultrobjects[.]com)下載 KNOTWEED 工具
- 直接從與 DSIRF 關聯的帳戶創建的 GitHub gist 運行 PowerShell 腳本
KNOTWEED 基礎設施連接到 DSIRF
以 MSTIC 識別的已知命令和控制域acrobatrelay[.]com為中心,RiskIQ 擴展了 KNOTWEED 攻擊基礎設施的視野。利用 SSL 證書和特定于該組并與該域相關聯的其他網絡指紋使用的獨特模式,RiskIQ 確定了 KNOTWEED 控制下的大量額外 IP 地址。該基礎設施主要由 Digital Ocean 和 Choopa 托管,至少自 2020 年 2 月以來一直在積極為惡意軟件提供服務,并一直持續到撰寫本文時。
RiskIQ 接下來利用被動 DNS 數據來確定這些 IP 在惡意時解析到哪些域。這個過程產生了幾個直接鏈接到 DSIRF 的域,包括demo3[.]dsirf[.]eu(公司自己的網站),以及幾個似乎已用于惡意軟件開發的子域,包括debugmex[.]dsirflabs[.] eu(可能是用于使用定制實用工具 Mex 調試惡意軟件的服務器)和szstaging[.]dsirflabs[.]eu(可能是用于暫存 Subzero 惡意軟件的服務器)。
檢測與預防
Microsoft 將繼續監控 KNOTWEED 活動并為我們的客戶實施保護措施。下面詳述的當前檢測和 IOC 已到位,并通過我們的安全產品保護 Microsoft 客戶。下面還提供了其他高級搜索查詢,以幫助組織擴展對這些攻擊的保護和調查。
行為
Corelump將Jumplump加載程序 DLL 放到C:\Windows\System32\spool\drivers\color\。這是惡意軟件以及一些合法程序使用的常用目錄,因此應監視 PE 文件到該文件夾??的寫入。
Jumplump使用 COM 劫持實現持久性,修改 COM 注冊表項以指向C:\Windows\System32\spool\drivers\color\中的Jumplump DLL 。應監視對默認系統 CLSID 值的修改以檢測此技術(例如,HKLM\SOFTWARE\Classes\CLSID\{GUID}\InProcServer32 默認值)。下面列出了Jumplump使用的五個 CLSID及其在 Windows 11 上的原始干凈值:
- {ddc05a5a-351a-4e06-8eaf-54ec1bc2dcea} = “ %SystemRoot%\System32\ApplicationFrame.dll ”
- {1f486a52-3cb1-48fd-8f50-b8dc300d9f9d} = “ %SystemRoot%\system32\propsys.dll ”
- {4590f811-1d3a-11d0-891f-00aa004b2e24} = “ %SystemRoot%\system32\wbem\wbemprox.dll ”
- {4de225bf-cf59-4cfc-85f7-68b90f185355} = “ %SystemRoot%\system32\wbem\wmiprvsd.dll ”
- {F56F6FDD-AA9D-4618-A949-C1B91AF43B1A} = “ %SystemRoot%\System32\Actioncenter.dll ”
可以根據命令行檢測到許多妥協后操作。客戶應監控可能的惡意活動,例如 PowerShell 從 Internet 位置執行腳本、修改經常濫用的注冊表項(例如HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest)以及通過小型轉儲轉儲 LSASS 憑證。
建議的客戶操作
參與者使用并在觀察到的參與者活動部分中描述的技術可以通過采用下面提供的安全考慮來緩解:
- 所有客戶都應優先修補CVE-2022-22047。
- 確認 Microsoft Defender Antivirus 已更新至安全智能更新1.371.503.0或更高版本,以檢測相關指標。
- 使用包含的入侵指標來調查它們是否存在于您的環境中并評估潛在的入侵。
- 更改 Excel 宏安全設置以控制運行哪些宏以及在什么情況下打開工作簿。客戶還可以通過確保反惡意軟件掃描接口 ( AMSI ) 的運行時宏掃描處于打開狀態來阻止惡意 XLM 或 VBA 宏。如果宏運行時掃描范圍的組策略設置設置為“對所有文件啟用”或“對低信任文件啟用”,則此功能(默認啟用)處于啟用狀態。
- 啟用多因素身份驗證 (MFA) 以減輕可能受到破壞的憑據,并確保對所有遠程連接強制執行 MFA。注意: Microsoft 強烈建議所有客戶下載并使用Microsoft Authenticator等無密碼解決方案來保護帳戶。
- 查看遠程訪問基礎架構的所有身份驗證活動,特別關注配置了單因素身份驗證的帳戶,以確認真實性并調查任何異常活動。
檢測
Microsoft Defender 防病毒軟件
Microsoft Defender 防病毒軟件檢測 KNOTWEED 使用的惡意軟件工具和植入物,從簽名版本 1.371.503.0開始,其名稱如下:
- 后門:O97M/JumplumpDropper
- 木馬:Win32/Jumpump
- 木馬:Win32/Corelump
- 黑客工具:Win32/Mexlib
- 木馬:Win32/Medcerc
- 行為:Win32/SuspModuleLoad
用于終結點的 Microsoft Defender
Microsoft Defender for Endpoint 客戶可能會看到以下警報,表明可能存在攻擊。這些警報不一定表明 KNOTWEED 受到威脅:
- COM 劫持– 檢測多種行為,包括JumpLump惡意軟件持久性技術。
- 使用 CTF 模塊進行可能的權限提升 - 檢測與 CVE-2022-2204 相關的可能的權限提升行為;還檢測通過啟動提升的進程并加載不受信任的模塊以執行惡意活動來執行本地權限提升的嘗試
- 檢測到 KNOTWEED 演員活動– 檢測 KNOTWEED 演員活動
- WDigest 配置更改- 檢測可能從UseLogonCredential注冊表項更改中檢索明文密碼
- 敏感憑證內存讀取– 通過小型轉儲檢測 LSASS 憑證轉儲
- 可疑的 Curl 行為- 檢測到使用 Curl 從公共文件共享下載 KNOTWEED 工具
- 可疑的屏幕捕獲活動- 檢測Corelump捕獲受感染系統屏幕截圖的行為