cloudSec
December 19, 2024 · View on GitHub
- 更新为了单体jar包应用直接下载发布版本运行即可
- docker启动
docker run -p 80:8000 -d libaibaia/cloudsec:latest
云安全-AK/SK泄露利用工具
- 注意:如果本地使用linux搭建,openjdk需要安装字体库,建议使用oraclejdk
- 前端采用vue3,基于buildadmin模板,后端springboot,原接口调用厂商的SDK
- 如果有BUG请提交issue
- 提示:某些功能会对目标产品造成影响,如密钥对绑定,会导致重启,请慎重使用!!!
- 另外权限信息获取目前只支持阿里云腾讯与,云服务器执行命令是通过agent来执行的,这个过程中还需要agent权限,光凭agent是否安装无法判断是否可以执行命令,因此为了保证命令执行准确性,扫描时会默认执行一次whoami
功能概览
| 厂商 | 产品 | 功能 | 备注 |
|---|---|---|---|
| 七牛云 | 云服务器 | 列出云服务器/绑定密钥对 | / |
| 云数据库 | / | / | |
| 存储桶 | 列出文件/单文件下载链接生成/上传文件/导出存储桶所有文件列表 | 因为下载文件过多收费问题,所以改成了导出所有文件列表,然后通过文件名自己筛选即可,界面支持前缀搜索,支持1000条数据实时预览 | |
| 控制台用户 | / | / | |
| 华为云 | 列出云服务器 | 列出云服务器/绑定密钥对 | 密钥对操作需要重启服务器 |
| 云数据库 | 获取数据库资源/创建用户 | 不支持开通关闭外网访问,华为云数据库需要单独购买IP | |
| 存储桶 | 列出文件/单文件下载链接生成/上传文件/导出存储桶所有文件列表 | 因为下载文件过多收费问题,所以改成了导出所有文件列表,然后通过文件名自己筛选即可,界面支持前缀搜索,支持1000条数据实时预览 | |
| 控制台用户 | 创建控制台用户 | 默认继承父账号权限 | |
| 阿里云 | 云服务器 | 列出云服务器/执行命令/绑定(还原)密钥对 | 密钥对操作需要重启服务器 |
| 云数据库 | 获取数据库资源/创建用户/开通或关闭外网访问 | 账号继承父账号权限 | |
| 存储桶 | 列出文件/单文件下载链接生成/上传文件/导出存储桶所有文件列表 | 因为下载文件过多收费问题,所以改成了导出所有文件列表,然后通过文件名自己筛选即可,界面支持前缀搜索,支持1000条数据实时预览 | |
| 控制台用户 | 创建控制台用户 | 默认管理员权限 | |
| 腾讯云 | 云服务器 | 列出云服务器/执行命令/绑定(还原)密钥对 | 密钥对操作需要重启服务器 |
| 云数据库 | 获取数据库资源/创建用户/开通或关闭外网访问 | 账号继承父账号权限 | |
| 集群 | 打开K8S APISERVER外部访问/获取kubeconfig/一键接管K8S | 默认开通外部访问会添加0.0.0.0/0的白名单 | |
| 存储桶 | 列出文件/单文件下载链接生成/上传文件/导出存储桶所有文件列表 | 因为下载文件过多收费问题,所以改成了导出所有文件列表,然后通过文件名自己筛选即可,界面支持前缀搜索,支持1000条数据实时预览 | |
| 控制台用户 | 创建控制台用户 | 默认父账号权限 | |
| 亚马逊云 | 云服务器 | 列出云服务器 | / |
| 云数据库 | 列出数据库资源 | / | |
| 存储桶 | 列出文件/单文件下载链接生成/上传文件/导出存储桶所有文件列表 | 因为下载文件过多收费问题,所以改成了导出所有文件列表,然后通过文件名自己筛选即可,界面支持前缀搜索,支持1000条数据实时预览 | |
| 控制台用户 | 创建控制台用户 | 默认最高权限 |
使用方式
- 默认检测是10个线程
添加AK/SK
- 右边按钮对应key更新编辑,任务启动,控制台用户创建
- 添加后选择立即检测或手动执行任务
- 可选择更新时导出key
- 一键停止/启动所有任务
- 权限信息
云服务器
- 对应命令执行,密钥对操作
存储桶
- 对应文件上传,导出文件列表(excel格式)
- 点击上传然后选择文件列表,可预览1000条数据,点击下载可单独下载文件
集群相关
- 对应的是获取kubeconfig,打开公网apiserver权限,更新信息(主要是开启外网访问后存在一定延迟,需要隔一段时间手动获取外网端点信息)
最后则是一键获取k8s权限,需要开通外网访问,点击后将会下载一个sh脚本,linux下执行后将本地安装kubectl连接该集群
连接成功后将会执行kubectl get node,显示下面结果则代表成功
如果显示下面报错,请在sh脚本所在目录下执行
export KUBECONFIG=$(pwd)/kubeconfig
成功后即可接管K8S
控制台用户
- 创建的控制台用户将在这里显示
数据库
- 按钮对应打开/关闭外网,创建数据库账号
文件下载列表
- 此处对应导出存储桶的文件列表表格,状态成功后可下载
导入key列表,为了更新不丢失key
docker-compose部署
- 注意:如果出现 ERROR: The Compose file './docker-compose.yaml' is invalid because:Unsupported config option for services: 'db' 类似错误请升级docker-compose版本,我本地使用的是1.29+版本。
- 升级
$ sudo curl -L "https://github.com/docker/compose/releases/download/{version}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
- 如果更新需要删除原有镜像,密钥可以导出,然后再导入
services:
java-app:
container_name: java-app
image: registry.cn-hangzhou.aliyuncs.com/lx_project/cloud:java-app-latest
environment:
DB_PASSWORD: 123456
depends_on:
- db
vue-web:
container_name: vue-web
image: registry.cn-hangzhou.aliyuncs.com/lx_project/cloud:vue-app-latest
ports:
- "80:80"
environment:
- API_IP=192.168.61.131
depends_on:
- java-app
db:
container_name: db
image: registry.cn-hangzhou.aliyuncs.com/lx_project/cloud:db-latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- /home/cloud/data:/var/lib/mysql
启动脚本
docker-compose up -d
#然后访问http://<IP>/admin/login
#默认账号密码admin/admin123
本地部署
- 数据库mysql5.7
- jdk8
- node 16.16 前端项目地址:https://github.com/libaibaia/vue-web
- 步骤:
- 编译后端项目(将application中的mysql改为本地mysql地址) mvn package
- 前端项目打包,打包前更改.env.production文件中的VITE_AXIOS_BASE_URL为本机IP,然后,npm install --> npm run build
- 将编译后的dist文件复制到nginx目录下
- 启动后端java -jar cloudSec.jar
- 访问nginx80端口登录,默认账号密码admin/admin123。
本地构建docker
- 编译项目放在java-app/target目录下
- 下载jdk8,需要oracle版本
- 解压WEB.ZIP文件到当前目录
- 执行docker-compose -f docker-compose-build.yaml up -d --build 构建镜像并启动