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:
https://github.com/saw-your-packet/CloudShovel
https://securitycafe.ro/2024/05/08/aws-cloudquarry-digging-for-secrets-in-public-amis/ https://hacktodef.com/