cxm947 / FakeLiang
git clone https://github.com/cxm947/FakeLiang.git
基于攻击图的靶场自动验证,多agent框架,kali MCP,自动化编排,POC生成。
+3
stars, 24h · #8,400
+~12
stars, 7 days · #11,189
+229
stars, 30 days · #3,526
229
★ total · +6% this week
15
forks · 0 open issues
Star history (as recorded here)
LanguagePython
License—
Created2026-10-12 (11d ago)
Last push3d ago
Watchers0
OwnerUser
Links
README excerpt
攻击图自动验证 Agent 沿图推进,逐步验证,让每个结论都有据可查。 MulVAL / JSON 攻击图 · 技能卡驱动 · 多 Agent 协作 · 调用证据落盘 🧭 项目简介 · 🚀 快速开始 · 🧾 运行产物 · 🧪 离线检查 · 📚 文档导航 --- ## 🧭 FakeLiang 是什么? FakeLiang 读入一张**已有攻击图**(MulVAL TXT 或已编译 JSON)、资产信息与主机-IP 映射表,按技能卡驱动大模型,在靶场上逐节点验证图中的路径:**先做前期验证,再执行利用,最后核对产出事实**,全程保存可复核的调用记录。 当前聚焦于确定性攻击图的路径验证。结论以本轮证据为准:命令是否执行完毕、模型报告了什么、节点事实是否成立、整图是否通过,分别按各自的判据解释。 | 核心能力 | 具体做什么 | | :--- | :--- | | 🗺️ **图驱动推进** | 从图中的节点、依赖与目标事实出发,结合已有结果安排下一步 | | 🧩 **技能卡驱动** | 每张卡提供适用条件、输入、操作知识与判据,供执行过程使用 | | 🤝 **多 Agent 协作** | 规划、执行、核验各有职责,运行时负责依赖、会话和调用记录 | | 🧾 **证据可追溯** | 保存调用参数、标准输出、错误输出与模型转录,支持逐步复核 | ## 🔄 三个 Agent,怎样协作? **攻击图与映射 → 规划节点 → 前期验证 → 执行 → 事实核验 → 登记收获 → 下一节点** | 角色 | 职责 | | :--- | :--- | | 🗺️ **Planner · 规划** | 读取图、已有结果与上一节点状态,选择下一节点;运行时核对依赖条件 | | ⚙️ **Executor · 执行** | 按技能卡完成节点任务,逐步提交动作,并记录每次调用的回执 | | 🔍 **Verifier · 核验** | 核对本轮调用证据、前置事实与待产出事实,分别保留模型判断和机器判据 | 遇到阻断、未满足或不确定的结果时,按实际状态记录。调用完成本身不等于节点已被证明,历史运行通过也不自动成为当前修订的验收结论。 ## 🧰 运行前需要准备什么? | 项目 | 要求 | | :--- | :--- | | **控制端** | Windows + CPython 3.12;发布验收环境为 Windows x64 / Python 3.12 | | **执行端** | 一台可 SSH 的 Kali,且 Metasploit RPC 可达 | | **靶场与输入** | 主机、路由、资产信息与主机-IP 映射需和攻击图一致 | | **模型服务** | OpenAI 兼容端点与自己的 API key | | **图形输出** | 默认输出 JSON、DOT 与 PDF;PDF 需要 Graphviz。使用 `--json-only` 可跳过 PDF,仍保留 JSON / DOT | | **离线检查** | Git 用于核对文件地图,测试依赖随 `requirements.txt` 安装 | `pyproject.toml` 中的 `>=3.10` 是包元数据下限;本项目的发布验收口径仍是 **Python 3.12 / Windows**。 ## 🚀 快速开始 ### 1 · 获取项目并安装 在 PowerShell 中执行: [code] `requirements.txt` 包含运行、靶场和离线验收的全部直接依赖。`-e .` 安装本项目自身,`agv-project`、`agv-visualize` 与 `python -m agents.*` 等入口由它提供。 ### 2 · 准备模型与图输入 模型 key 默认从 `AGV_MODEL_API_KEY` 读取,也可用 `--model-api-key-env` 指定其他变量名: [code] 示例使用仓库自带的 Hongri7 输入: | 输入 | 文件 | | :--- | :--- | | 攻击图 | `Hongri7_v2.txt` | | 资产信息 | `assets.json` | | 主机-IP 映射 | `host_ip_map.csv` | 实际运行前,按自己的部署核对这三份输入。凭据文件与私有材料目录放在仓库外;供给方式见凭据说明。 ### 3 · 编译预览与运行 图编译可单独用于预览;整图入口也支持直接读取 TXT 并现场编译,无需先手动编译。 [code] 将示例中的 Kali 地址、密码、RPC 信息和模型端点替换为本轮配置。完整参数与其他入口见 scripts/README.md。 ## 🧾 跑完以后,看哪些结果? 运行结果保存在 `--run-root` 指定的目录。通常先看整轮摘要,再沿节点和调用记录核对证据。 | 产物 | 用途 | | :--- | :--- | | `plan_result.json` | 查看节点状态、阻断与未尝试项、终点事实和整轮判定 | | `walk.txt` | 阅读按步骤整理的运行过程 | | `planner.jsonl` | 追溯规划选择与规划调用记录 | | `model_outputs.md` | 查看脱敏后的逐节点模型转录 | | 节点目录中的 `calls/ /` | 核对该次调用的 `call.json`、`stdout.txt` 与 `stderr.txt` | | 节点目录中的 `events.jsonl` | 追溯节点事件 | | `harvest.jsonl` | 查看会话、凭据引用与产物的统一收获记录 | 判读结果时,将**执行回执、模型结论、事实证据与整图判定**分别核对。 ## 🧪 离线检查 在仓库根目录执行: [code] `scripts/ci.py` 包含三项检查:**测试、技能卡检查、文件地图检查**,均不连接靶场、不调用模型。 离线预览装配好的提示词: [code] ## 📚 按任务找到入口 | 你想做什么 | 阅读入口 | | :--- | :--- | | 了解参数、整图运行与各类命令 | 脚本说明 | | 运行单个节点或单张技能卡 | `run_node.py` · `run_lean_task.py` | | 管理会话与回收资源 | `session_manager.py` · `reclaim.py` | | 阅读日志与模型转录 | `journal.py` · `node_transcript.py` | | 了解现行说明、设计和历史记录 | 产品文档导航 | | 查阅技能卡约定 | 技能卡说明 · 技能卡目录 | | 查文件职责或参与修改 | 文件地图 · 贡献约定 | ### 🗂️ 目录速览 | 目录 | 内容 | | :--- | :--- | | `src/` | 图编译、运行层、Planner / Executor / Verifier、会话与证据 | | `skills/` | 技能卡正文、机器描述与随卡资源 | | `scripts/` | 命令行入口与离线检查 | |