type
status
date
slug
summary
tags
category
icon
password
掠夺暴露的 RDS 实例:
- 扫描端口
p3306,5432,1433,1521
- 爆破
劫持公共RDS快照:
发现公开快照:
- 使用 AWS CLI 命令
aws rds describe-db-snapshots
和aws rds describe-db-cluster-snapshots
查找公开的 RDS 快照。
- 通过
-snapshot-type public --include-public
参数筛选出公开的快照。
- 还原公开快照:
- 在 AWS 控制台中,选择公开的快照并还原为新的数据库实例。
- 配置数据库实例的设置,包括实例类型、VPC 安全组等。
- 访问还原的数据库:
- 等待数据库实例创建并恢复快照。
- 修改数据库实例的密码,并配置 VPC 安全组允许公网访问。
- 使用
psql
等工具连接到还原的数据库实例。
- 获取敏感信息:
- 连接到数据库后,切换到包含敏感信息的表
- 查询表中的数据,获取敏感信息。
防御措施
- 避免公开快照:
- 在创建快照时,避免将其设置为公开。
- 使用 AWS 提供的加密选项和 KMS 密钥来保护快照。
- 监控和告警:
- 创建 CloudWatch 事件规则,监控 RDS 快照的复制、修改和公开分享操作。
- 定期运行 AWS CLI 命令检查公开的快照。
- 权限管理:
- 确保只有授权用户能够创建和修改 RDS 快照。
- 使用 IAM 策略限制对 RDS 快照的访问权限。
劫持公共EBS快照
- 发现公开快照:
- 使用 AWS CLI 命令
aws ec2 describe-snapshots
查找公开的 EBS 快照。 - 通过
-owner-ids
和-restorable-by-user-ids all
参数筛选出公开的快照。
- 验证快照的公开性:
- 使用
aws ec2 describe-snapshot-attribute
命令查看快照的createVolumePermission
属性,确认其是否对所有用户公开。
- 创建 EC2 实例并挂载公开快照:
- 在 AWS 控制台中,从公开的快照创建新的 EBS 卷。
- 创建一个新的 EC2 实例,并确保其子网与 EBS 卷的可用区一致。
- 将创建的 EBS 卷挂载到 EC2 实例上。
- 访问挂载的卷:
- 通过 SSH 连接到 EC2 实例。
- 挂载 EBS 卷并访问其中的文件。
- 获取敏感信息:
- 在挂载的卷中查找敏感文件,如 SSH 密钥、配置文件等。
- 使用获取的 AWS 访问密钥(AK/SK)访问其他 AWS 资源,如 S3 存储桶,获取更多敏感信息。
防御措施
- 避免公开快照:
- 在创建 EBS 快照时,避免将其设置为公开。
- 使用 AWS 提供的加密选项和 KMS 密钥来保护快照。
- 监控和告警:
- 创建 CloudWatch 事件规则,监控 EBS 快照的创建、修改和公开分享操作。
- 定期运行 AWS CLI 命令检查公开的快照。
- 权限管理:
- 确保只有授权用户能够创建和修改 EBS 快照。
- 使用 IAM 策略限制对 EBS 快照的访问权限。
目录穿越后拿到AWS凭据并获取S3数据
- 端口扫描:
- 使用
nmap
扫描目标 IP 地址13.50.73.5
,发现开放了 80 端口。
- 网站分析:
- 访问网站并注册账号,发现网站功能有限,主要用于导出 CSV 文件。
- 通过错误提示信息判断网站使用 Flask 框架。
- 目录穿越漏洞:
- 利用目录穿越漏洞(如
/download?file=../../../../etc/passwd
)获取系统文件信息。 - 发现存在
ec2-user
用户,推测目标系统为 AWS EC2 实例。
- 获取 AWS 凭证:
- 通过目录穿越漏洞读取用户目录下的
.aws/credentials
文件,获取 AWS 访问密钥(AK/SK)。 - 例如:
GET /download?file=../../../../home/nedf/.aws/credentials
。
- 访问 AWS S3 存储桶:
- 使用获取的 AWS 访问密钥访问 S3 存储桶
s3://huge-logistics-bucket
。 - 下载存储桶中的敏感文件(如
flag.txt
)。
git仓库中泄露aksk
- 克隆仓库:
- 克隆目标仓库
https://github.com/huge-logistics/cargo-logistics-dev
到本地。
- 扫描敏感信息:
- 使用
git-secrets
工具扫描仓库历史提交,发现泄漏的 AWS 访问密钥(AK/SK)。 - 使用
trufflehog
工具进一步扫描,发现更多敏感信息,如 AWS 访问密钥和数据库连接信息。
- 获取 AWS 凭证:
- 从仓库历史提交中提取 AWS 访问密钥
AKIAWHEOTHRFSGQITLIY
和对应的秘密访问密钥。
- 访问 AWS S3 存储桶:
- 使用获取的 AWS 访问密钥访问 S3 存储桶
s3://huge-logistics-transact
。 - 下载存储桶中的敏感文件(如
flag.txt
)。
- 获取数据库连接信息:
- 从仓库代码中提取数据库连接信息,如数据库用户名和密码。
历史仓库提交能扫描到很多资料 甚至有黑盒源代码泄露
利用S3 Bucket版本控制访问机密信息
- 访问目标 IP:
- 访问目标 IP 地址
16.171.123.169
,发现网站使用 S3 存储桶huge-logistics-dashboard
。
- 查看存储桶版本:
- 使用
aws s3api list-object-versions
命令查看存储桶中的对象版本,发现DeleteMarkers
和多个版本的auth.js
文件。
- 获取旧版本文件:
- 使用
aws s3api get-object
命令下载旧版本的auth.js
文件(版本 ID 为qgWpDiIwY05TGdUvTnGJSH49frH_7.yh
)。
- 提取敏感信息:
- 从下载的
auth.js
文件中提取登录 Web 系统的邮箱和密码。 - 使用提取的凭证登录 Web 系统,获取 AWS 访问密钥(AK/SK)。
- 访问敏感文件:
- 使用获取的 AWS 访问密钥访问 S3 存储桶中的敏感文件(如
private/Business Health - Board Meeting (Confidential).xlsx
)。 - 下载并查看文件内容,获取敏感信息(如
flag
)。
S3存储桶的暴力破解
- 发现 S3 存储桶:
- 通过
aws s3 ls
命令发现 S3 存储桶hlogistics-web
。 - 下载并分析存储桶中的
index.html
文件,发现其他存储桶名称hlogistics-images
和hlogistics-staticfiles
。
- Fuzzing 其他存储桶:
- 使用
ffuf
工具对其他可能的存储桶名称进行模糊测试,发现新的存储桶hlogistics-beta
。 - 下载并分析
hlogistics-beta
存储桶中的SystemTrackingPackagesTest.py
文件,获取 AWS 访问密钥(AK/SK)。
- 获取 SSM 参数:
- 使用获取的 AWS 访问密钥访问 AWS Systems Manager (SSM),获取新的 AWS 访问密钥。
- 使用新的 AWS 访问密钥获取 Lambda 函数列表,并调用 Lambda 函数
crew_administration_data
,获取敏感信息(如flag
)。
揭示CodeCommit和Docker中的秘密
镜像扫描与凭证发现
- 目标: 审查 Huge Logistics 的公共代码仓库,查找可能被忽视的凭证或敏感信息。
- 工具: 使用
docker scout
工具分析 Docker 镜像。
- 步骤:
- 在 Docker Hub 上搜索
hljose/huge-logistics-terraform-runner
镜像。 - 使用
docker scout quickview
分析镜像的漏洞情况。 - 运行镜像容器并查看环境变量,发现 AWS 访问密钥和秘密访问密钥。
2. 利用凭证访问 AWS 资源
- 目标: 利用发现的凭证访问 AWS 资源,进行横向和纵向移动。
- 工具: 使用
aws-enumerator
工具枚举 AWS 权限。
- 步骤:
- 使用发现的 AWS 凭证枚举权限,发现具有
ListRepositories
权限。 - 列出 CodeCommit 仓库,并查看特定仓库
vessel-tracking
的内容。 - 获取仓库中的文件
js/server.js
,发现另一个 AWS 访问密钥和秘密访问密钥。
3. 访问 S3 存储桶
- 目标: 利用新的 AWS 凭证访问 S3 存储桶,获取敏感信息。
- 工具: 使用 AWS CLI 访问 S3 存储桶。
- 步骤:
- 列出 S3 存储桶
vessel-tracking
中的所有文件。 - 下载并查看
flag.txt
文件,获取敏感信息。
SSRF to Pwned
攻击思路简要描述
1. 初步信息收集
- 目标: 评估 Huge Logistics 网站的安全性,并调查与其云基础设施的潜在风险。
- 工具: 使用
whois
工具查看 IP 信息。
- 步骤:
- 访问 IP
52.6.119.121
,发现重定向到域名hugelogistics.pwn
。 - 使用
whois
工具查看 IP 信息,确认该 IP 属于 Amazon EC2 实例。
2. 发现公开的 S3 存储桶
- 目标: 查找并访问 Huge Logistics 的公开 S3 存储桶。
- 工具: 使用 AWS CLI。
- 步骤:
- 在网站代码中发现
huge-logistics-storage
存储桶。 - 尝试访问存储桶中的文件,但因权限问题无法下载。
3. 利用 SSRF 漏洞访问元数据
- 目标: 利用服务器端请求伪造(SSRF)漏洞访问 AWS 元数据。
- 工具: 修改网站请求参数。
- 步骤:
- 在网站的 status 页面,将
name
参数改为 AWS 元数据 IP169.254.169.254
。 - 访问元数据路径
/latest/meta-data/
,获取 IAM 角色信息。 - 获取临时凭证,访问 S3 存储桶中的文件。
4. 获取敏感信息
- 目标: 下载并查看存储桶中的敏感文件。
- 工具: 使用 AWS CLI。
- 步骤:
- 列出
huge-logistics-storage
存储桶中的所有文件。 - 下载并查看
flag.txt
文件,获取敏感信息。