通过SSRF 滥用导致AWS EC2 凭证被盗

payload

版主

payload Rep
0
0
0
Rep
0
payload Vouches
Vouches
0
8 MONTHS
8 8 MONTHS OF SERVICE
payload 获得
0
0
0
获得
0
payload 凭证
0
0
0
凭证
0
主题
16
点赞
0
HakB
8
在社区成长 8 月
LEVEL 50 100 XP
 
在AWS 中,小的配置疏忽可能会导致巨大的安全漏洞。本实验演示了攻击者如何利用看似无害的设置,通过滥用EC2 实例元数据服务(IMDS) 来访问敏感数据,最终获得更高的权限。这凸显了正确的IAM 角色管理和实例安全控制的重要性。

目录​

关于SSRF 和IMDSLab 设置部分1: IAM 实验室设置创建具有受限访问权限的IAM 用户
创建EC2 实例
创建IAM 角色
分配给EC2 实例并连接到Amazon Linux 的IAM 角色
安装Apache 服务器和PHP
第2: 部分枚举和利用使用Python 脚本枚举配置文件
枚举EC2 实例
SSRF漏洞利用
IAM 角色(ec2-admin) 权限提升
AnalysisRecommendations 结论

关于 SSRF 和 IMDS​

SSRF:​

当应用程序在未经适当验证的情况下从用户提供的URL 获取数据时,就会发生服务器端请求伪造(SSRF)。攻击者可以提供恶意URL,欺骗服务器向内部或外部资源发出请求,从而可能泄露机密、数据库或文件。

IMDS:​

所有主要云提供商(AWS、Azure、GCP)都有自己的IMDS 实施,这是一个通用的云概念。想法是相同的,实例可以查询元数据,如果配置的话,还可以获取临时凭证。如果攻击者可以访问元数据服务(例如,通过SSRF),则风险也类似:他们有可能窃取凭据。三大云提供商均在链路本地IP 169.254.169.254 上运行其实例元数据服务(IMDS)。
AWS IMDS: AWS IMDS 支持两个版本: IMDSv1(不需要令牌)和IMDSv2(需要令牌)。 AWS 建议仅使用提高安全性所需的令牌强制执行IMDSv2。

第 1 部分:IAM 实验室设置​

本实验使用附加了管理员IAM 角色的Amazon Linux EC2 实例和具有有限访问权限的IAM 用户lgt_sanjeet 来模拟通过EC2 元数据服务进行权限升级。
具有有限权限的IAM user: Igt_sanjeet
Instance: Igt_server
具有管理访问策略的IAM role: ec2_admin(分配给实例)

创建访问受限的 IAM 用户​

在左侧导航窗格中的“访问管理”下,选择“用户”。在“用户”页面上,单击“创建用户”。
1.png

为用户提供用户名(例如lgt_sanjeet)并按
2.png

设置权限以将lgt_sanjeet 用户的权限配置为直接从权限选项附加策略。
3.png

在查看和创建页面上,验证用户详细信息和分配的权限,然后单击创建用户。
4.png

转到IAM 用户,然后从列表中单击用户lgt_sanjeet。
34.png

选择用户lgt_sanjeet 后,单击“安全凭证”下的“创建访问密钥”。
EC2 credentials theft via SSRF

然后,选择“命令行界面(CLI)”作为用例
36.png

选中确认框,然后单击“下一步”继续创建访问密钥。
EC2 credentials theft via SSRF

现在下载包含访问密钥ID 和秘密访问密钥的.csv 文件。确保这些凭据的安全。
38.png

创建 EC2 实例​

在AWS 管理控制台中,导航到EC2 并选择实例。单击启动实例,然后在名称和标签部分中输入lgt_server。在应用程序和操作系统映像(Amazon 系统映像)部分中,选择Amazon Linux。
EC2 credentials theft via SSRF

在实例类型部分中,选择微型(符合免费套餐条件)。在密钥对(登录)部分中,单击创建新密钥对以生成用于连接到您的实例的密钥。
EC2 credentials theft via SSRF

在创建密钥对窗口中,在密钥对名称字段中输入lgt-server。将密钥对类型保留为RSA,并将私钥文件格式保留为.pem。单击创建密钥对,然后下载并安全存储密钥文件以供将来的SSH 访问。
EC2 credentials theft via SSRF

在网络设置部分中,选择创建安全组并选择允许SSH 流量,单击编辑
8.png

在安全组规则下,将类型设置为所有TCP,将源类型设置为任意位置(0.0.0.0/0)。

安全警告:

允许来自任何地方的所有TCP 会将实例上的每个端口公开到Internet。这只能在受控实验室环境中用于测试。
EC2 credentials theft via SSRF

在高级详细信息部分中,域加入目录和IAM 实例配置文件应保持未选中状态,因为本实验不需要它们。
10.png

在元数据设置中,将元数据可访问设置为启用。在元数据版本下,选择V1 和V2(令牌可选)。对于允许元数据中的标签,选择启用。

安全警告:​

如果应用程序启用元数据访问V1 可能会暴露实例凭据
 
顶部