渗透测试自动化助手

一款AI驱动的渗透测试助手,通过在沙盒化的Kali Linux环境中自主执行工具来自动化安全测试工作流程。

  • by PrerikaP1331
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 PrerikaP1331/autonomous-pentesting-agent-offline

使用说明

Jarvis:一个自主的AI测试助手

一款基于人工智能的Pentesting Assistant,旨在通过在沙盒Kali Linux环境中自主执行工具来自动化安全工作流程。

概述

该项目通过创建一个安全、自主的代理来探索渗透测试的自动化。它利用本地托管的大型语言模型(LLM)将高级安全目标转化为战略性的多步骤攻击计划。然后,代理在沙盒Kali Linux环境中执行此计划,展示了一种增强和加速安全评估的强大新方法。

特性

  • 规划/执行架构人工智能首先生成战略计划,然后逐步执行。
  • 自主执行:代理可以运行一系列命令,使用一步的输出通知下一步。
  • 真实的工具,真实的环境:在真正的Kali Linux VM中编排行业标准工具(nmap、gobuster、sqlmap等)。
  • 离线&私人所有AI推理都由本地运行的LLM(Ollama+Code Llama)处理,确保没有敏感数据离开您的机器。
  • 交互式控制:用户发起高级目标,可以随时干预或请求报告。
  • PDF报告生成:自动将整个会话合成为正式的PDF安全报告。

系统架构

该系统使用基于模型上下文协议(MCP)的解耦客户端-服务器模型,以确保推理引擎和执行环境之间的安全分离。

graph TD
    subgraph "Control Host (Reasoning Engine)"
        A["User/Operator"]
        B["Orchestrator (MCP Client)"]
        C["Ollama LLM"]
        A -- "Interacts with" --> B
        B <--> C
    end
    subgraph "Attacker VM (Execution Environment)"
        F["MCP Server (API)"]
        G["Kali Linux Tools"]
        F -- "Executes" --> G
    end
    subgraph "Target VM (System Under Test)"
        H["Vulnerable Application"]
    end
    B -- "Command (API Call)" --> F
    F -- "Results (API Response)" --> B
    G -- "Scans/Attacks" --> H

入门指南

按照以下说明在本地计算机上设置项目。

先决条件

硬件:

  • 16GB+内存(建议32GB)
  • 4+CPU内核
  • 具有100GB可用空间的SSD

软件:

  • VirtualBox
  • 奥拉玛
  • Python 3.8+
  • Git

1.实验室设置:环境

你需要一台攻击者机器(Kali)和一台目标机器。您可以使用Metasploitable2(建议初学者使用)或设置DVWA以实现更专注于网络的目标。

1.1.攻击者虚拟机:Kali Linux

下载: 得到 Kali Linux VirtualBox镜像.

设置:

  1. 导入 .ova 将设备插入VirtualBox。
  2. 创建仅主机网络(文件->主机网络管理器),并确保其DHCP服务器已启用。
  3. 将Kali VM的网络适配器设置为“仅主机适配器”。

1.2.目标VM:Metasploitable 2(完整系统目标)

下载: 获取 可分解2.

设置:

  1. 解压缩文件。
  2. 在VirtualBox中,创建一个新的Linux VM并使用提取的 .vmdk 文件作为现有的虚拟硬盘。
  3. 将Metasploitable2 VM的网络适配器设置为与Kali相同的“仅主机适配器”。
  4. 启动虚拟机并测试连接 ping.

2.安装与配置

克隆此存储库:

git clone https://github.com/PrerikaP1331/autonomous-pentesting-agent-offline.git
cd gemini-pentest

设置服务器(在Kali VM上):

  1. 复制 mcp_server 目录到您的Kali VM。
  2. 在Kali终端中,安装依赖项:
cd /path/to/mcp_server
sudo apt update
sudo apt install python3-fastapi python3-uvicorn -y

设置客户端(在主机上):

  1. 在主机上的终端中,导航到 orchestrator 目录。
  2. 安装依赖项:
cd orchestrator
pip install -r requirements.txt

下载LLM:

ollama pull codellama:7b

配置IP地址:

  1. 使用查找Kali VM的IP地址 ip a.
  2. 打开 orchestrator/interactive_orchestrator.py 并更新 MCP_SERVER_URL 变量与Kali VM的IP。

3.使用方法

在Kali上启动MCP服务器:

# Inside the mcp_server directory on Kali
uvicorn mcp_server:app --host <YOUR_KALI_IP> --port 8000

在主机上运行Orchestrator:

# Inside the orchestrator directory on your host
python interactive_orchestrator.py

按照提示操作:

  1. 输入目标的IP/URL。
  2. 提供一个高级目标(例如,“查找所有网络目录”)。
  3. 类型 execute plan 开始自主扫描。

上传到GitHub

  1. 在GitHub上创建一个新的存储库。首选 GitHub,单击右上角的“+”,然后选择“新建存储库”。为其命名 your-folder-name 以及简短的描述。不要用README或.gitignore初始化它(我们已经创建了它们)。

  2. 按照GitHub在“…或从命令行推送现有存储库”下给出的说明进行操作

  3. 在主机上打开终端,导航到 your-folder-name 文件夹,然后运行:

git init
git add .
git commit -m "Initial commit: Project setup and core agent logic"
git branch -M main
git remote add origin https://github.com/your-username/your-folder-name.git
git push -u origin main

法律免责声明

此工具仅用于授权的安全测试和教育目的。在测试任何系统之前,始终确保您有明确的权限。未经授权访问计算机系统是非法的。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

贡献

欢迎投稿!请随时提交拉取请求。

联系

如有疑问或反馈,请在GitHub上发布问题。