
Stormspotter 创建 Azure 订阅中资源的“攻击图”。它使红队和渗透测试人员能够可视化租户内的攻击面和横向移动机会,并助力防御方快速定位安全事件并确定响应工作的优先级。
大多数用户可能会发现通过 Docker 安装 Stormspotter 更容易。这是推荐的方法。
git clone https://github.com/Azure/Stormspotter
docker-compose up
docker-compose 文件将创建三个容器:
默认情况下,Stormspotter 容器将在端口 9091 上暴露 UI。Neo4j 容器将在端口 7474(HTTP)和 7687(Bolt)上暴露 neo4j。Neo4j 的默认配置未启用 SSL,因此你最初可以直接在端口 7474 上与 neo4j 界面交互。
注意:目前,Stormspotter 仅支持在本地运行这些容器。尝试将数据上传到远程部署的前端将失败,但此行为预计会在未来改变。
Neo4j 的默认凭据为:neo4j/password。你可以通过 docker-compose 文件中的 NEO4JAUTH 环境变量更改此设置。
如果你选择不使用 Docker 运行 Stormspotter,则必须安装 Python 3.8、NodeJS/npm 和 Neo4j。你也可以从 此处 获取最新的 Stormspotter 发行版。
负责将数据解析到 Neo4j 的后端使用 FastAPI 构建。如果你不打算为数据库上传新内容,则可能根本不需要运行后端。后端配置为在端口 9090 上运行。你可以通过更改 app.py 第 5 行的端口号来修改此设置。如果这样做,还必须更改 DatabaseView 组件 中 Q-Uploader 组件的端口,以便前端的上传能够发送到后端的正确端口。
cd backend
python3 ssbackend.pyz
Web 应用使用 Vue 和 Quasar 框架 开发。单页应用(SPA)已为你构建完成,位于 frontend/dist/spa 目录中。要提供此目录:
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
然后,你可以在浏览器中访问 http://localhost:9091。
Stormcollector 是 Stormspotter 的一部分,允许你枚举提供的凭据有权访问的订阅。使用 Stormcollector 的 推荐 方式是运行 sscollector.pyz 包,该包位于 操作系统的发行版文件中。此 PYZ 已使用 Shiv 创建,并已打包所有依赖项!依赖项会解压到用户主目录的 .shiv 文件夹中。
cd stormcollector
python3 sscollector.pyz -h
如果由于某种原因你不想使用提供的包,你可以使用 pip 或 pipenv 安装所需的包。使用此方法时,强烈建议 在虚拟环境中安装 Stormcollector,以防止包冲突。如果你在管理虚拟环境时遇到问题,则应使用上述推荐方法。
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
当前支持的登录类型:
az login)你可以通过使用如上所示的 -h 开关查看 Stormcollector 提供的所有选项。Stormcollector 最基本的用法是:
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>
所有认证类型的通用选项
上传结果
启动 UI 后,你将在数据库选项卡中看到标记为“Stormcollector Upload”的区域。将你的文件添加到此上传器,处理将开始。在处理结果时,你可以检查后端日志以查看进度,并且结果也应反映在同一个“Database View”选项卡中。
查看 KeyVault 上的权限

显示 Azure AD 角色的成员

显示传入和传出关系

本项目欢迎贡献和建议。大多数贡献需要你同意 贡献者许可协议(CLA),声明你有权且确实授予我们 使用你贡献的权利。详情请访问 https://cla.opensource.microsoft.com。
当你提交拉取请求时,CLA 机器人会自动确定你是否需要提供 CLA,并适当地装饰 PR(例如,状态检查、评论)。只需按照机器人提供的说明 操作即可。你只需要在使用我们 CLA 的所有存储库中执行一次此操作。
本项目已采用 Microsoft 开放源代码行为准则。 有关更多信息,请参阅 行为准则常见问题解答 或 联系 [email protected] 提出其他问题或意见。