以紅隊視角看FireEye武器洩漏事件
12月8日,美國頂級安全公司FireEye(中文名:火眼)釋出一則通告稱其內部網路被某個“擁有一流網路攻擊能力的國家”所突破。目前,FireEye正在與聯邦調查局和包括Microsoft在內的其他主要合作伙伴進行積極的調查合作。
多年來FireEye作為全球領先的網路安全廠商由於其與美國政府千絲萬縷的關係,先進的防護產品和其重要的客戶群(政府機構、關鍵基礎設施和大型企業)為大眾所熟知。這次攻擊事件一經公佈,立刻引起了安全界的廣泛關注。
據參與調查的聯邦調查局分析,這次攻擊為FireEye量身定製,使用了過去從未見過的新穎技術組合,高度懷疑是由國家資助的攻擊者開展的。
根據FireEye自己釋出的文章稱,攻擊者只是訪問了某些Red Team評估工具。這些工具模仿了許多網路攻擊者的行為,主要為FireEye的客戶提供基本的滲透測試服務,並沒有包含0day漏洞。此外,攻擊者的目的是要尋求與某些政府客戶有關的資訊,但是沒有證據表明,攻擊者獲取了相關的資訊。FireEye 稱不確定攻擊者是否打算使用這些Red Team工具或公開披露它們。但是,出於謹慎考慮,為了協助防範這些工具被公開的風險,FireEye 已釋出識別這些工具的OpenIOC,Yara,Snort和ClamAV檢測規則,以儘量減少丟失這些工具的潛在影響。具體規則詳見:
https://github.com/fireeye/red_team_tool_countermeasures
綠盟科技M01N安全研究團隊,作為長期關注紅隊技術的研究團隊,第一時間根據釋出的規則對這些被竊取的紅隊工具進行了分析。
洩漏工具
1、紅隊工具梳理
對FireEye洩漏的紅隊工具集的檢測規則檔案進行了梳理分析,綠盟科技M01N安全研究團隊發現所涉及工具包含開源工具、開源工具的二次開發版本以及部分自研武器化工具,基本覆蓋了包括持久化、許可權提升、防禦繞過、憑證獲取、域內資訊收集、橫向移動等攻擊生命週期的各個階段。
FireEye Red Team Toolkit 詳細列表(請見文章結尾)
2、攻擊技術分析
從PowerShell向反射性C#轉變,規避端點檢測
PowerShell已被攻擊組織使用了多年,但隨著攻防博弈的不斷髮展,安全行業的最新防禦技術,包括像指令碼塊日誌記錄,反惡意軟體指令碼介面(AMSI)以及第三方安全供應商針對惡意PowerShell活動檢測都直接導致了基於PowerShell的Post-Explotation攻擊受到諸多限制。之後攻擊組織從PowerShell轉而向反射性C#逐步進行轉變,以圖逃避現代安全防禦體系。
NET開發貫穿整個攻擊生命週期
根據綠盟科技M01N安全研究團隊分析,此次FireEye紅隊洩漏工具,超過90%的工具基於.Net開發,表明FireEye紅隊也在積極跟進攻擊技術發展方向。綠盟科技M01N安全研究團隊從開源社群中觀察到利用C#開發的工具,例如Seatbelt、SharpUp以及SharpView等開源工具,可以協助紅隊完成攻擊生命週期的各個階段性任務,但在持久化階段有所欠缺。FireEye的紅隊率先對此進行了綜合性研究並完成了武器化,於2019年9月對外發布了SharPersist: Windows Persistence Toolkit in C# FireEye Inc持久化工具集,而該工具也同樣是此次事件中的一部分。不僅如此,還可以看到包括SharPivot、SharPsack、SharPY等類似工具。
SharPersist支援多種永續性技術
利用.NET與無檔案攻擊的良好相容性,構建一系列基於.NET的自研工具
在開發語言向C#轉變同時,.NET靈活而強大的語言特性與DLR的引入使其尤其適於無檔案攻擊的施展。得益於成熟的CLR Hosting技術,.NET程式集可靈活地在記憶體中載入而無需在本地殘留檔案。FireEye也無疑順應著.NET與無檔案攻擊的良好相容性,構建一系列基於.NET的自研工具,並積極地將所有工具納入無檔案攻擊的體系中。即便是.NET體系之外的Win32程式也可透過MATRYOSHKA工具將其轉變為shellcode並採用Process Hollowing的方法進行無檔案載入。
綜合利用了多種開發語言的優勢以達到最佳的實戰效果
雖然FireEye團隊採用.NET作為主要開發語言,但也綜合利用了多種開發語言的優勢以達到最佳的實戰效果。例如使用D語言進行後門的開發(DSHELL)、利用ruby載入shellcode,實現比較好的防禦規避效果;使用python與golang實現跨平臺的良好相容性。
包含了大量首次披露的LOLBAS利用方法
值得注意的是佔此次披露工具集中很大比例的PGF(PayloadGenerationFramework) 武器家族,包含了大量LOLBAS利用方法,部分執行方法可能為首次披露但還需確認。
3、涉及漏洞利用情況
從FireEye公佈的資訊來看,已被竊取的紅隊工具中利用了16個已知漏洞(非0day),所涉及物件包括作業系統,企業常用應用軟體、網路裝置等。經綠盟科技M01N安全研究團隊核實確認,這些漏洞均已公開漏洞POC,絕大部分也已有公開的漏洞EXP。側面推測,這批紅隊工具中也包含其對漏洞利用的武器化,以輔助完成對企業對紅隊評估。從紅隊技術來看,已公開EXP的漏洞在眾多大型內部網路中仍然沒有完全被修復,利用成功率仍然可觀。同時,也看到修復這些漏洞將有效限制紅隊工具發揮作用。
CVE編號 | 漏洞名稱 | 漏洞評級 | 公開漏洞EXP情況 |
CVE-2014-1812 | Microsoft Windows組策略許可權提升漏洞 | 高 | 已有公開EXP |
CVE-2019-0708 | Microsoft Windows RDP遠端執行漏洞 | 高 | 已有公開EXP (無穩定利用) |
CVE-2017-11774 | Microsoft Outlook 安全功能繞過 | 中 | 已有公開EXP |
CVE-2018-15961 | Adobe ColdFusion 任意檔案上傳 | 高 | 已有公開EXP |
CVE-2019-19781 | Citrix ADC/Citrix Gateway 遠端程式碼執行 | 高 | 已有公開EXP |
CVE-2019-3398 | Confluence 路徑穿越漏洞 | 中 | 已有公開EXP |
CVE-2019-11580 | Atlassian Crowd 任意檔案上傳 | 高 | 已有公開EXP |
CVE-2018-13379 | Fortigate SSL VPN 任意檔案讀取 | 高 | 已有公開EXP |
CVE-2020-0688 | Microsoft Exchange Server遠端程式碼執行 | 高 | 已有公開EXP |
CVE-2019-11510 | Pulse Secure SSL VPN 任意檔案讀取 | 高 | 已有公開EXP |
CVE-2019-0604 | Microsoft SharePoint 遠端程式碼執行 | 高 | 已有公開EXP |
CVE-2020-10189 | Zoho ManageEngine Desktop Central遠端執行 | 高 | 已有公開EXP |
CVE-2019-8394 | Zoho ManageEngine ServiceDesk Plus 任意檔案上傳 | 高 | 已有公開EXP |
CVE-2016-0167 | Microsoft Win32k 許可權提升漏洞 | 高 | 已有公開POC |
CVE-2020-1472 | Microsoft Netlogon 域內許可權提升漏洞 | 高 | 已有公開EXP |
CVE-2018-8581 | Microsoft Exchange Server 許可權提升漏洞 | 高 | 已有公開EXP |
FireEye紅隊
FireEye在APT情報狩獵及APT組織跟蹤方面的能力是世界一流的,雖然此次受到網路攻擊,但從洩漏的工具來看也能注意到FireEye在紅隊方面對一些能力:
1、 對手模擬技術
紅隊存在的意義在於模擬真實的高階威脅,模仿對手技術對企業網路進行模擬攻擊發現可能存在的安全短板。從洩漏工具可以看出其中有大量類APT的工具、技術和手段,比如在利用Norton等安全產品的簽名檔案進行持久化,並將其武器化為CobaltStrike的擴充套件,種種都印證了FireEye紅隊確實是依靠其高階威脅情報體系展開紅隊評估工作,包括模擬已知的和未知的威脅。
2、熱點技術
從綠盟科技M01N安全研究團隊對工具的整體梳理到所涉及部分技術的分析,不難看出FireEye紅隊極具國際紅隊的技術風格,並能把握攻擊技術發展的趨勢去做創新,工具涉及了近兩年比較熱門的紅隊技術,比如CLR Hosting、Gadget2JScript、Process Hollowing等。
仍需警惕工具被暴露及濫用帶來的風險
雖然這批工具並未包含0day,從紅隊角度來看也並沒有涉及太多新的技術,大多為現有技術的武器化實現,但這些較為成熟的專業紅隊工具一旦被暴露出來,極可能被惡意攻擊者濫用,導致嚴重的安全事故。從FireEye急於釋放規則的動作來看,這些規則極可能還沒有被大規模檢測,建議各安全廠商協助企業客戶積極防禦,防患於未然。
FireEye Red Team Toolkit 詳細列表:
工具名稱 | 開發語言 | 工具性質 | 功能描述 |
ADPASSHUNT | .NET | 自研 | 在GPP、Autoruns以及AD物件中竊取AD憑據 |
ALLTHETHINGS | .NET | 自研 | 可能為武器化過程的實驗性測試專案 |
BEACON | 自研 | 對Cobalt Strike的定製化配置和擴充套件 | |
BELTALOWDA | .NET | 開源 | SEATBELT工具,從攻擊性和防禦性安全形度對主機執行安全檢查 |
COREHOUND | .NET | 自研 | |
DSHELL | D語言 | 自研 | 基於D語言開發的後門 |
DTRIM | .NET | 自研 | |
DUEDLLIGENCE | .NET | 開源 | 包含穩定的程式注入以及3種DLL載入方法的載入器 |
EWSRT | html,powershell | 自研 | |
EXCAVATOR | .NET | 自研 | |
FLUFFY | .NET | 自研 | 整合Rubeus工具集來進行一些Kerberos濫用操作 |
G2JS | .NET | 開源 | Gadget2JScript,.NET序列化工具,將.NET Assembly轉換為可執行的JScript指令碼 |
GETDOMAINPASSWORDPOLICY | .NET | 自研 | |
GPOHUNT | .NET | 自研 | 域組策略相關的工具 |
SHARPGENERATOR | .NET | 自研 | |
SHARPSECTIONINJECTION | .NET | 自研 | |
IMPACKETOBF | python | 自研 | 基於python實現了smbexec與wmiexec的工具,並對通訊進行了混淆 |
INVEIGHZERO | .NET | 開源 | 用於網路嗅探與中間人攻擊的工具集 |
WMIRUNNER | .NET | 自研 | |
JUSTASK | .NET | 自研 | |
KEEFARCE | .NET | 自研 | |
KEEPERSIST | .NET | 自研 | |
LNKSMASHER | python | 自研 | 連結釣魚攻擊生成框架 |
LUALOADER | .NET | 自研 | |
MATRYOSHKA | ruby,python | 自研 | 將PE檔案轉換為shellcode,用process hollowing的方法載入 |
MEMCOMP | .NET | 自研 | 使用記憶體中編譯技術的載入器 |
MOFCOMP | .NET | 自研 | 從已知模板中建立的可疑WMI Managed Object Format (MOF)檔案 |
MSBUILDME | (技術)從msbuild.exe建立使用者程式 | ||
NOAMCI | .NET | 開源 | 利用DInvoke進行Amsi Bypass |
PGF | .NET | 自研 | PGF全稱為PayloadGenerationFramework(payload生成框架),包含了一系列無檔案執行方法以及利用正常程式側載入DLL執行惡意程式碼的方法 |
SHARPGREP | .NET | 自研 | |
PREPSHELLCODE | .NET | 自研 | |
PUPPYHOUND | .NET | 自研 | 由開源的域內資訊收集工具SharpHound3修改而來,名稱與特徵字串改為PuppyHound |
PXELOOT | .NET | 自研 | 幫助發現與利用Windows Deployment Services(WDS)中的配置錯誤 |
REDFLARE | python | 自研 | 未公開的支援Windows/Linux/Mac全平臺的C2框架 |
REDFLARE (Gorat) | golang | 自研 | 使用golang開發的RedFlare受控端RAT |
RESUMEPLEASE | vba | 自研 | |
REVOLVER | .NET | 自研 | |
SHARPUTILS | .NET | 開源 | 輔助.NET武器化開發的第三方庫 |
RUBEUS | .NET | 開源 | 基於.NET的操作Kerberos的工具集 |
SAFETYKATZ | .NET | 開源 | 基於.NET的Mimikatz修改版 |
SHARPERSIST | .NET | 自研 | 整合一系列方法的.NET持久化框架:註冊 COM CLISID、熱鍵持久化、服務失敗濫用持久化、利用keepass和tortoisesvn等第三方程式 |
SHARPIVOT | .NET | 自研 | 整合一系列方法的.NET Pivot 框架:計劃任務、WMI、RPC、谷歌更新服務劫持、潛在控制程式碼汙染(Possible Handler Poisoning) |
SHARPSACK | .NET | 自研 | |
SHARPSCHTASK | .NET | 自研 | 基於.NET的計劃任務相關工具 |
SHARPSTOMP | .NET | 自研 | 基於.NET的檔案建立/修改/訪問時間戳修改工具 |
SHARPY | .NET | 自研 | 基於.NET的載入器 |
SHARPZEROLOGON | .NET | 自研 | 基於.NET的ZEROLOGON漏洞(CVE-2020-1472)利用工具 |
SINFULOFFICE | .NET | 自研 | 基於.NET的Office文件OLE利用生成器 |
NETASSEMBLYINJECT | .NET | 自研 | .NET Assembly注入工具 |
TITOSPECIAL | .NET | 自研 | 基於.NET的記憶體dump(憑據獲取)工具 |
TRIMBISHOP | .NET | 自研 | 基於.NET的程式注入工具 |
NETSHSHELLCODERUNNER | .NET | 自研 | 利用netsh執行shellcode |
WEAPONIZE | (待驗證)可能是一種未公開的LOLBAS方法,利用TSTHEME.EXE來執行,或可能是程式注入 | ||
WILDCHILD | .NET | 自研 | 基於.NET的HTA程式碼執行器生成工具(支援VBScript與JScript) |
WMIRUNNER | .NET | 自研 | 基於.NET的WMI執行工具 |
WMISHARP | .NET | 自研 | |
WMISPY | .NET | 自研 | 基於.NET的利用WMI進行資訊收集的工具 |
UNCATEGORIZED/DOHC2 | .NET,python | 開源 | 模仿CobaltStrike的DNS beacon的C2框架 |
UNCATEGORIZED/MODIFIEDSHARPVIEW | .NET | SharpView指令碼,用於完成域內資訊收集 | |
UNCATEGORIZED/PRAT | .NET | ||
UNCATEGORIZED/REDTEAMMATERIALS | .NET | ||
UNCATEGORIZED/SHARPDACL | .NET | ||
UNCATEGORIZED/SHARPDNS | .NET | ||
UNCATEGORIZED/SHARPGOPHER | .NET | ||
UNCATEGORIZED/SHARPNATIVEZIPPER | .NET | ||
UNCATEGORIZED/SHARPNFS | .NET | ||
UNCATEGORIZED/SHARPPATCHCHECK | .NET | ||
UNCATEGORIZED/SHARPSQLCLIENT | .NET | ||
UNCATEGORIZED/SHARPTEMPLATE | .NET | ||
UNCATEGORIZED/SHARPWEBCRAWLER | .NET | ||
UNCATEGORIZED/SHARPZIPLIBZIPPER | .NET | ||
UNCATEGORIZED/CredSnatcher | .NET | ||
UNCATEGORIZED/WCMDump | .NET |
關於 M01N
綠盟科技M01N安全研究團隊
專注於Red Team技術、APT等高階攻擊技術、戰術及威脅研究,涉及Web安全、終端安全、AD安全、雲安全等多個領域的攻擊技術研究。透過研判現網攻擊技術發展方向,以攻促防,為風險識別及威脅對抗提供決策支撐,全面提升安全防護能力。
綠盟科技M01N安全研究團隊是一個低調的團隊,但我們在技術的探索絕不低調,歡迎有相同志趣的小夥伴加入我們,共同研究紅隊技術,也非常歡迎對紅隊技術、紅隊工具研究方向有興趣的同學聯絡與交流。
Location: 北京、西安、武漢
相關文章
- 以藍軍視角跟蹤和分析CANVAS攻擊框架洩露事件2021-03-06Canvas框架事件
- 上帝視角看 TypeScript2020-08-04TypeScript
- JVM視角看物件建立2018-08-12JVM物件
- 訂單視角看支付2024-02-28
- 分析記憶體洩漏和goroutine洩漏2021-10-22記憶體Go
- 前端視角看視訊處理2022-06-10前端
- 誰是魚誰是餌?紅隊視角下蜜罐識別方式彙總2022-06-23
- 15個漏洞詳情,FireEye被盜網路武器庫分析2020-12-09
- 以資訊的視角思考即刻2019-03-04
- go timer 洩漏2024-11-12Go
- 納尼,Java 存在記憶體洩洩洩洩洩洩漏嗎?2019-05-22Java記憶體
- Handler洩漏處理2019-01-22
- 解決記憶體洩漏(1)-ApacheKylin InternalThreadLocalMap洩漏問題分析2020-07-22記憶體Apachethread
- 記憶體洩漏問題分析之非託管資源洩漏2020-12-31記憶體
- js記憶體洩漏2019-02-16JS記憶體
- Android記憶體洩漏2018-03-11Android記憶體
- Android 記憶體洩漏2020-11-19Android記憶體
- jvm 記憶體洩漏2024-11-24JVM記憶體
- Goroutine 洩漏防治神器 goleak2021-03-28Go
- Java記憶體洩漏2020-12-06Java記憶體
- 從全域性視角看資料結構2022-02-20資料結構
- 換個視角來看git命令與程式碼庫發生網路互動報錯事件2018-04-13Git事件
- FireEye紅隊工具遭盜取,騰訊安全已檢測到數百個符合規則的利用樣本2020-12-10
- 記憶體洩漏的原因2018-07-10記憶體
- valgrind 記憶體洩漏分析2021-05-17記憶體
- 資料洩漏、刪除事件頻發,企業應如何構建安全防線?2022-07-26事件
- 記一次 .NET 某流媒體獨角獸 API 控制程式碼洩漏分析2021-08-30API
- 以遊戲玩家的視角開啟設計模式2021-04-03遊戲設計模式
- 技術團隊管理者的問題視角2018-11-11
- 前端面試查漏補缺--(十三) 記憶體洩漏2019-02-24前端面試記憶體
- 記憶體洩漏治理實戰:TDengine 研發團隊使用 Windbg 的經驗分享2024-02-29記憶體
- 大規模資料洩漏事件背後:初創公司安全防護幾近裸奔2019-03-01事件
- 從服務端視角看高併發難題2018-11-02服務端
- 換個視角來看TypeScript中的交叉運算2023-03-03TypeScript
- iOS檢測記憶體洩漏2018-12-06iOS記憶體
- Android記憶體洩漏場景2019-03-09Android記憶體
- ThreadLocal記憶體洩漏問題2018-09-25thread記憶體
- PHP 記憶體洩漏分析定位2018-03-13PHP記憶體