← 返回首页

鸾鸟Agent:认知驱动的 AI 黑客

作者:whoami
发布时间:2026-03-06 10:07:24
浏览:1819    评论:6

鸾鸟Agent:认知驱动的 AI 黑客

2026-03-06 10:07:24 6 1819

鸾鸟Agent:认知驱动的 AI 黑客

Github:https://github.com/SanMuzZzZz/LuaN1aoAgent/

📖 简介

鸾鸟 (LuaN1ao) 是新一代基于大模型的自主渗透测试智能体

传统自动化扫描工具依赖预定义规则,难以应对复杂多变的实战场景。鸾鸟突破这一局限,创新性地融合了 P-E-R (Planner-Executor-Reflector) 智能体协同框架因果图谱推理 (Causal Graph Reasoning) 技术。

鸾鸟模拟人类安全专家的思维方式:

从信息收集到漏洞利用,鸾鸟将渗透测试从"自动化工具"提升为"自主智能体"。


🚀 核心创新

1️⃣ P-E-R 智能体协同框架 ⭐⭐⭐

鸾鸟将渗透测试思维解耦为三个独立且协作的认知角色,形成完整的决策闭环:

关键优势:角色分离避免了单一 Agent 的"精神分裂"问题,每个组件专注于其核心职责,通过事件总线协作。

2️⃣ 因果图谱推理 (Causal Graph Reasoning) ⭐⭐⭐

鸾鸟拒绝盲目猜测和大模型幻觉,构建显式的因果图谱来驱动测试决策:

核心原则

示例场景

Evidence: 端口扫描发现 3306/tcp 开放
  ↓ (置信度 0.8)
Hypothesis: 目标运行 MySQL 服务
  ↓ (验证成功)
Vulnerability: MySQL 弱口令/未授权访问
  ↓ (尝试利用)
Exploit: mysql -h target -u root -p [爆破/空密码]

3️⃣ Plan-on-Graph (PoG) 基于图的动态任务规划 ⭐⭐⭐

告别静态任务清单,鸾鸟将渗透测试计划建模为动态演进的有向无环图 (DAG)

核心特性

与传统规划的对比

特性 传统 Task List Plan-on-Graph
结构 线性列表 有向图谱
依赖管理 手动排序 拓扑自动排序
并行能力 自动识别并行路径
动态调整 重新生成 局部图编辑
可视化 困难 原生支持 (Web UI)

可视化示例:启动 --web 模式后,可在浏览器实时查看任务图的演化过程。


核心能力

工具集成 (MCP Protocol)

鸾鸟通过 Model Context Protocol (MCP) 实现工具的统一集成和调度:

💡 扩展性:可通过 mcp.json 轻松集成新工具(如 Metasploit、Nuclei、Burp Suite API)

知识增强 (RAG)

Web 可视化 (新架构)

Web UI 现在是一个独立的数据库驱动的服务,支持持久化的任务监控和管理。

人机协同 (HITL) 模式

鸾鸟智能体支持人机协同(Human-in-the-Loop, HITL)模式,允许人类专家监督和干预智能体的决策过程。这增强了控制力、安全性,并能在复杂场景中提供专家指导。

交互方式:


🗓️ Roadmap 规划路线

长期愿景


📋 系统要求

组件 要求 说明
操作系统 Linux (推荐) / macOS / Windows (WSL2) 建议在隔离环境中运行
Python 3.10+ 需要支持 asyncio 和类型提示
LLM API OpenAI 兼容格式 支持 GPT-4o, DeepSeek, Claude-3.5 等
内存 最小 4GB,推荐 8GB+ RAG 服务和 LLM 推理需要内存
网络 互联网连接 访问 LLM API 和更新知识库

⚠️ 安全提示:鸾鸟包含 shell_execpython_exec 等高权限工具,强烈建议在 Docker 容器或虚拟机中运行,避免对宿主机造成潜在风险。


🚀 快速开始

步骤 1:安装

# 克隆仓库
git clone https://github.com/SanMuzZzZz/LuaN1aoAgent.git
cd LuaN1aoAgent

# 创建虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate  # Linux/macOS
# Windows: venv\Scripts\activate

# 安装依赖
pip install -r requirements.txt

步骤 2:配置

2.1 环境变量配置

# 复制配置模板
cp .env.example .env

# 编辑 .env 文件
nano .env  # 或使用你喜欢的编辑器

核心配置项

# LLM API 配置(必填)
LLM_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
LLM_API_BASE_URL=https://api.openai.com/v1

# 推荐使用强大模型以获得更好效果
LLM_DEFAULT_MODEL=gpt-4o
LLM_PLANNER_MODEL=gpt-4o    # 规划器需要强推理能力
LLM_EXECUTOR_MODEL=gpt-4o
LLM_REFLECTOR_MODEL=gpt-4o

OUTPUT_MODE=default    # simple/default/debug

2.2 知识库初始化(首次运行必需)

鸾鸟依赖 RAG (检索增强生成) 系统获取最新安全知识。首次运行前需初始化知识库:

# 1. 克隆 PayloadsAllTheThings 知识库
mkdir -p knowledge_base
git clone https://github.com/swisskyrepo/PayloadsAllTheThings \
    knowledge_base/PayloadsAllTheThings

# 2. 构建向量索引(需要几分钟)
cd rag
python -m rag_kdprepare

知识库说明:PayloadsAllTheThings 包含丰富的攻击载荷、绕过技巧和漏洞利用方法,是渗透测试的宝贵资源。

步骤 3:运行 (新架构)

系统现在分为两个独立进程运行:Web 服务(监控台)和 Agent(工作进程)。它们通过本地 SQLite 数据库 (luan1ao.db) 通信。

1. 启动 Web 服务 (监控台)

首先启动持久化的 Web 界面。该进程应保持运行。

python -m web.server

打开浏览器访问:<http://localhost:8088>

2. 运行 Agent 任务

打开一个新的终端窗口运行 Agent。Agent 将执行任务,将日志写入数据库,并在完成后退出。Web UI 会实时更新。

# 基础用法
python agent.py \
    --goal "对 http://testphp.vulnweb.com 进行全面的 Web 安全测试" \
    --task-name "demo_test"

# 启用 --web 标志以打印任务 URL
python agent.py \
    --goal "扫描 localhost" \
    --task-name "local_scan" \
    --web

查看结果

logs/demo_test/20250204_120000/
├── run_log.json          # 完整执行日志(包含所有 P-E-R 交互)
├── metrics.json          # 性能指标和统计数据
└── console_output.log    # 格式化的控制台输出

🏗️ 系统架构

整体架构图

┌─────────────────────────────────────────────────────────┐
│                  用户目标 (User Goal)                    │
│            "对目标系统进行全面的渗透测试"                 │
└────────────────────────┬────────────────────────────────┘
                         ▼
┌─────────────────────────────────────────────────────────┐
│              P-E-R 认知层 (Cognitive Layer)              │
│  ┌──────────┐      ┌──────────┐      ┌──────────┐      │
│  │ Planner  │ ───> │ Executor │ ───> │Reflector │      │
│  │  规划器   │      │  执行器   │      │  反思器   │      │
│  └──────────┘      └──────────┘      └──────────┘      │
│       │                  │                  │            │
│       └──────────────────┴──────────────────┘            │
│                         ▲                                │
│                         │  LLM API 调用                   │
└─────────────────────────┼────────────────────────────────┘
                          │
┌─────────────────────────┴────────────────────────────────┐
│               核心引擎 (Core Engine)                      │
│  ┌────────────────────────────────────────────────┐     │
│  │ GraphManager                                   │     │
│  │ • 任务图谱管理 (DAG)                            │     │
│  │ • 状态追踪与更新                                 │     │
│  │ • 拓扑排序与依赖解析                             │     │
│  │ • 并行任务调度                                   │     │
│  └────────────────────────────────────────────────┘     │
│  ┌────────────────────────────────────────────────┐     │
│  │ 数据库层 (SQLite)                               │     │
│  │ • 任务、图谱、日志的持久化存储                    │     │
│  │ • 状态管理解耦                                   │     │
│  └────────────────────────────────────────────────┘     │
│  ┌────────────────────────────────────────────────┐     │
│  │ EventBroker (全局)                              │     │
│  │ • 组件间通信                                     │     │
│  │ • 事件发布/订阅                                  │     │
│  └────────────────────────────────────────────────┘     │
└─────────────────────────┬────────────────────────────────┘
                          │
┌─────────────────────────┴────────────────────────────────┐
│            能力支撑层 (Capability Layer)                  │
│  ┌────────────────────┐  ┌──────────────────────────┐   │
│  │ RAG Knowledge      │  │ MCP Tool Server          │   │
│  │ Service            │  │                          │   │
│  │ • FAISS 向量检索   │  │ • http_request           │   │
│  │ • 知识文档解析     │  │ • shell_exec             │   │
│  │ • 相似度搜索       │  │ • python_exec            │   │
│  │                    │  │ • think/hypothesize      │   │
│  └────────────────────┘  │ • halt_task              │   │
│                          └──────────────────────────┘   │
└──────────────────────────────────────────────────────────┘

P-E-R 协作流程

sequenceDiagram
    participant U as User
    participant P as Planner
    participant G as GraphManager
    participant E as Executor
    participant R as Reflector
    participant DB as SQLite DB
    participant W as Web UI

    U->>P: 输入目标
    P->>G: 初始化任务图谱
    G->>DB: 持久化初始状态
    W->>DB: 轮询更新 (SSE)

    loop P-E-R 循环
        P->>G: 分析图谱,生成图编辑操作
        G->>G: 更新图谱结构
        G->>DB: 同步更新
        G->>E: 分配待执行子任务

        E->>E: 调用工具执行
        E->>DB: 记录日志事件

        E->>R: 请求反思
        R->>R: 分析成功/失败原因
        R->>G: 更新节点状态
        G->>DB: 同步更新
    end

目录结构

LuaN1aoAgent/
├── agent.py                    # 主入口,P-E-R 循环控制
├── requirements.txt            # 项目依赖
├── pyproject.toml             # 项目配置和代码质量工具设置
├── mcp.json                   # MCP 工具服务配置
├── .env                       # 环境变量配置(需手动创建)
│
├── conf/                      # 配置模块
│   ├── config.py             # 核心配置项(LLM、场景、参数)
│   └── __init__.py
│
├── core/                      # 核心引擎
│   ├── planner.py            # 规划器实现
│   ├── executor.py           # 执行器实现
│   ├── reflector.py          # 反思器实现
│   ├── graph_manager.py      # 图谱管理器
│   ├── events.py             # 事件总线
│   ├── console.py            # 控制台输出管理
│   ├── data_contracts.py     # 数据契约定义
│   ├── tool_manager.py       # 工具管理器
│   ├── intervention.py       # 人机协同管理器
│   ├── database/             # 数据库持久化层
│   │   ├── models.py         # SQLAlchemy 模型
│   │   └── utils.py          # 数据库工具函数
│   └── prompts/              # 提示词模板系统
│
├── llm/                       # LLM 抽象层
│   ├── llm_client.py         # LLM 客户端(统一接口)
│   └── __init__.py
│
├── rag/                       # RAG 知识增强
│   ├── knowledge_service.py  # FastAPI 知识服务
│   ├── rag_client.py         # RAG 客户端
│   ├── rag_kdprepare.py      # 知识库索引构建
│   ├── markdown_chunker.py   # 文档分块
│   └── model_manager.py      # 嵌入模型管理
│
├── tools/                     # 工具集成层
│   ├── mcp_service.py        # MCP 服务实现
│   ├── mcp_client.py         # MCP 客户端
│   └── __init__.py
│
├── web/                       # Web UI
│   ├── server.py             # Web 监控台服务
│   ├── static/               # 前端静态资源
│   └── templates/            # HTML 模板
│
├── knowledge_base/            # 知识库目录(需手动创建)
│   └── PayloadsAllTheThings/ # 安全知识库(需克隆)
│
└── logs/                      # 运行日志和指标
    └── TASK-NAME/
        └── TIMESTAMP/
            ├── run_log.json
            ├── metrics.json
            └── console_output.log

类别 开源工具

关于作者

whoami119篇文章187篇回复

勤快的搬运工。