Rootless-Ghost/AtomicLoop
GitHub: Rootless-Ghost/AtomicLoop
AtomicLoop 是 Nebula Forge 下的原子红队测试运行器与检测验证器,解决检测规则闭环验证与快速迭代的问题。
Stars: 0 | Forks: 0
# AtomicLoop — Atomic Red Team 测试运行器和检测验证器
属于 **Nebula Forge** 安全工具套件。
AtomicLoop 关闭了 **紫色团队验证闭环**:模拟攻击技术、捕获端点事件,并立即验证您的 Sigma/Wazuh 规则是否触发。无需完整的 Atomic Red Team 框架。
```
Write Sigma rule → Simulate attack (AtomicLoop) → Capture events (LogNorm)
→ Validate detection (DriftWatch) → Fix gap → Repeat
```
## 核心功能
- **20 个内置 MITRE ATT&CK 技术** — 从 T1059.001 到 T1190 的精选测试,无需互联网或框架
- **安全控制** — 干运行预览 + 显式 `confirm` 标志,防止意外执行
- **Windows 优先执行** — PowerShell + cmd 执行器,支持可配置超时
- **事件捕获** — 测试窗口期间读取 Windows 安全日志 + Sysmon 日志
- **LogNorm 集成** — 将捕获的事件归一化为 ECS-lite 格式(端口 5006)
- **DriftWatch 集成** — 将 Sigma 规则与捕获的事件进行验证(端口 5008)
- **差异分析** — 精确解释检测触发或未触发的原因
- **持久化历史** — 基于 SQLite 的会话库,支持搜索、导出与删除
- **CLI** — 无需 Web UI 的离线操作
## 快速开始
```
cd AtomicLoop
pip install -r requirements.txt
cp config.example.yaml config.yaml # optional
python app.py
```
打开 [http://127.0.0.1:5011](http://127.0.0.1:5011)。
## 使用方式
### Web UI
1. 在左侧面板浏览技术(按战术分组)。
2. 点击某技术以展开其测试列表。
3. 选择一项测试以查看命令预览、预期工件和输入参数。
4. 切换 **Dry Run** 以预览命令而不执行。
5. 准备就绪后:关闭 Dry Run,勾选 **确认复选框**,设置超时时间。
6. 点击 **执行测试** — 结果将显示在右侧面板。
7. 在 **检测验证** 面板中粘贴 Sigma 规则并点击 **验证检测**。
### CLI
```
# 列出所有技术
python cli.py --list
# 显示技术的测试
python cli.py --technique T1059.001
# 仅预览命令的空运行
python cli.py --technique T1059.001 --test 1 --dry-run
# 带确认执行
python cli.py --technique T1059.001 --test 1 --confirm
# 按 Sigma 规则执行并验证
python cli.py --technique T1059.001 --test 1 --confirm --validate --sigma rule.yml
# 自定义输入参数
python cli.py --technique T1059.001 --test 2 --confirm --arg target_url=http://127.0.0.1:8080
# 保存输出到文件
python cli.py --technique T1059.001 --test 1 --confirm --output result.md
# 列出已保存的运行
python cli.py --results
```
## API 参考
| 方法 | 端点 | 描述 |
|------|------|------|
| GET | `/api/health` | 健康检查 |
| GET | `/api/atomics` | 列出所有技术 |
| GET | `/api/atomics/` | 获取某技术的测试 |
| POST | `/api/run` | 执行测试 |
| POST | `/api/validate` | 针对事件验证 Sigma 规则 |
| GET | `/api/results` | 列出历史运行(分页) |
| GET | `/api/result/` | 获取单次运行 |
| DELETE | `/api/result/` | 删除一次运行 |
| GET | `/api/result//export` | 导出运行(JSON 或 Markdown) |
### POST /api/run
```
{
"technique_id": "T1059.001",
"test_number": 1,
"confirm": true,
"dry_run": false,
"capture_events": true,
"normalize": true,
"timeout": 30,
"input_arguments": {"target_url": "http://127.0.0.1:8080"}
}
```
**响应:**
```
{
"success": true,
"run_id": "uuid",
"technique_id": "T1059.001",
"test_name": "PowerShell Encoded Command Execution",
"executed_at": "2025-01-01T12:00:00Z",
"exit_code": 0,
"duration_ms": 1240,
"event_count": 12,
"events": [{...ECS-lite...}],
"raw_output": "AtomicTest T1059.001-1: Encoded execution"
}
```
### POST /api/validate
```
{
"run_id": "uuid",
"sigma_rule": "title: Detect PowerShell Encoded Command\ndetection:\n ..."
}
```
**响应:**
```
{
"success": true,
"detection_fired": true,
"matched_events": [{...}],
"match_count": 3,
"gap_analysis": "Validated via DriftWatch. Detection FIRED: Sigma rule matched 3 of 12 captured events.",
"source": "driftwatch"
}
```
## 嵌入式技术库
| 技术 | 名称 | 战术 |
|------|------|------|
| T1059.001 | PowerShell | 执行 |
| T1059.003 | Windows Command Shell | 执行 |
| T1055 | 进程注入 | 防御规避 |
| T1003 | OS 凭据转储 | 凭据访问 |
| T1082 | 系统信息发现 | 侦察 |
| T1083 | 文件与目录发现 | 侦察 |
| T1057 | 进程发现 | 侦察 |
| T1069 | 权限组发现 | 侦察 |
| T1021.001 | 远程桌面协议 | 横向移动 |
| T1021.002 | SMB/Windows 管理共享 | 横向移动 |
| T1547.001 | 注册表运行项 | 持久化 |
| T1053.005 | 计划任务 | 持久化 |
| T1070.001 | 清除 Windows 事件日志 | 防御规避 |
| T1112 | 修改注册表 | 防御规避 |
| T1027 | 混淆文件 | 防御规避 |
| T1562.001 | 削弱防御 | 防御规避 |
| T1566.001 | 钓鱼附件 | 初始访问 |
| T1078 | 有效账户 | 防御规避 |
| T1110.001 | 密码猜测 | 凭据访问 |
| T1190 | 暴露面向公众的应用 | 初始访问 |
## 配置
| 键 | 默认值 | 描述 |
|----|--------|------|
| `port` | `5011` | HTTP 端口 |
| `db_path` | `./atomicloop.db` | SQLite 数据库 |
| `execution.timeout` | `30` | 默认执行超时(秒) |
| `execution.require_confirm` | `true` | 要求显式 confirm 标志 |
| `execution.auto_save` | `true` | 自动保存每次运行 |
| `integrations.lognorm_url` | `http://127.0.0.1:5006` | LogNorm 端点 |
| `integrations.driftwatch_url` | `http://127.0.0.1:5008` | DriftWatch 端点 |
## 安全控制
AtomicLoop 包含多项控制以防止意外执行:
1. **`confirm: true`** — 每次 `POST /api/run` 请求体中必需,用于执行。缺少则拒绝请求。
2. **`dry_run: true`** — 显示命令但不执行,始终安全。
3. **`require_confirm: true`**(配置) — 服务器级强制门控所有实时执行。
4. **超时** — N 秒后强制终止(默认 30)。
5. **`cleanup_command`** — 每个测试包含清理命令,测试后请运行。
## Nebula Forge 集成
在 `nebula-dashboard/config.yaml` 中添加:
```
tools:
atomicloop:
label: "AtomicLoop"
url: "http://127.0.0.1:5011"
health_path: "/api/health"
description: "Atomic Red Team test runner and detection validator"
category: "Detection"
```
## 许可证
本项目根据 MIT 许可证授权 — 详细信息请参阅 [LICENSE](LICENSE) 文件。
由 [Rootless-Ghost](https://github.com/Rootless-Ghost) 构建
属于 **Nebula Forge** 安全工具套件。
标签:AI合规, CISA项目, Cloudflare, cmd执行器, DriftWatch, dry run, ECS, FTP漏洞扫描, gap分析, LogNorm, MITRE ATT&CK, Nebula Forge, PowerShell执行器, Sigma规则, SQLite, Sysmon, T1059.001, T1059.002, T1059.003, T1059.004, T1059.005, T1059.006, T1059.007, T1059.008, T1059.009, T1059.010, T1059.011, T1059.012, T1059.013, T1059.014, T1190, TCP SYN 扫描, Terraform, Wazuh, Web UI, Windows事件日志, 事件归一化, 原子红队, 多语言支持, 安全日志, 安全模拟, 安全测试, 安全测试框架, 安全编排, 持久化历史, 攻击性安全, 日志捕获, 检测验证, 测试执行, 目标导入, 确认执行, 离线CLI, 端口5006, 端口5008, 端点安全, 端点检测, 紫色团队, 补丁管理, 超时配置, 逆向工具