云渗透和云服务的基础知识
云计算的类型
SaaS(Software-as-a-service)
付费使用某种软件,如Dropbox、Office 365。
IaaS(Infrastructure-as-a-service)
付费使用/租用基础设施,如在线虚拟机
PaaS(Platform-as-a-service)
付费托管应用程序,如可以将后端API上传到PaaS系统。使其对全世界可有。这样只需要担心源代码,其他一切由云提供商处理。
云服务框架
1)IAM:Identity and Access Management,一种政策和技术框架,可以看成是活动目录,可以从这管理用户、组和关联的权限
云提供商具有非常细粒度的权限,这使得能够访问特定的资源。云中几乎所有的特权升级技术都依赖于配置错误的IAM权限。
2)虚拟服务器
不能对硬件进行物理访问,而是使用SSH或RDP与您的机器交互。
3)虚拟私有云
VPC是云中的一个网络。所有的虚拟服务器和其他机器都将运行在VPC中,并将像在本地网络上的任何其他设备一样获得一个本地IP。
4)存储桶
存储桶可以用来存储和检索文件。存储桶提供存储图像、文件等。
5)数据库
6)无服务(Serverless)
无服务是指用户无须关心软件应用运行涉及的底层服务器的状态、资源(比如 CPU、内存、磁盘及网络)及数量。软件应用正常运行所需要的计算资源由底层的云计算平台动态提供。
与编码整个应用程序并运行的情况不同,无服务编程创建小函数,通过API调用或其他触发器调用这些函数。主要特点是无服务编程可以将应用程序复分解为多个函数,而不是将所有程序编码在的单个应用程序中。
7)容器
容器是应用程序包装在一个映像中,该映像可以在任何机器上运行,而不管它上面的操作系统和库如何
8)Pub/Sub
有两个微服务向一个主题发布消息。然后,让其他三个微服务消耗这些消息并执行某种工作。这就是多个微服务可以相互通信的方式。
云渗透的步骤
1)初始访问:获得用户凭证
2)枚举:枚举权限以及可以访问的服务;查看并下载敏感的信息
3)权限提升:尝试使用权限提升和横向移动技术来危害其他用户
4)不断尝试
5)清理踪迹
云渗透角度分析
踩点
首先需要访问目标用户的云环境,可以使用几种技术实现,即获得凭证:
1)SSRF:目前最流行的方法是服务器端请求伪造(SSRF)SSRF是从元数据服务中收集云凭证的技术。以下参考链接有更多关于SSRF的信息。
● https://portswigger.net/web-security/ssrf
● https://cobalt.io/blog/a-pentesters-guide-to-server-side-request-forgery-ssrf
● https://www.youtube.com/watch?v=66ni2BTIjS8&ab_channel=HackerOne
源代码
另一个非常流行的用来破坏云帐户的技术是在目标源代码中查找硬编码的凭证。
硬编码是指在软件实现上,将输出或输入的相关参数直接以常量的方式撰写在原始码中。硬编码凭证是指在应用程序、服务或基础设施中使用的数字身份验证凭证(API 密钥、证书、令牌等)。硬编码凭证泄露是开发人员会将密钥保存在不安全的位置,以便更轻松地更改代码,但这样做通常会导致信息被错误地遗忘并无意中发布出去。
云提供商CLI
大多数云提供商有自己的CLI,可以通过命令行使用。凭据通常存储在磁盘上。根据CLI,可以在不同的位置找到这些凭据。
权限提升
云环境有两种类型权限提升,一种针对云用户,一种针对基础设施。可以通过以下两点思考:
1)检查IAM,大多数特权升级缺陷是由于过度许可的账户
2)源代码。例如,如果在云虚拟机或文档容器上获得一个shell,可以在该机器上的所有源代码和脚本中搜索硬编码密码。
3)渗透和配置错误
横向移动
大多数情况下,用于特权升级的所有技术和战术也可以用于横向移动。
枚举
1)列举IAM授权的可以做的和不能做的
2)基础设施:
可以通过构建云基础设施网络图
● Virtual Machines
● Databases
● Cloud Storage(Buckets)
● Load Balancers
● VPCs
● WAFs
● Network and Host Firewalls
● Docker Containers and Images
● Cloud Functions(Serverless)
● Kubernetes Environment
● Publish/Subscribe Systems
● Ect
其他可能存在的
环境变量:另一个流行的存储云凭证的地方是在环境变量中。如果在主机上安装了RCE,可以在这里检查。
网络钓鱼
Cookie:攻击者可以通过浏览器使用cookie作为该用户登录
绕过防御
1)日志:隐藏你自己的最大方法之一就是简单地删除日志或禁用日志记录。
2)噪声日志:云提供商记录了所有内容,如果你看起来不怀疑,可能会躲避雷达。