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安全研究团队,作为长期关注红队技术的研究团队,第一时间根据发布的规则对这些被窃取的红队工具进行了分析。
泄漏工具
- 红队工具梳理
对FireEye泄漏的红队工具集的检测规则文件进行了梳理分析,绿盟科技M01N安全研究团队发现所涉及工具包含开源工具、开源工具的二次开发版本以及部分自研武器化工具,基本覆盖了包括持久化、权限提升、防御绕过、凭证获取、域内信息收集、横向移动等攻击生命周期的各个阶段。
FireEye Red Team Toolkit 详细列表(请见文章结尾)
- 攻击技术分析
- 从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等类似工具。
- 利用.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利用方法,部分执行方法可能为首次披露但还需确认。
- 涉及漏洞利用情况
从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在红队方面对一些能力:
- 对手仿真技术
红队存在的意义在于模拟真实的高级威胁,模仿对手技术对企业网络进行仿真攻击发现可能存在的安全短板。从泄漏工具可以看出其中有大量类APT的工具、技术和手段,比如在利用Norton等安全产品的签名文件进行持久化,并将其武器化为CobaltStrike的扩展,种种都印证了FireEye红队确实是依靠其高级威胁情报体系展开红队评估工作,包括模拟已知的和未知的威胁。
- 热点技术
从绿盟科技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: 北京、西安、武汉