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镜像.
设置:
- 导入
.ova将设备插入VirtualBox。 - 创建仅主机网络(文件->主机网络管理器),并确保其DHCP服务器已启用。
- 将Kali VM的网络适配器设置为“仅主机适配器”。
1.2.目标VM:Metasploitable 2(完整系统目标)
下载: 获取 可分解2.
设置:
- 解压缩文件。
- 在VirtualBox中,创建一个新的Linux VM并使用提取的
.vmdk文件作为现有的虚拟硬盘。 - 将Metasploitable2 VM的网络适配器设置为与Kali相同的“仅主机适配器”。
- 启动虚拟机并测试连接
ping.
2.安装与配置
克隆此存储库:
git clone https://github.com/PrerikaP1331/autonomous-pentesting-agent-offline.git
cd gemini-pentest设置服务器(在Kali VM上):
- 复制
mcp_server目录到您的Kali VM。 - 在Kali终端中,安装依赖项:
cd /path/to/mcp_server
sudo apt update
sudo apt install python3-fastapi python3-uvicorn -y设置客户端(在主机上):
- 在主机上的终端中,导航到
orchestrator目录。 - 安装依赖项:
cd orchestrator
pip install -r requirements.txt下载LLM:
ollama pull codellama:7b配置IP地址:
- 使用查找Kali VM的IP地址
ip a. - 打开
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 --port 8000在主机上运行Orchestrator:
# Inside the orchestrator directory on your host
python interactive_orchestrator.py按照提示操作:
- 输入目标的IP/URL。
- 提供一个高级目标(例如,“查找所有网络目录”)。
- 类型
execute plan开始自主扫描。
上传到GitHub
- 在GitHub上创建一个新的存储库。首选 ,单击右上角的“+”,然后选择“新建存储库”。为其命名
your-folder-name以及简短的描述。不要用README或.gitignore初始化它(我们已经创建了它们)。
- 按照GitHub在“…或从命令行推送现有存储库”下给出的说明进行操作
- 在主机上打开终端,导航到
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上发布问题。
