Icex0/FireSA

GitHub: Icex0/FireSA

利用泄露的Firebase服务账户凭据进行数据枚举和用户管理的安全工具。

Stars: 0 | Forks: 0

# FireSA ![FireSA 标志](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8c8c442b05152647.svg) Firebase 服务账户利用脚本。使用泄露的服务账户的 `client_email` 和 `private_key` 枚举 Firebase 服务中的数据。可用于快速创建 PoC。虽然没有实现所有可能的 API 调用,但已足够展示影响。 具有管理员级别角色(如 `firebase-adminsdk`)的服务账户可绕过所有 Firebase 安全规则,获得对 Auth、Realtime Database、Firestore、Storage 等服务的无限制访问。 ## 为什么 您是否曾在 APK 文件中发现过 `firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com` 和 `-----BEGIN PRIVATE KEY-----` 硬编码,却不知道如何利用?或者您可能花了大量时间翻阅 Firebase REST API 文档,试图弄清楚需要哪些参数和端点才能发出有效请求。 此工具让您能在找到这些服务账户时立即展示影响——枚举用户、创建/删除用户、列出数据库、列出存储文件等。 ## 安装 ``` uv tool install --force . ``` ## 使用方法 ``` firesa --service-account EMAIL --private-key KEY [options] ``` `--private-key` 接受 PEM 文件路径或内联密钥字符串(带 `\n` 转义)。 `--project-id` 默认从服务账户邮箱中提取。 ### 列表操作 | 标志 | 描述 | |------|-------------| | `--list-all` | 列出所有服务的数据 | | `--list-users` | 列出 Firebase Auth 用户(如果未给出命令,则为默认) | | `--lookup-user EMAIL` | 按邮箱查找单个用户 | | `--list-rtdb` | 列出 RTDB 实例并读取根键(尝试两种 URL 格式,处理区域重定向) | | `--list-firestore` | 列出 Firestore 数据库和根集合 | | `--list-storage` | 列出存储桶中的文件(尝试 `.appspot.com` 和 `.firebasestorage.app` 两种格式) | | `--list-iam` | 列出项目中的服务账户 | ### 用户修改 | 标志 | 描述 | |------|-------------| | `--create-user EMAIL PASSWORD` | 创建新用户(可与 `--set-display-name` 结合使用) | | `--delete-user UID` | 按 UID 删除用户 | | `--update-user UID` | 更新用户(需要至少一个 `--set-*` 标志) | | `--set-email` | 设置邮箱地址 | | `--set-display-name` | 设置显示名称 | | `--set-password` | 设置密码 | | `--set-phone` | 设置电话号码 | | `--set-disabled true/false` | 禁用或启用账户 | ### 其他 | 标志 | 描述 | |------|-------------| | `--check-permissions` | 检查 IAM 权限,不读取或修改数据 | | `--max-users N` | 最大列出用户数(默认:100) | | `--max-files N` | 最大列出存储文件数(默认:100) | | `--bucket NAME` | 覆盖存储桶名称 | | `--json` | 输出原始 JSON | | `--proxy`, `-x` | HTTP 代理(例如 `http://127.0.0.1:8080`) | ### 权限输出 ## 示例 ``` # 列出前100个用户 firesa --service-account firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com \ --private-key key.pem # 列出所有内容 firesa --service-account firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com \ --private-key key.pem --list-all # 检查服务账户权限 firesa --service-account firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com \ --private-key key.pem --check-permissions # 查找特定用户 firesa --service-account firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com \ --private-key key.pem --lookup-user user@example.com # 创建用户 firesa --service-account firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com \ --private-key key.pem --create-user test@example.com password123 # 删除用户 firesa --service-account firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com \ --private-key key.pem --delete-user USER_UID # 更新用户 firesa --service-account firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com \ --private-key key.pem --update-user USER_UID --set-display-name "Test" --set-disabled true # 通过 Burp 将存储文件列为 JSON firesa --service-account firebase-adminsdk-xxx@my-project.iam.gserviceaccount.com \ --private-key key.pem --list-storage --json -x http://127.0.0.1:8080 ```
标签:APK逆向, Auth利用, Firebase, Firebasestorage, Firestore, GCP, Google Cloud, HTTP工具, PoC, Realtime Database, 凭证利用, 存储利用, 安全规则绕过, 数据库利用, 数据枚举, 暴力破解, 服务账户, 权限绕过, 用户枚举, 目录枚举, 硬编码凭证, 移动安全, 逆向工具