AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
学习和练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习和练习 GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
VPC & Networking
了解什么是 VPC 及其组件:
AWS - VPC & Networking Basic InformationEC2
Amazon EC2 用于启动虚拟服务器。它允许配置安全性和网络以及管理存储。Amazon EC2 的灵活性体现在其能够上下扩展资源,有效适应不同的需求变化或流行度激增。这一特性减少了对精确流量预测的必要性。
在 EC2 中有趣的枚举内容:
虚拟机
SSH 密钥
用户数据
现有的 EC2s/AMIs/快照
网络
网络
子网
公共 IP
开放端口
与 AWS 之外的其他网络的集成连接
实例配置文件
使用角色授予在EC2 实例上运行的应用程序权限需要一些额外的配置。在 EC2 实例上运行的应用程序通过虚拟化操作系统与 AWS 隔离。因此,需要额外的步骤将 AWS 角色及其相关权限分配给 EC2 实例,并使其可用于应用程序。
这一步是创建一个 实例配置文件 并附加到实例上。实例配置文件包含角色,并可以为在实例上运行的应用程序提供角色的临时凭证。这些临时凭证可以在应用程序的 API 调用中使用,以访问资源并限制访问仅限于角色指定的资源。请注意,一次只能为一个 EC2 实例分配一个角色,实例上的所有应用程序共享相同的角色和权限。
元数据端点
AWS EC2 元数据是关于 Amazon Elastic Compute Cloud (EC2) 实例的信息,在运行时可供实例使用。此元数据用于提供有关实例的信息,例如其实例 ID、运行所在的可用区、与实例关联的 IAM 角色以及实例的主机名。
枚举
未经身份验证的访问
AWS - EC2 Unauthenticated Enum权限提升
在以下页面中,您可以查看如何滥用EC2权限来提升权限:
AWS - EC2 Privesc后期利用
AWS - EC2, EBS, SSM & VPC Post ExploitationEBS
Amazon EBS(弹性块存储)快照基本上是AWS EBS卷的静态备份。换句话说,它们是附加到EC2实例的磁盘在特定时间点的副本。EBS快照可以跨区域和账户复制,甚至可以下载并在本地运行。
快照可能包含敏感信息,如源代码或API密钥,因此,如果有机会,建议检查它。
AMI与EBS的区别
AMI用于启动EC2实例,而EC2快照用于备份和恢复存储在EBS卷上的数据。虽然EC2快照可以用来创建新的AMI,但它与AMI不同,不包括操作系统、应用服务器或运行应用所需的其他软件信息。
权限提升
在以下页面中,您可以查看如何滥用EBS权限来提升权限:
AWS - EBS PrivescSSM
Amazon Simple Systems Manager (SSM) 允许远程管理EC2实例群,使其管理更加容易。每个实例需要运行SSM Agent服务,因为该服务将从AWS API获取并执行操作。
SSM Agent使系统管理器能够更新、管理和配置这些资源。代理处理来自AWS云中系统管理器服务的请求,然后按请求中指定的方式运行它们。
SSM Agent预装在某些AMIs中,或者您需要在实例上手动安装它们。此外,实例中使用的IAM角色需要附加AmazonEC2RoleforSSM策略才能进行通信。
枚举
你可以通过执行以下命令检查EC2实例中是否运行了Systems Manager:
Privesc
在以下页面中,您可以查看如何滥用SSM权限来提升权限:
AWS - SSM PrivescELB
Elastic Load Balancing (ELB) 是一个用于Amazon Web Services (AWS) 部署的负载均衡服务。ELB 自动分配传入的应用程序流量并根据流量需求扩展资源。
Enumeration
Launch Templates & Autoscaling Groups
枚举
Nitro
AWS Nitro 是一套创新技术,构成了 AWS EC2 实例的基础平台。由 Amazon 推出以增强安全性、性能和可靠性,Nitro 利用定制的硬件组件和轻量级的 hypervisor。它将许多传统的虚拟化功能抽象到专用的硬件和软件中,最小化攻击面并提高资源效率。通过卸载虚拟化功能,Nitro 使 EC2 实例能够提供接近裸机的性能,这对资源密集型应用程序特别有利。此外,Nitro 安全芯片专门确保硬件和固件的安全性,进一步巩固了其强大的架构。
获取更多信息及如何枚举它:
AWS - Nitro EnumVPN
VPN 允许将您的本地网络(站点到站点 VPN)或员工的笔记本电脑(客户端 VPN)与AWS VPC连接,以便无需将服务暴露在互联网上即可访问它们。
基本的 AWS VPN 组件
Customer Gateway:
Customer Gateway 是您在 AWS 中创建的资源,用于表示 VPN 连接的您这一侧。
它本质上是您站点到站点 VPN 连接这一侧的物理设备或软件应用程序。
您向 AWS 提供路由信息和网络设备(如路由器或防火墙)的公共 IP 地址,以创建 Customer Gateway。
它作为设置 VPN 连接的参考点,不会产生额外费用。
Virtual Private Gateway:
Virtual Private Gateway (VPG) 是站点到站点 VPN 连接中 Amazon 这一侧的 VPN 集中器。
它附加到您的 VPC,并作为您的 VPN 连接的目标。
VPG 是 VPN 连接中 AWS 这一侧的端点。
它处理您的 VPC 和本地网络之间的安全通信。
Site-to-Site VPN Connection:
Site-to-Site VPN 连接通过安全的 IPsec VPN 隧道将您的本地网络连接到 VPC。
这种类型的连接需要 Customer Gateway 和 Virtual Private Gateway。
它用于您的数据中心或网络与 AWS 环境之间的安全、稳定和一致的通信。
通常用于常规的、长期的连接,并根据通过连接传输的数据量计费。
Client VPN Endpoint:
Client VPN endpoint 是您在 AWS 中创建的资源,用于启用和管理客户端 VPN 会话。
它用于允许单个设备(如笔记本电脑、智能手机等)安全连接到 AWS 资源或您的本地网络。
它与站点到站点 VPN 不同,设计用于单个客户端而不是连接整个网络。
使用 Client VPN,每个客户端设备使用 VPN 客户端软件建立安全连接。
您可以在这里找到有关 AWS VPN 的好处和组件的更多信息。
Enumeration
本地枚举
本地临时凭证
当使用 AWS VPN Client 连接到 VPN 时,用户通常会登录 AWS以获取 VPN 访问权限。然后,一些AWS 凭证会被创建并存储在本地以建立 VPN 连接。这些凭证存储在 $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt
,包含一个AccessKey、一个SecretKey和一个Token。
这些凭证属于用户 arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials
(TODO:研究更多关于这些凭证的权限)。
opvn 配置文件
如果VPN 连接已建立,你应该在系统中搜索**.opvn
配置文件。此外,你可以在$HOME/.config/AWSVPNClient/OpenVpnConfigs
找到配置**。
后期利用
AWS - VPN Post Exploitation参考资料
学习和实践 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated