xingchengping/PwnPilot
GitHub: xingchengping/PwnPilot
PwnPilot 是一个将本地 SSH 共享终端与 LLM agent 相结合的 Web 控制台,通过实时人机协作实现渗透测试与红队操作的自动化。
Stars: 0 | Forks: 0
PwnPilot(本地 SSH 共享终端 + LLM 协作控制台)
您可以选择不同语言的 README.md,例如 README_CN.md 或 README_EN.md。
这是一个本地 Web 控制台:左侧面板为会话列表和聊天区域,右侧面板为通过 SSH 连接到远程主机的共享交互式终端(PTY)。后端使用大型语言模型(LLM)将“聊天指令 + 终端输出”循环输入到一个连续的循环中,从而在您明确授权的环境中实现自动化操作和人机协作。
功能
- 基于浏览器的终端(xterm.js),支持实时 SSH 交互式 shell 输出
- 人类和自动化 agent 共享同一个终端(在单个屏幕上共享输入/输出)
- 会话管理:创建/删除会话,每个会话的聊天记录和输出持久化保存
- 双语 UI(中文/英文,由 LANGUAGE 配置项控制)
- 通过兼容 OpenAI 的 API 调用 LLM(AsyncOpenAI + base_url)
环境要求
- Python 3.10+(推荐 3.11)
- 本地浏览器(Chrome / Edge / Firefox)
- 可通过 SSH 访问的主机(您自己的机器或实验室环境),且具备交互式 shell
- 兼容 OpenAI Chat Completions 的 API(支持 base_url 和 model 参数)
安装
建议使用虚拟环境:
```
# 1. 创建并激活 virtual environment
python -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows PowerShell
.venv\Scripts\Activate.ps1
# 2. 使用一条命令安装所有 dependencies
pip install -r requirements.txt
```
若要手动逐一安装:
```
pip install fastapi uvicorn paramiko "openai>=1.0.0" pydantic
```
配置
在首次启动时,如果找不到 PwnPilot_config.json,系统将运行交互式设置向导并生成该文件。
您也可以手动创建 PwnPilot_config.json(与脚本位于同一目录下):
```
{
"LANGUAGE": "en",
"API_KEY": "your-api-key",
"BASE_URL": "https://your-service-url/v1",
"MODEL_NAME": "your-model-name",
"KALI_HOST": "127.0.0.1",
"KALI_PORT": 22,
"KALI_USER": "root",
"KALI_PASS": "your-ssh-password",
"SESSIONS_DIR": "sessions"
}
```
注意事项:
- LANGUAGE:"zh" 或 "en"
- BASE_URL:例如 https://api.deepseek.com/v1(根据您的服务提供商的要求填写)
- SESSIONS_DIR:用于存储会话的目录,默认为 "sessions"
启动
```
python PwnPilot.py
```
然后在浏览器中打开:
- http://127.0.0.1:8000
默认情况下,它仅监听 127.0.0.1,专供本地使用。
使用方法
- 右侧终端:键盘输入通过 /ws/terminal 直接转发到 SSH PTY(AI 也可以直接与终端交互)
- 左侧聊天面板:
- 选择或创建会话后,通过输入框发送指令
- 后端将“您的指令 + 最新的终端输出片段”提供给 agent,然后由 agent 决定是否向终端发送命令
- 输入 "stop" 或 "停" 将中止当前的自主循环
会话数据将以 jsonl 文件格式保存在 SESSIONS_DIR 目录下:
- 第一行是会话元数据(id/title/created_at)
- 随后的每一行都是一条聊天消息(role/content)
重要提示(安全与边界)
- 本项目会将聊天记录和终端输出保存到本地磁盘。请勿在终端中输出不应被持久化保存的敏感信息。
- 配置文件中包含明文的 API_KEY 和 SSH 密码。请相应地限制文件权限(例如,仅当前用户可读写)。
- 目前的实现使用单一的全局 PTY:所有会话共享同一个 SSH 终端通道。会话的作用更多是作为“记录和上下文”,而不是独立的执行环境。
- 仅在您已完全授权的环境中使用此工具。您必须对终端中执行的任何操作自行负责。
已知限制
- 终端输出的“稳定性检测”依赖于一种基于输出长度在短时间段内保持不变的启发式算法。持续刷新的交互式程序可能会导致截断或时机不准确。
- 断开连接后的重新连接以及任务取消后的状态重置目前已作简化处理;在复杂场景下可能会导致状态不同步。
许可证与免责声明
- 本项目仅适用于您已授权的系统管理和实验室环境自动化。对于任何超出授权范围的使用,作者不承担任何责任。
标签:AV绕过, FastAPI, LLM自动化, Petitpotam, PE 加载器, Web控制台, 远程Shell, 逆向工具