Niranjan-githubs/Sentinel

GitHub: Niranjan-githubs/Sentinel

SENTINEL 是一个利用微调大语言模型的自主 Web 渗透测试代理,专门针对 SQL 注入和跨站脚本漏洞进行智能攻击模拟,解决了传统扫描器误报率高的问题。

Stars: 0 | Forks: 0

# SENTINEL:自主 Web 渗透测试代理 **SENTINEL** 是一个由经过微调的 Llama-3-8B 模型(通过 QLoRA 适配器)驱动的自主 Web 渗透测试代理。与依赖静态启发式方法并产生大量误报的传统漏洞扫描器不同,SENTINEL 在一个闭环(感知 → 思考 → 行动 → 观察)中充当专门的“大脑”,主动爬取网页、优先处理潜在漏洞点,并针对 Web 应用程序执行 SQL 注入或 XSS 攻击。 它采用一种稳健的 DOM 修剪策略,将 HTML 压缩为与安全相关的足迹,并发出严格的、可执行的 ReAct JSON 载荷来与浏览器进行交互。 ## 实时交互演示 无需任何本地设置,通过我们的 Hugging Face 空间直接体验模型: 🔗 **[SENTINEL 交互演示](https://huggingface.co/spaces/niranjan2777/Sentinel-web-pentesting)** ## 模型权重 微调后的模型权重可在 Hugging Face 上获取: * **基础模型张量(LoRA 适配器):** [niranjan2777/SENTINEL](https://huggingface.co/niranjan2777/SENTINEL) * **量化 GGUF(推荐用于消费级硬件):** [niranjan2777/SENTINEL-q5_k_m-GGUF](https://huggingface.co/niranjan2777/SENTINEL-q5_k_m-GGUF) ## 🛠️ 设置说明 ### 1. 安装依赖项 确保已安装 Python 3.10 或更高版本。 ``` pip install -r requirements.txt playwright install chromium ``` ### 2. 示例 OWASP 目标设置 ``` docker-compose up -d juice-shop dvwa ``` * Juice Shop 将在 `http://localhost:3000` 上可用 ### 3. 将 GGUF 模型加载到 Ollama 进行本地推理时,请下载高度优化的 `Q5_K_M` GGUF 模型,并使用 Ollama 进行服务。 ``` # 1. 从 Hugging Face 下载量化模型 cd model # Linux / macOS wget https://huggingface.co/niranjan2777/SENTINEL-q5_k_m-GGUF/resolve/main/model-q5_k_m.gguf # Windows PowerShell Invoke-WebRequest -Uri "https://huggingface.co/niranjan2777/SENTINEL-q5_k_m-GGUF/resolve/main/model-q5_k_m.gguf" -OutFile "model-q5_k_m.gguf" # 2. 创建 Ollama Modelfile echo "FROM ./model-q5_k_m.gguf" > Modelfile # 3. 本地创建并部署模型 ollama create sentinel -f Modelfile ollama serve ``` ## ⚙️ 如何构建和运行配置 代理的行为由 YAML 配置驱动。每个场景都从一个基础配置 (`config/default.yaml`) 继承,并覆盖特定设置以定义目标约束、预算和成功标准。 **示例场景配置 (`config/scenarios/dvwa_sqli.yaml`):** ``` extends: ../default.yaml target: base_url: http://localhost:8080 name: dvwa # ─── 成功标准 ───────────────────────────────────────────────────────── # 智能体必须自主达成以下两个胜利条件之一: # 1. 已登录 — 在 /login.php 实现 SQLi 绕过 # 2. 数据已窃取 — 在 /vulnerabilities/sqli/?id= 实现 SQLi # 哪个先触发哪个获胜。智能体不获得提示、凭证或作弊手段。 # ────────────────────────────────────────────────────────────────────────────── goal: DVWA_PWNED budgets: max_iterations: 50 max_model_calls: 100 max_wall_seconds: 600 # 显示浏览器 — 让你实时观看攻击过程 browser: headless: false observability: log_dir: artifacts/runs screenshots: true ``` ### 运行代理 使用 CLI 对场景无人值守运行代理: ``` python -m agent run --config config/scenarios/login_bypass.yaml ``` *代理将自主导航、修剪 DOM、制定攻击策略、注入载荷并检查目标状态,直至目标达成或令牌/迭代预算耗尽。* ## 📸 示例输出与执行 在攻击运行期间,SENTINEL 会记录每个步骤并在 `artifacts/runs/` 目录中拍摄其进度的视觉快照。以下是显示代理进度的示例执行序列: **初始目标识别与爬取** ![迭代 1](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/13e21cd484062421.png) **识别漏洞点** ![迭代 2](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6dd3907fbd062422.png) **制定攻击策略** ![迭代 3](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/3a340adf49062423.png) **载荷注入(提交前)** ![迭代 4 - 提交前](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/44fb0b2520062423.png) **利用成功** ![迭代 4 - 提交后](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/155416cd79062424.png) 要审查代理完整的决策过程和结果,请检查生成的日志文件,位于 `artifacts/runs//log.jsonl`(例如 `artifacts/runs/1779148570-eb1004/log.jsonl`)。此 JSONL 文件记录了每次 ReAct 循环、载荷注入和目标评估!
标签:特征检测, 请求拦截, 逆向工具