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, 域名收集, 文档结构分析, 无后门, 渗透测试框架, 漏洞利用生成, 漏洞验证, 网络安全, 自动化红队模拟, 逆向工具, 防御, 隐私保护