Jihashtag/AttackSim
GitHub: Jihashtag/AttackSim
AttackSim 是一个无需凭证、纯外部视角的自动化攻击者模拟与 CVE 验证渗透测试框架,帮助红队和防御方以攻击者思维验证资产风险是否真实可被利用。
Stars: 0 | Forks: 0
# AttackSim — 自动化攻击者模拟与 CVE 验证框架
用于未授权攻击者模拟的**开源 Python 渗透测试框架**,
CVE 验证、AI 驱动的漏洞利用生成以及交互式安全分诊。
无需凭证 · 无需 agent · 纯外部攻击者视角。
AttackSim 模拟一名仅具有网络访问权限的红队攻击者 —— 不使用或不需要任何 AWS、EKS、
ArgoCD 或 JFrog 凭证。它在可能的情况下运行真实的漏洞利用
(JWT 伪造、密码哈希破解、实时服务探测、经 CVE 验证的 PoC 脚本),
并对其余部分进行静态可达性分析,然后针对每次攻击告诉您:
- **`[ EXPLOITED ]`** —— 攻击成功;存在可利用的弱点。
- **`[ MITIGATED ]`** —— 攻击失败;该风险已得到缓解。
如果**任何**模块攻击成功,AttackSim 将以退出码 `1` 退出,并输出一份统一的“攻击者可能
利用的问题”摘要。如果**所有**攻击均失败,AttackSim 将打印“评估的风险已缓解 (MITIGATED)”并
以退出码 `0` 退出。
## 快速开始
```
git clone https://github.com/Jihashtag/AttackSim.git && cd attacksim
./run_all.sh # attack the parent workspace
./run_all.sh --url https://api.example.com # probe a live endpoint
./run_all.sh 10.0.0.5:22,80,6379 # host:port service probe
./run_all.sh --cidr 10.0.0.0/24 # network sweep
python3 main.py --no-color # direct Python invocation
```
扫描完成后,使用 AttackSim 的分诊工具交互式地重放和分诊 CVE 发现:
```
# 加载已保存的 JSON 报告并逐一查看每个 CVE 发现:
python3 triage.py scan_results.json
# 筛选 HIGH+ 严重级别并自动提示实时重新验证每个发现:
python3 triage.py scan_results.json --severity HIGH --re-verify
# 包含所有已利用的发现(不仅仅是 CVE 标记的):
python3 triage.py scan_results.json --all
```
有关完整示例,请参阅 [docs/quickstart.md](docs/quickstart.md)。
## 核心功能
- **107 个已注册的攻击模块**,涵盖 repo、URL、凭证、主机:端口、网络
范围、本地自省、现场/物理(WiFi、Bluetooth、路由器、Android/iOS)、
云、网络设备以及 101-CVE 离线源(OpenSSH、Bash、Linux kernel、Windows、
macOS、Apache、nginx、OpenSSL、Log4j/Log4Shell、Spring4Shell、Confluence、Jenkins、
GitLab、Docker、Kubernetes、Elasticsearch、IIS、Jira、Grafana、Keycloak) — 外加针对
Log4Shell、Apache Struts OGNL RCE、EternalBlue
(MS17-010)、ActiveMQ OpenWire RCE 和 Slowloris DoS 的高危 CVE 检测模块
- **AI 驱动的 CVE 漏洞利用生成** — AttackSim 的 CVE pipeline 使用本地 LLM
(Ollama) 直接根据 CVE 元数据生成并补全 PoC 验证脚本;
交互式 `[ri]` 分诊路径会自动检测存根脚本,并提供 LLM 补全
以及运行后输出摘要功能
- **5 个强度等级**(detective → active → intrusive → proof → fuzz),在 intrusive+ 时需要强制
确认(`--yes` 或交互式确认)
- **凭证防护** — 在模块执行前清除所有环境凭证
- **CVE 发现 pipeline** — 通过 NVD 将服务 banner 解析为 CVE,生成并运行
AI 辅助的验证脚本
- **访问证明** — 无害、持久、带标签的制品,用于证明可利用性
- **360° 横向移动** — 通过中继从已证实的立足点向子网对等节点进行跳板攻击
- **自我传播** — 将 AttackSim 部署到立足点上并从网络内部进行扫描
- **云评估** — 只读 IAM 分析和权限提升模拟
(AWS/GCP/Azure + OVH、Scaleway、OCI、DigitalOcean、Hetzner、Linode、Vultr、Alibaba、
Nutanix、Confluent Cloud)
- **网络设备评估** — F5 BIG-IP、Fortinet FortiGate、Cisco Meraki、
Cisco ASA/FTD、Cisco ISE、Catalyst Center 枚举
- **攻击链关联** — 将单个发现链接为端到端的 kill-chain
- **多种输出格式** — console、JSON、Markdown、SARIF、HTML
- **CI 门禁** 支持基线比较和严重性阈值
## 文档
| 文档 | 内容 |
|---|---|
| [快速开始](docs/quickstart.md) | 安装、常见示例、并行执行、可选附加组件 |
| [目标](docs/targets.md) | 目标类型、解析优先级、端口规范、批量目标 |
| [模块](docs/modules.md) | 按类别划分的全部 107 个模块 (repo、active、intrusive、高危 CVE、on-site、cloud、fuzz、proof) |
| [强度与范围](docs/intensity-and-scope.md) | 等级定义、范围强制执行、配置文件 |
| [CLI 参考](docs/cli-reference.md) | 完整的参数参考和退出代码 |
| [凭证防护](docs/credential-guard.md) | 凭证是如何被中和的 |
| [访问证明](docs/proof-of-access.md) | 证明类型、360° 扫描、中继、账本 |
| [云评估](docs/cloud-assessment.md) | 凭证云路径、IAM 分析、零授权证明 |
| [CVE Pipeline](docs/cve-pipeline.md) | CVE 解析、漏洞利用规划、AI 驱动的 PoC 生成、交互式分诊 |
| [传播](docs/propagation.md) | 自部署到已证实的立足点 |
| [本地自省](docs/local-introspection.md) | 容器逃逸检测、rootkit IOCs、现场/物理评估 (WiFi、Bluetooth、路由器、Android/iOS、privesc) |
| [输出与 CI](docs/output-and-ci.md) | 报告格式、攻击链、基线漂移、CI 门禁 |
| [架构](docs/architecture.md) | 项目布局、模块契约、数据模型、编排流程 |
| [安全](docs/safety.md) | 设计原则、禁止事项、强制执行层 |
| [开发](docs/development.md) | 环境设置、测试、添加模块、约定 |
## 安全摘要
AttackSim 专为已授权的防御性用途而设计。所有安全属性均
在运行时强制执行,而不仅仅是依靠约定:
- **默认只读** — 只有 proof 级别的模块(可选择开启)会创建制品
- **无需凭证** — 运行时防护机制会清除所有凭证来源
- **强制确认** — 在 intrusive+
强度下强制要求 `--yes` 或交互式提示(范围 = 目标派生;可选 `--scope` 用于缩小范围)
- **请求预算限制** — 全局上限防止 DoS
- **密钥脱敏** — 发现结果绝不暴露原始密钥值
- **受控传输** — 防止 git-push 和防止 git-cli(可选择开启,proof 级别)
可能会推送带标签的标记分支作为供应链访问证据;所有其他 AttackSim
模块绝不会进行 commit、push 或发送到外部
标签:Cutter, Maven, Python, 域名收集, 文档结构分析, 无后门, 渗透测试框架, 漏洞利用生成, 漏洞验证, 网络安全, 自动化红队模拟, 逆向工具, 防御, 隐私保护