关于CloudShovel
CloudShovel是一款针对AMI的敏感信息泄露检测与保护工具,该工具可以在公共或私有 Amazon 系统映像 (AMI) 中搜索是否存在敏感信息泄露的情况,以更好地提升AMI的安全性。
值得一提的是,该工具能够实现完全的自动化,即它可以自动执行从目标 AMI 启动实例、安装其卷以及扫描潜在机密或敏感数据的过程。
工具要求
boto3==1.28.45
botocore==1.31.45
colorama==0.4.6
pyfiglet==1.0.2
setuptools==65.5.0
工具安装
首先,运行下列命令安装boto3和colorama:
pip install boto3 pip install colorama
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3.6+环境。
pip安装
python3 -m pip install cloudshovel
源码安装
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/saw-your-packet/CloudShovel.git
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cd CloudShovel pip install -r requirements.txt
工具使用
要使用 CloudShovel,请使用以下命令运行main.py脚本:
cloudshovel <ami_id> --bucket <s3_bucket_name> [--profile <aws_profile> | --access-key <access_key> --secret-key <secret_key> (--session-token <session_token>)] [--region <aws_region>]
参数解析
ami_id:要扫描的 AMI 的 ID(必填)
--bucket:存储结果的 S3 存储桶的名称(必填)
--profile:AWS CLI 配置文件名称(默认为“default”)
--access-key:AWS 访问密钥 ID
--secret-key:AWS 秘密访问密钥
--session-token:AWS 会话令牌(可选)
--region:AWS 区域(默认为“us-east-1”)
工具运行演示
默认情况下,该工具将执行下一个命令来搜索可能感兴趣的文件和文件夹:
for item in $(find . \( ! -path "./Windows/*" -a ! -path "./Program Files/*" -a ! -path "./Program Files (x86)/*" \) -size -25M \ \( -name ".aws" -o -name ".ssh" -o -name "credentials.xml" \ -o -name "secrets.yml" -o -name "config.php" -o -name "_history" \ -o -name "autologin.conf" -o -name "web.config" -o -name ".env" \ -o -name ".git" \) -not -empty) do echo "[+] Found $item. Copying to output..." save_name_item=${item:1} save_name_item=${save_name_item////\\} cp -r $item /home/ec2-user/OUTPUT/$counter/${save_name_item} done
完整代码可在src\cloudshovel\utils\bash_scripts\mount_and_dig.sh中找到。您可以随意修改该函数并搜索其他文件或文件夹、增加文件大小限制或从搜索中排除其他文件夹。
许可证协议
本项目的开发与发布遵循MPL-2.0许可证。
项目地址
CloudShovel:【GitHub传送门】
参考资料
https://securitycafe.ro/2024/05/08/aws-cloudquarry-digging-for-secrets-in-public-amis/