首页 网络安全 渗透测试 查看内容

100种漏洞、56个工具、4层验证,拆解一个AI渗透测试平台

2026-5-6 16:14 4307 0

摘要: 技术栈:层级技术后端Python 3.10+ / FastAPI / SQLAlchemy(异步)前端React 18 / TypeScript / Tailwind CSS / ViteAIClaude / GPT / Gemini / Ollama / LMStudio / OpenRouter容器Docker /...
关键词:Kali容器, Docker, Gemini, payload, NeuroSploit, AI, Kali, Gin, 安全测试

用过AI做安全测试的人大概都经历过——AI信誓旦旦地说"发现SQL注入",手动一验证,就是个普通的报错页面。

这不是AI笨,是AI太"配合"了。训练数据里"发现漏洞"是正向反馈,所以它倾向于把任何异常响应都往漏洞上靠。扫一遍报50个发现,手动验证完能用的不到5个。

最近在GitHub上看到一个叫NeuroSploit的项目,做了一件很多同类工具没认真做的事——把解决AI误报当成核心问题来设计

项目概况

NeuroSploit是一个AI驱动的自动化渗透测试平台,来自巴西安全研究者Joas Antonio(OWASP成员,MITRE ATT&CK贡献者)。目前1,027颗星,251个fork,MIT开源协议,64次提交,6个版本tag。

技术栈:

层级
技术
后端
Python 3.10+ / FastAPI / SQLAlchemy(异步)
前端
React 18 / TypeScript / Tailwind CSS / Vite
AI
Claude / GPT / Gemini / Ollama / LMStudio / OpenRouter
容器
Docker / Kali Linux沙箱
数据库
SQLite
通信
WebSocket(实时推送) + REST API(111个端点)

项目组织架构:

NeuroSploit/
├── backend/                    # FastAPI后端
│   ├── api/v1/                 # REST API(13个路由模块)
│   ├── core/
│   │   ├── autonomous_agent.py # AI代理核心(~7000行)
│   │   ├── vuln_engine/        # 漏洞引擎(100种类型)
│   │   │   ├── registry.py     # 漏洞类型注册表
│   │   │   ├── payload_generator.py  # 526个payload
│   │   │   ├── ai_prompts.py   # 每种漏洞的AI决策提示
│   │   │   ├── system_prompts.py # 12个反幻觉提示模板
│   │   │   └── testers/        # 10个分类测试模块
│   │   ├── validation/         # 误报过滤
│   │   │   ├── negative_control.py  # 阴性对照引擎
│   │   │   ├── proof_of_execution.py # 25+种执行证明方法
│   │   │   ├── confidence_scorer.py # 0-100置信度评分
│   │   │   └── validation_judge.py  # 最终裁决
│   │   ├── waf_detector.py     # 16种WAF识别 + 12种绕过
│   │   ├── chain_engine.py     # 10条漏洞链规则
│   │   ├── strategy_adapter.py # 策略自适应
│   │   └── report_engine/      # 报告生成(HTML/PDF/JSON)
│   └── models/                 # 数据模型
├── frontend/                   # React前端
│   └── src/pages/              # 9个页面(仪表盘、自动渗透、漏洞实验室等)
├── core/                       # 共享核心模块
│   ├── llm_manager.py          # 多LLM路由
│   ├── sandbox_manager.py      # 容器管理
│   ├── container_pool.py       # 容器池协调(最大5并发)
│   ├── tool_registry.py        # 56个工具安装配方
│   └── mcp_server.py           # MCP服务(12个工具)
├── docker/                     # Docker配置
│   ├── Dockerfile.kali         # Kali沙箱镜像
│   ├── Dockerfile.backend      # 后端镜像
│   └── Dockerfile.frontend     # 前端镜像
├── config/                     # 配置文件
├── data/                       # 知识库和学习数据
└── scripts/                    # 构建和工具脚本

功能清单:

功能
说明
自动渗透测试
3流并行(侦察+初测+工具),AI全程调度
100种漏洞检测
10大类,526个payload,覆盖注入/认证/授权/文件/请求伪造等
反幻觉验证
4层管线:阴性对照→执行证明→AI判断→置信度评分
Kali容器沙箱
每次扫描独立容器,56个工具按需安装,自动销毁
WAF检测绕过
16种WAF签名识别,12种绕过技术
漏洞链编排
10条链式规则(SSRF→内网、SQLi→提权等)
多LLM支持
6个提供商,智能路由
实时监控
WebSocket推送扫描进度和发现
报告生成
HTML/PDF/JSON,含PoC代码和置信度
定时任务
Cron/间隔调度
漏洞实验室
按类型单独测试
AI终端
对话式安全测试
暂停/恢复
扫描任务支持断点续扫
多用户认证
同时管理多个身份,测试权限类漏洞
跨扫描学习
历史成功率影响后续优先级

核心设计拆解

4层验证管线

AI做安全测试,误报是最大的坑。NeuroSploit的解法是4层独立验证,最终由ValidationJudge做终审判决。

第一层:阴性对照。

发一个正常请求(空payload或随机字符串),和带payload的请求做对比。如果响应一样,说明服务器根本没处理payload,直接扣60分置信度。

很多AI安全工具缺的就是这一步——只发了payload,没发对照请求,分不清"服务器本身就这样"和"payload真的触发了漏洞"。

第二层:执行证明。

每种漏洞类型有对应的证明方法,要有具体证据才算数:

  • XSS:payload是否出现在正确的上下文里(不是被转义了)
  • SSRF:响应是否包含内网元数据的实际内容(169.254.169.254的返回值)
  • SQLi:是否有数据库特有的错误特征(MySQL、PostgreSQL、MSSQL各不同)
  • BOLA:两个不同权限账号请求同一资源,返回数据是否不同

一共25+种证明方法,覆盖主要漏洞类型。

第三层:AI二次判断。

用带反幻觉系统提示的LLM做二次分析。12个可组合的提示模板覆盖不同场景:核心真实性、阴性对照、执行证明、前后端关联、严重性不膨胀等。推测性表述("可能是""也许是")直接拒绝。

第四层:置信度评分。

0-100分,≥90确认,≥60疑似,<60拒绝。加减分规则透明:阴性对照扣60,有执行证明加分,只有baseline没细节扣分。

使用者看到的不是"发现/未发现"的二元结果,而是每个发现的具体置信度,自己判断要不要跟进。

扫描结果页面,每个漏洞发现都带有置信度评分和验证状态

3流并行架构

传统扫描工具串行执行——先扫端口,再扫目录,再测漏洞。慢,而且前面的结果不能实时给后面用。

NeuroSploit把一次扫描拆成3个并行流:

侦察流:爬页面、提取参数、检测技术栈、识别WAF。发现实时推送到共享队列。

初测流:从队列消费端点,每个端点3个payload做初步测试。AI根据侦察流的技术栈和WAF信息,优先选最可能成功的漏洞类型。

工具流:跑Nuclei、Naabu等传统工具,AI分析输出,有价值的发现推送到队列。

三流汇总后进入深度分析——完整payload集、漏洞链编排、PoC生成。

AI安全代理提供4种操作模式:全自动、仅侦察、AI提示模式、仅分析,适应不同测试场景

3流并行扫描实时运行中,侦察、初测、工具流同时推进

Kali容器隔离

安全工具之间经常互相干扰。nmap残留进程占端口,sqlmap临时文件影响后续测试。

NeuroSploit每次扫描启动一个独立Kali Docker容器,56个工具按需安装(28个预装+28个首次使用时自动装),扫描完自动销毁。容器池最多5个并发,每个限制2GB内存/2核CPU,60分钟TTL。

干净、隔离、可重复。同一个目标跑两次,不会因为环境残留导致结果不一致。

容器沙箱监控页面,实时显示每个Kali容器的运行状态,最大5个并发,60分钟自动销毁

其他亮点设计

Token预算分级。 AI调用不是无限的。0-60%预算全功能,60-80%跳过增强,80-95%只做验证,95%以上纯技术不调AI。防止扫到一半token用完,关键步骤没跑。

策略自适应。 端点连续5次报错→标记死端点跳过。某类漏洞多处未发现→降低优先级。发现SSRF→自动加入相关内网段。不是固定流程,根据实时结果调整。

漏洞链编排。 10条链式规则:SSRF→内网服务,SQLi→数据库提权,LFI→配置文件读取,XSS→会话劫持→账户接管。单点漏洞价值有限,链式利用才是渗透测试的核心。

想试试的话

环境要求: Python 3.10+、Node.js 16+、Docker

后端部署:

git clone https://github.com/JoasASantos/NeuroSploit.git
cd NeuroSploit
cp .env.example .env

编辑.env文件,至少配置一个LLM的API Key:

ANTHROPIC_API_KEY=sk-ant-xxx
# 或者
OPENAI_API_KEY=sk-xxx
# 或者
GEMINI_API_KEY=xxx

安装依赖并启动:

pip install -r requirements.txt
uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload

前端部署(新开一个终端):

cd frontend
npm install
npm run dev

Kali沙箱镜像(推荐,首次约5分钟):

./scripts/build-kali.sh

启动后访问 http://localhost:8000(生产模式)或 http://localhost:5173(开发模式),在设置页面确认API Key配置正确即可开始使用。

设置页面支持8种LLM提供商切换,包括Claude、GPT、Gemini以及Ollama、LMStudio等本地模型

报告管理页面,支持HTML/PDF/JSON多种格式,含漏洞统计和一键下载

写在最后

NeuroSploit最有价值的不是集成了多少工具、覆盖了多少漏洞类型,而是它认真对待了一个被大多数同类工具忽略的问题:怎么让AI在安全测试中少说假话

4层验证、阴性对照、执行证明、置信度评分——这些设计的本质就一件事:给AI的输出加约束。不让它自由发挥,用工程化手段把"可能的漏洞"和"确认的漏洞"划出界限。

能力决定上限,克制决定下限。一个报50个发现只有5个能用的工具,和一个报10个发现有8个能用的工具,后者才是安全工程师真正需要的。

做安全测试这行,最重要的从来不是发现了多少问题,而是你报出去的每个问题都经得起验证。

工具是这样,人也是这样。

本文仅做技术分享与项目分析,不构成任何安全测试建议。使用相关工具请遵守所在地区法律法规,未经授权的安全测试行为可能涉嫌违法。

end



点个“在看”表示朕

已阅

本文出处: https://mp.weixin.qq.com/s/Vp3YwRqmz3-SlH5JyTuZmA
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部