红队攻防 | 云上横向移动:利用脆弱容器实施攻击
2022-12-5 00:0:10 Author: Z2O安全攻防(查看原文) 阅读量:21 收藏

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。

文章正文

横向移动是云安全方面一个日益严重的问题。也就是说,一旦你的云基础设施的某个部分被破坏,攻击者可以达到多远?

在对云环境的著名攻击中,经常发生的情况是,一个公开的脆弱的应用程序可以作为一个入口点。从那里,攻击者可以尝试进入云环境内部,试图窃取敏感数据或将账户用于自己的目的,如加密货币挖掘。

image-20221204182204262

在这篇文章中,我们将介绍一个阶段性的但真实的场景,以展示攻击者如何可能获得对云账户的完全访问。我们还将介绍如何通过使用Sysdig Cloud Connector检测和缓解这种攻击。

横向移动的场景

让我们从一个在Kubernetes集群中运行并托管在AWS账户内的脆弱的Struts2应用程序开始这个云安全练习。

image-20221204182650434

一旦攻击者获得对pod的访问权,他们就会评估环境,寻找秘密或凭证,以进行横向移动并提升权限。

这些凭证有可能在aws元数据中找到。一旦获得,攻击者就可以访问AWS账户,从那里他们就可以开始窥探。

在进入云基础设施后,攻击者将寻找错误的配置,以实现他们接下来的行动。例如,通过维持他们的权限来巩固地位,损害云防御系统,或升级他们的权限。最终,攻击者可能会造成危害,如寻找敏感数据外泄,或安装加密货币矿工或僵尸控制中心。

现在我们了解了对手的总体战略,让我们更深入地挖掘他们的行动。

Step 1: 利用一个面向公众的Web应用程序

Ckoud MITRE ATT&CK报告的初始访问TTP(战术、技术和程序)之一是通过利用面向公众的应用程序。这是有道理的。毕竟,任何公共的东西都是可以访问的。

在这个场景下,有一个Apache Struts2应用程序可以公开使用。

为了查看可用的实例是否受到知名漏洞的影响,攻击者开始进行被动和主动的信息收集活动。通过与Web应用程序的互动,可以检索到软件版本和其他有关部署的应用程序的额外信息。从那里,攻击者可以查询漏洞数据库,寻找一个入口点。

攻击者发现我们使用的Apache Struts2版本存在CVE-2020-17530的漏洞,该漏洞允许在机器上执行远程代码。如果攻击者成功地利用了这个漏洞,他们将能够在机器上执行任意代码,包括获得一个反弹shell。

如下,攻击者向服务器发送一个精心制作的HTTP请求,然后,一个从受害者主机到攻击者机器的shell开了。

image-20221204194110454

获得反向shell所需的bash命令包含特殊字符,这可能会在执行过程中导致错误。为了避免这种情况,通常对命令进行base64编码,在执行过程中对其进行解码。

从主机名,apache-struts-6c8974d494,攻击者可以看到他们落在了Kubernetes集群内的一个pod或容器中。

Step 2: 横向移动到云

现在,我们的对手进来了,他们必须考虑到环境。你可能会认为,在落入一个容器后,攻击者受到了相当大的限制。而你是正确的,但他们仍然有一些机会来破坏我们的云安全。

攻击者检查pod是否可以访问AWS实例元数据。

image-20221204195156633

看起来可以。这可能使攻击者获取有关于云环境的有用的信息,以帮助攻击者提升权限或进行横向移动。

观察IAM凭证,对手找到了与运行pod的Kubernetes节点相关的AWS IAM角色凭证。

image-20221204195514100

攻击者现在可以在自己的环境中导入凭证,并通过cli直接访问云账户。

image-20221204195610809

Step 3: 通过策略错误配置提升权限

在这一点上,攻击者能够用偷来的凭证连接到AWS账户。

他们做的第一件事就是开始评估与被冒充的角色相关的角色和策略,试图找到一种在云环境中升级权限的方法。

image-20221204195859406

 dev-AssumeRole策略看起来很有希望。让我们看看它授予了什么权限。

image-20221204200456113

通过AssumeRole,对手可以选择以其他用户的身份行事。这是给像这样的账户授予的一个奇怪的权限。这可能是一个攻击者正在寻找的错误配置。

另外,通过ReadOnlyAccess权限,攻击者能够列举AWS账户中的可用角色,并根据现有的限制找到他们可以承担的角色。在这种情况下,攻击者可以冒充以 "dev "开头的角色。当前用户可以冒充的角色之一是dev-EC2Full,它允许对EC2的完全控制。

image-20221204200735755

通过冒充这个角色,攻击者能够像一个dev用户一样,对EC2实例有完全的访问权,并有能力为自己的目的创建新的实例。

Next steps

让我们回顾一下到目前为止我们所讨论的内容和两个主要流程。

  1. 1. 在Kubernetes生产环境中运行着一个有漏洞的面向公众的应用程序。攻击者利用它作为进入环境的入口。

  2. 2. 与开发相关的IAM策略中的错误配置附加到生产实体(运行Kubernetes节点的EC2实例),允许攻击者冒充更强大的角色并提升云环境内的权限。

  3. 3. 在这一点上,攻击者有足够的权限来对我们的组织造成伤害。他们可以现在开始行动,或者进一步尝试破坏我们的云安全,获得更大的权限。不要错过我们的 "跨AWS云和容器的统一威胁检测[1] "一文,以更全面地了解我们的攻击者可能采取的后续步骤,并看看AWS提供哪些工具来预防、检测和缓解这些攻击。

使用Sysdig Secure检测横向移动攻击

幸运的是,这类攻击会留下非常可识别的痕迹。例如,一个反向shell是不寻常的东西,一个runtime安全工具可以很容易地发出警报。此外,安全工具可以标记错误的配置。有了正确的工具,你可以加强你的云安全。

关于Sysdig Secure DevOps Platform就不翻了,介绍他们产品的,自己看吧:

https://sysdig.com/blog/lateral-movement-cloud-containers/

引用链接

[1] 跨AWS云和容器的统一威胁检测: https://sysdig.com/blog/threat-detection-aws-cloud-containers/

译文申明

译文仅供参考,具体内容表达以及含义,以原文为主,推荐尽量阅读原文(点击 阅读原文 跳转)

技术交流

知识星球

致力于红蓝对抗,实战攻防,星球不定时更新内外网攻防渗透技巧,以及最新学习研究成果等。常态化更新最新安全动态。专题更新奇技淫巧小Tips及实战案例。

涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全。星球中已发布 200+ 安全资源,针对网络安全成员的普遍水平,并为星友提供了教程、工具、POC&EXP以及各种学习笔记等等。

交流群

关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

关注我们

关注福利:

回复“app" 获取  app渗透和app抓包教程

回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。

回复“书籍" 获取 网络安全相关经典书籍电子版pdf

往期文章

我是如何摸鱼到红队的

命令执行漏洞[无]回显[不]出网利用技巧

MSSQL提权全总结

Powershell 免杀过 defender 火绒,附自动化工具

一篇文章带你学会容器逃逸

域渗透 | kerberos认证及过程中产生的攻击

通过DCERPC和ntlmssp获取Windows远程主机信息


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2ODYxMzY3OQ==&mid=2247490864&idx=1&sn=968fded686021e672e9e5a7089eb118b&chksm=cea8f670f9df7f663fe0e54d5d1c12589ec890366e811eaff30710938197aff605766cd9dbd6#rd
如有侵权请联系:admin#unsafe.sh