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/` 目录中拍摄其进度的视觉快照。以下是显示代理进度的示例执行序列:
**初始目标识别与爬取**

**识别漏洞点**

**制定攻击策略**

**载荷注入(提交前)**

**利用成功**

要审查代理完整的决策过程和结果,请检查生成的日志文件,位于 `artifacts/runs//log.jsonl`(例如 `artifacts/runs/1779148570-eb1004/log.jsonl`)。此 JSONL 文件记录了每次 ReAct 循环、载荷注入和目标评估!
标签:特征检测, 请求拦截, 逆向工具