文:TrustedSec红队负责人
近年来,网络渗透测试主要分为两大类:外部测试和内部测试。外部测试通常限定在IP地址/主机名范围内,采用黑盒方式(不提供凭据,不远程访问,全靠自己发现)。内部测试一般使用寄送给客户的网络植入设备进行。该设备通常包含一个Linux发行版,如Kali、Ubuntu或BlackArch,并与总部建立反向SSH隧道,测试人员通过它进行连接和测试。
2024年,大多数组织已经对这些概念相当熟悉。对重大中断的担忧基本没有实现,尽管偶尔会出现一批锁定的账户,有人愚蠢到在Active Directory中乱改Naming Context配置,但总的来说,攻防安全行业最大的污点是那些压根不测试,只是将nmap/Nessus结果打印成报告的测试公司。我现在仍能听说此事的发生,这与10年前一样令人扼腕。对于上述公司,我要加倍吐槽,因为在基于行为的控制出现之前,渗透测试对懂行的人来说不仅简单,而且令人陶醉。
攻击团队多年来一直依靠诸如Responder、Mimikatz和PowerSploit之类的常规手段轻松获取域管权限。红队在每次会议演讲中都反复强调"基础"的重要性(最小权限访问、系统补丁、良好的安全基线等),甚至羞辱防守方,发推文说"我们连最基本的都做不好,还怎么……"。防守方淹没在泪水和内疚中,注定要面对无休止的数据泄露、节假日值班噩梦,以及红队对McAfee的嘲笑,红牛加持下的狂欢让哈希值在屏幕上飞速闪过。然而,这种得意忘形没能持续多久。
防守方也不甘示弱,像往常一样做出了调整,有时效果还不错:他们适应了。防守方如同走出青春期的羞怯,意识到杀毒软件救不了他们,开始大量摄入内部日志,决心提高关键点(当时是终端)的可见性。整个行业开始大规模关注重要的事件代码,如4688、4662和5145,了解到他们一直苦苦寻找的宝贵数据其实只需要正确的组策略就能启用。
海量日志被整齐地放入开源和商业SIEM中,如Splunk、Graylog和ELK Stack。紫队测试应运而生,在改进和调优检测方面大显身手,首次为SOC提供了高质量告警的仪表板。而那些没有删除这些仪表板的SOC,至少有了一些安稳的睡眠。
不仅内部防御团队在关注,供应商也注意到现有的安全工具无法阻止几乎所有攻击,市场上亟需能真正检测和防范实际攻击的工具(不仅仅是"阻止mimikatz"之类)。全新产品面市,有史以来第一次,似乎让企业信息安全的终极梦想成为现实:优质安全可以买到。EDR产品以惊人的力度登陆市场,短短几年内就被广泛采用。我们渗透测试的绝大多数客户现在基本上只使用两种终端控制:CrowdStrike或Microsoft。两者都很有效。最后,防守方意识到一个一直存在的事实:战场属于他们。
红队习惯了多年来密码基本上是送到手边的(CCDC的情况下简直是字面意思,但这对我们的自负没有帮助),现在被打得节节败退,开始重新学习好奇的艺术,他们已经在Responder日志的无尽供应中变得迟钝。红队不习惯被发现,于是启动了"人间蒸发协议",开始从社交媒体上删除TTP。对抗模拟(AdSim)和红队测试成为主角,让红队有更多时间适应防御措施并研究新的攻击方法。尽管自尊心受挫,防御能力的大幅提高迫使顶级红队在内部技术和工具上做出重大投资,并借此有效改善客户防御。善于利用这一点的组织在安全态势方面取得了巨大进步。
尽管人们对OST(进攻性安全工具)大呼小叫,对C2和"绕过"等术语展开了琐碎但搞笑的争论,但红蓝对抗方法一次又一次地证明了自己。提升红队,就能提升蓝队。几乎同时,防御者意识到红队真心为他们着想,人为制造对抗其实是件好事。红队也正确地得出结论,优秀的防御令人难以置信(甚至有点…有趣…),如果他们仔细观察,防御者会帮助红队开发新的技术。那么,我们如何继续这种良性循环呢?
为了跟上似乎与日俱进的防御,红队做出了第一个合乎逻辑的举动:增加测试时间。这在一定程度上奏效,一些客户很乐意签下数月的红队测试,把隐蔽性和真实性放在首位。但隐蔽需要时间,不是每个人都负担得起在网络中以最低、最慢的速度移动。而且时间优势正被那些以周、月为单位基准用户活动的基于行为检测所侵蚀。红队需要一种在不花大价钱的情况下提供针对性价值的方法。
引入假定失陷(Assumed Breach)
假定失陷(AB)评估旨在模拟这样一种威胁场景:攻击者已经通过某种方式的入侵获得了内部网络的访问权限。但我们说的是什么场景?这不就是内部渗透测试已经做的事吗?是的。某种程度上。标准内部渗透测试模拟的最接近的威胁场景是物理入侵,但即便如此,重点也是全面覆盖。也就是说,发现多少条通向权限提升的易受攻击路径,以及在此过程中记录了哪些漏洞,修复后可以关闭这些路径。尽快完成所有工作,覆盖尽可能多的系统,然后以准确、专业的方式交付结果。
公司的安全态势可以通过修复渗透测试发现问题而大大改善,许多公司就是这么做的。具有讽刺意味的是,我认识的大多数优秀渗透测试人员都严重低估了自己的技能。不过,这可能是件好事(至少在某种程度上),因为正如LockBit组织领导人在2022年接受vx-underground采访时暗示的那样,如果道德失控,出色的渗透测试技能很容易被用于犯罪活动。
抱歉跑题了。那么,AB和渗透测试之间的实质区别是什么?简而言之,我已经暗示过了,渗透测试是基于覆盖的,而AB是基于场景的。AB是渗透测试的"进化"吗?不完全是。只要企业环境存在,渗透测试就会继续提供价值。然而,如上所述,控制措施已经显著改进,迫使攻击团队调整服务。即使是那些非IT用户仍有本地管理员权限的公司,也可以购买EDR并立即改善终端安全,从而让红队感到沮丧。这意味着红队必须缩小入侵范围,即针对成熟组织进行基于场景的测试。
在x,我们确定了几种威胁场景:
外围网入侵
心怀不满的员工/恶意内部人员
成功的社会工程(social engineering)攻击
凭证滥用
内部设备的物理盗窃或丢失
物理入侵
当然,这些都是高层次的入侵类别,也是有意如此。其中也有重叠。例如,很容易想象一次成功的社会工程攻击会导致凭证滥用。红队经常这样做。也就是说,必须划清界限,而这是尽可能干净地划分的尝试。
那勒索软件呢?我能清楚地听到这个问题,客户也多次问过我类似的问题。勒索软件不是一个有效的威胁场景吗?直接的回答是,不完全是。是的,勒索软件代表了入侵的一种高影响力结果,但它本身并不是入侵方式。数据丢失也是一种可能的结果,但不是威胁场景。正确地对术语进行分类以及我们对它们的理解很重要。此外,部署勒索软件的要求与AB或红队测试中的标准权限提升目标类似。在大规模部署勒索软件之前,攻击者必须在目标主机上获得更高的权限。底线是——修复AB测试中发现的权限提升路径,你就能"遏制勒索软件部署的爆炸"。不妨与你身边的红队成员讨论一下发现与备份系统相关的攻击路径 xD
场景
x开发了七种AB场景,旨在覆盖这些威胁场景。看下面的图表,你可能会认为某些场景不在你的威胁模型中。这完全没问题(如果不是有争议的话),因为其目的是提供不同类型的针对性测试,这些测试将与你的威胁模型重叠。
AB场景
威胁场景
外围入侵 | 不满员工 | 成功社工 | 凭证滥用 | 设备失窃丢失 | 物理入侵 | |
---|---|---|---|---|---|---|
单点登录入侵 | X | X | X | |||
网络跳板 | X | X | X | X | ||
终端入侵 | X | X | X | X | ||
外围入侵 | X | X | ||||
DevOps | X | X | ||||
工作站入侵 | X | X | ||||
物理入侵 | X | X |
1) 单点登录入侵
威胁场景:不满员工、成功社会工程攻击、凭证滥用
描述:通过模拟Office 365账户的入侵,TrustedSec将尝试使用SSO访问连接到O365租户的第三方服务,渗透和分析可访问的信息。如果实现内部网络分析,则不执行。
最短持续时间:1周
客户要求:
- 提供要攻击的SSO门户信息(Okta、Ping、O365)。
- 代表受感染用户的有效凭据。为了获得最大价值,TrustedSec建议使用现任员工(首选)或最近离职但访问权限完好的账户。
- 如有必要,提供联系人以提供MFA访问。
2) 网络跳板
威胁场景:成功的网络外围入侵、不满员工、成功的社会工程攻击、凭证滥用
描述:TrustedSec将与客户提供的员工合作,模拟通过成功的社会工程攻击可能实现的入侵。使用允许列表基础设施和有效负载,建立用户机器的C2,并使用它有针对性地攻击网络,以实现单一的后渗透目标。参与的重点是后渗透活动和检测,而不是规避终端控制测试。
最短持续时间:2周
客户要求:
以下之一:
- 内部员工(非IT人员优先)扮演被入侵的终端。TrustedSec将与员工合作建立非侵入式C2。
- 一台笔记本电脑和/或Citrix VDI镜像,具有域凭据(用户名/密码),访问权限与现有工作角色相同。
- TrustedSec将提前提交有效负载和基础设施详细信息以列入允许列表
3) 终端入侵和跳板
威胁场景:成功的网络外围入侵、不满员工、成功的社会工程攻击、凭证滥用
描述:TrustedSec将与客户提供的员工合作,模拟通过成功的社会工程攻击可能实现的入侵。使用定制基础设施和规避性有效负载,建立用户机器的C2,并使用它隐蔽、有针对性地攻击网络,以实现后渗透目标。
最短持续时间:3周
客户要求:
- 内部员工(非IT人员优先)扮演被入侵的终端。*TrustedSec将与员工合作建立非侵入式C2。
- 客户可以选择两个目标(应用程序、服务器、IP地址、访问级别)进行追踪。
注意:此评估不支持使用通用域凭据的“备用笔记本电脑”或“黄金映像构建”,因为攻击者严重依赖日常使用来进行态势感知。
4) 外围入侵
威胁场景:成功的网络外围入侵、成功的社会工程攻击
描述:通过模拟外部Web应用程序的入侵,TrustedSec将获得指定Web服务器或数据库服务器的C2权限(成功的SQL注入攻击),并尝试从多个视角入侵目标应用程序或网络环境。这可以采取Web Shell或完全C2等多种形式。
最短持续时间:3周
客户要求:
- 在应用程序账户的上下文中,在选定的Web服务器或数据库服务器上执行植入。
- 根据防火墙规则,可能需要豁免以允许必要的出站流量。
5) DevOps
威胁场景:不满员工、凭证滥用
描述:使用客户提供的笔记本电脑,TrustedSec将连接到内部网络,并探测与开发运维相关的漏洞,例如代码库权限、硬编码凭据以及不当的基础设施访问。攻击高度针对客户的DevOps环境和相应的基础设施。
最短持续时间:3周
客户要求:
- 配备开发者权限的账户
- 具有标准开发者构建的笔记本电脑
- 远程访问DevOps环境
6) 工作站入侵
威胁场景:不满员工、设备物理失窃或丢失
描述:TrustedSec将测试物理工作站或Citrix VDI镜像的各种安全错误配置,包括硬件和软件漏洞(如果适用)。漏洞利用通常限于本地机器,不会跨越网络边界。TrustedSec可自行决定拆卸任何提供的硬件。
最短持续时间:2周
客户要求:
- 具有标准构建的笔记本电脑和/或Citrix VDI访问权限
- 非管理员登录凭据
- (可选)公司网络的远程访问权限
7) 物理入侵
威胁场景:不满员工、成功的物理入侵
描述:TrustedSec将通过运送一种特殊设备来模拟成功的物理入侵,该设备可以规避大多数NAC系统,不需要出站防火墙豁免。作为一种真正隐蔽的设备植入,TrustedSec将使用相应的连接,利用标准技术实施网络入侵。
最短持续时间:2周
客户要求:
- 具有持久内部网络连接的物理机器
- 靠近LTE蜂窝服务
结语
我希望这篇文章能给你一些思路,思考你自己的威胁模型以及这可能如何影响你下一轮的攻击性测试,如果我还能让你会心一笑,那就是意外之喜。如果你在内部团队工作,你可以灵活运用这些场景,因为你无疑拥有比第三方更多的时间和能力。
如果你能读到这里,你该去散散步,或小酌一杯,选择你喜欢的方式吧。
参考资料:
https://trustedsec.com/blog/assumed-breach-the-evolution-of-offensive-security-testing