前不久,美国网络安全和基础设施安全局 (CISA),对美国关键基础设施行业某组织进行了一次红队演练,以此评估组织的网络安全检测和响应能力。
在第一篇中,小编介绍了红队利用一个已知但未修补的漏洞突破网络边界,并在四台Linux主机上实现了持久化利用。详见《美国顶级红队演练,竟只用了一个Nday?》。
第二篇,小编将继续结合此次演练内容,介绍红队在建立初始落脚点后,在域内进行横向渗透时惯用的攻击手法,以及防守方在流量侧应采取的策略和常见不足,希望能给到大家参考。
针对Windows域控制器的渗透
在建立了初始访问权限后,为了快速拿下域内所有主机,红队将目标瞄准了Windows域控制器。
红队在一台可以访问域控的Linux主机上,通过查询轻量级目录访问协议(LDAP)收集AD信息,包括用户、计算机、组、访问控制列表ACL、组织单位和组策略对象。利用这些AD信息,红队发现了42台启用了无约束委派(Unconstrained Delegation)的主机。
从安全角度考虑,无约束委派是一个非常危险的配置。因为这些主机(即UDHOST)会存储对其进行身份验证的任何用户的 Kerberos TGT,并且可以转发给其他主机上的服务进行身份验证,而无需对转发的凭据进行限制或验证。
在此之后,红队就可以伪造域控黄金票据,或者使用特定账户哈希请求有效的TGT,访问域内任何服务,并在对应主机上植入远控。
但遗憾的是,由于此次防守方可能缺乏有效的全流量检测工具,或在各个区域存在严重的流量盲区,即使在终端侧检出恶意工具,也无法有效进行流量回溯;此外,防守方对攻击者新工具、新手法、新的技战法的情报追踪不够,导致红队在几乎没有遇到任何抵抗的情况下,就拿下了域控。
与国外相比,国内对NDR建设更为重视,但也未能完全消除流量盲区。而TDP可以在本地、私有云、公有云以及混合网络环境中,全面采集网络流量进行集中分析,从中检测出暴露在公网的资产、明文传输的敏感数据以及各类型已知、未知攻击,还原横向移动的具体路径,在实网演练中0ay检出率高达81%以上,整体误报率小于0.003%。详情可参考《是时候吐槽下不靠谱的流量检测设备了,哔——》。
加密流量出网
为了达到持续隐蔽远控的目的,红队大量使用了云函数和域前置的方式,利用HTTPS代理出网,并通过具有多因素身份验证的VPN 进行保护,具体方法包括:
使用Sliver、Mythic、Cobalt Strike以及其他多种商业木马框架,避免单一流量特征。
在两个公有云上,注册并创建云函数,使用 HTTPS 反向代理,将出网流量通过云函数API转发到红队服务器。
由于大量使用HTTPS加密协议与可信域名,此时防守方再想从流量侧看到告警已经非常难了,即便事后排查,看到的是一个正常的网络连接。不过,TDP在今年上线了一个针对云函数的小妙招,一旦发现云函数的反连就会产生告警,提醒用户去排查是否存在失陷。
这是因为目前国内云函数等无服务器计算使用非常少见,最主要就是被攻击队用作C2,因此需要格外小心。对于确认存在问题的云函数,微步威胁情报还会实时同步,帮助用户进行拦截。
第二域控制器DC。在正常情况下,域控制器绝不会直接与外部机器产生通信,一旦出现这种现象,就意味着域控很可能已经失陷。然而防守方并没有对此做出任何反应,甚至攻击者并没有使用加密协议。
除上述两点之外,防守方还发现了红队的一次大流量数据外泄,原因是数据包过大,达到了1GB,触发了其Web代理的检测规则;当红队第二次以100MB的块外发数据时,尝试成功了,直到数小时之后数据外发才被阻止,失陷主机的访问权限也同时被移除。
预告
下一篇我们将继续结合此次攻防演练案例,解读红队在控制了敏感业务系统服务器和管理员工作站之后,防守方在终端侧以及安全管理等方面的注意事项。