study714/Agentic-Vulnerability-Scanner
GitHub: study714/Agentic-Vulnerability-Scanner
基于Agentic AI的自动化漏洞扫描系统
Stars: 0 | Forks: 0
# 使用 Agentic AI 自动化漏洞扫描
本项目演示了使用 Agentic AI 方法实现的自动化漏洞扫描系统。该系统由多个 AI 代理组成,它们协同工作以制定策略、生成命令并根据客户端的描述执行扫描,无需人工干预。
请注意,此项目仅作为一个粗略的概念验证,可能并非所有功能都能无缝运行。重要的是要记住,需要交互式用户输入的命令或脚本,如 `msfconsole`,可能在此框架中无法按预期工作。
## 前置条件
本项目可以在 Ubuntu 上运行,因此不需要安装完整的 `kali-linux-default` 元包。相反,只需安装执行项目所需的 Ubuntu 工具。
1. 更新您的 Ubuntu 系统:
sudo apt update
sudo apt full-upgrade -y
2. 安装所需的 Ubuntu 软件包:
sudo apt install -y nmap python3 python3-pip python3-venv curl git
本项目需要的 `kali-linux-default` 元包中的主要工具包括:
- `nmap` — 用于 SSH 端口和基于 NSE 脚本的漏洞扫描
- `python3` / `python3-pip` — 运行 Python 项目并安装依赖项
- `curl` — 用于获取 Ollama 安装脚本或验证网络访问
- `git` — 如果您想克隆存储库或管理项目源
如果您想安装此项目之外的其他渗透测试工具,您可以单独安装它们,而不是安装整个 Kali 元包。
有关 Ubuntu 软件包管理的更多信息,请参阅[官方 Ubuntu 文档](https://help.ubuntu.com/community/AptGet/).
## Ollama 设置
本项目使用 Ollama 在本地执行模型,而不是使用 OpenAI API。在运行代码之前,请确保 Ollama 已安装并运行在您的机器上。
1. 按照以下说明安装 Ollama:[https://ollama.com/docs/installation](https://ollama.com/docs/installation).
2. 启动 Ollama 服务器:
ollama serve
3. 确认服务器在 `http://localhost:11434` 上可访问。
4. 如果您需要使用不同的模型,请更新 `agent.py` 中的 `self.model` 值。
本项目配置为使用本地 Ollama 模型,因此不需要外部 OpenAI API 密钥。
# **警告**
请注意,此脚本将在不提示授权的情况下在系统上执行命令。运行此脚本意味着您授予 Ammar 所建议的所有命令的权限。请在进行之前谨慎行事,并确保您完全理解其影响。
注意:本项目设计为在 Linux 上运行。
## 概述
漏洞扫描过程通过多个 AI 代理的协调实现自动化,每个代理都有特定的角色和职责:
- **策略师**:生成初始策略并在需要时提供输入。
- **审查员**:审查策略、命令输出和最终报告。
- **错误处理器**:处理错误场景并提出修复建议。
- **监控器**:监控命令执行输出并确定是否需要额外的输入。
- **执行器**:执行代理生成的命令。
- **报告员**:生成最终发现报告。
代理之间相互通信,交换信息和反馈,以迭代地改进扫描过程,直到达到满意的结果。
### 流程图

## 使用方法
```
python main.py
```
扫描过程将继续进行,直到达到满意的结果或代理确定不需要进一步的操作。发现和输出将记录并存储在 `Logs` 目录中。
最终发现报告以 markdown 格式生成。
### 发现报告
由报告员生成的 `findings_report.md` 文件提供了漏洞扫描结果的全面概述。
## 配置
主要配置选项可以在 `main.py` 文件中找到:
- `target_ip`:指定漏洞扫描的目标 IP 地址。
- `scan_description`:提供所需的扫描描述以引导代理。
## 日志记录
系统在 `Logs` 目录中生成日志文件,捕获扫描过程中的输出、发现和代理交互。
## 使用 Agentic AI 方法的原因
最近的研究表明,利用基于大型语言模型 (LLM) 的多代理系统来解决各种复杂任务具有前景[\[1\]](https://arxiv.org/abs/2308.10848)。Agentic AI 方法,其中多个自主代理协同工作以制定策略、生成命令和执行扫描,与依赖于单个 AI 代理相比,具有几个关键优势:
1. **专业化和劳动分工**:系统中的每个代理都可以在特定领域(例如,策略生成、错误处理、命令执行)中专业化,从而能够发展深厚的专业知识并更有效地执行其角色[\[1\]](https://arxiv.org/abs/2308.10848)[\[2\]](https://arxiv.org/abs/2307.07924)。这种劳动分工反映了人类团队处理复杂项目的方式。
2. **改进的协作和问题解决**:通过使不同专业化的代理之间进行交互和信息共享,整体系统获得了增强的能力,以理解需求、分解问题、探索多种解决方案并适应不断变化的情况[\[1\]](https://arxiv.org/abs/2308.10848)[\[3\]](https://arxiv.org/abs/2402.16713)。这种协作方法已被证明可以提高问题解决的准确性和效率。
3. **鲁棒性和适应性**:由于涉及多个代理,系统可以更鲁棒地应对单个代理的错误或限制[\[3\]](https://arxiv.org/abs/2402.16713)。如果一个代理遇到困难,其他代理可以帮助补偿。此外,多代理系统可以根据反馈和不断变化的情况动态调整角色、目标和计划[\[1\]](https://arxiv.org/abs/2308.10848)。
4. **可扩展性**:Agentic AI 方法提供了一个可扩展的框架,用于处理越来越复杂和开放的问题,这些问题会令单个代理不知所措[1]。可以根据需要添加新的专业化代理来扩展系统功能。
5. **与现实世界问题解决的契合度**:许多现实世界任务(例如,漏洞扫描)本质上涉及多个方面(例如,扫描器、策略师、审查员)共同工作。多代理方法与这种现实情况更为契合,而不是单个通用代理[\[2\]](https://arxiv.org/abs/2307.07924)。
尽管对 Agentic AI 系统的研究仍处于早期阶段,但迄今为止的结果表明,它们有可能实现比单代理方法更复杂、更灵活和更有效的问题解决。随着技术的成熟,Agentic AI 可能成为解决网络安全等领域复杂挑战的越来越强大的范例。
参考文献:
[1] Chen, Y., Perez, Y., & Shoham, Y. (2023). AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents. arXiv 预印本 arXiv:2308.10848。
https://arxiv.org/abs/2308.10848
[2] Quan, A., Jiang, L., Bing, L., & Lyu, M. R. (2023). Communicative Agents for Software Development. arXiv 预印本 arXiv:2307.07924。
https://arxiv.org/abs/2307.07924
[3] Navigating Complexity: Orchestrated Problem Solving with Multi-Agent LLMs. (2024)。
https://arxiv.org/abs/2402.16713
## 本项目与自动漏洞扫描器的区别
1. 多代理协作:本项目使用多个专业化的 AI 代理协同工作,而大多数扫描器是单体系统。
2. 适应性:代理根据反馈和结果迭代地改进扫描策略,而传统扫描器遵循固定的线性过程。
3. 自然语言理解:代理可以解释自然语言描述以指导扫描过程,而扫描器通常需要结构化的配置。
4. 上下文决策:代理考虑每个步骤的上下文和结果以做出决策,而扫描器仅执行预定义的检查集。
本项目利用先前扫描结果的上下文来确定下一步要执行的逻辑扫描。代理(特别是 Hassan)审查每个命令的输出,并提供有关结果是否满意或是否需要额外扫描的反馈。这种迭代、上下文感知的方法允许系统根据每个阶段的发现动态地调整扫描过程,确保更全面和有针对性的漏洞评估。
## 免责声明
本项目仅用于教育和研究目的。作者和贡献者不对使用此系统造成的任何滥用或损害负责。在执行任何目标系统的漏洞扫描之前,请务必获得适当的授权。
标签:Agentic AI, AI 代理, AI风险缓解, CTI, DNS解析, LLM评估, Nmap, Ollama, Proof of Concept, Python, 交互式脚本, 人工智能, 代码执行, 依赖管理, 包管理, 协作系统, 开源项目, 技术栈, 数据统计, 无人工干预, 无后门, 本地部署, 模型执行, 用户模式Hook绕过, 用户输入, 端口扫描, 网络安全, 脚本执行, 自动化漏洞扫描, 虚拟驱动器, 逆向工具, 隐私保护