Kali驱动调试服务器

Kali Driver MCP Server 是一个用于在主机上调试Kali Linux虚拟机中网络驱动程序的Model Context Protocol服务器,提供内核信息查询、驱动编译加载、网络监控等功能。

  • by V119
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 V119/kali-driver-mcp

使用说明

Kali驱动程序MCP服务器

MCP(模型上下文协议)服务器,用于从主机调试Kali Linux虚拟机中的网卡(NIC)驱动程序。

🏗️ 建筑

重要提示:此MCP服务器在HOST计算机上运行,而不是在Kali VM中运行。

┌─────────────────────────────────────┐
│      Host Machine (宿主机)           │
│                                     │
│  Claude Desktop / MCP Client        │
│         ↕                           │
│  Kali Driver MCP Server ←──────┐   │
│         │                      │   │
│         │ SSH                  │   │
│         ↓                      │   │
│  Shared Folder ←──────────────┘   │
└──────────────┬──────────────────────┘
               │
               │ Network + Shared Folder
               ↓
┌─────────────────────────────────────┐
│      Kali Linux VM (虚拟机)          │
│                                     │
│  SSH Server (root access)           │
│  airmon-ng, airodump-ng             │
│  Kernel driver build environment    │
│  Shared Folder Mount Point          │
└─────────────────────────────────────┘

为什么是这种架构?

  • MCP客户端(Claude Desktop)在主机上运行
  • 代码编辑器/IDE在主机上工作得更好
  • 驱动程序编译和加载发生在隔离的VM中
  • 通过SSH进行远程控制提供了灵活性

🚀 快速开始

想在其他项目中使用这个 MCP 服务?

查看详细的客户端连接和使用指南:

快速连接(Claude Desktop):

  1. 安装并配置本服务(见下方 安装)
  2. 编辑 Claude Desktop 配置:
    {
      "mcpServers": {
        "kali-driver": {
          "command": "uv",
          "args": ["run", "python", "-m", "kali_driver_mcp.server"],
          "cwd": "/path/to/kali-driver-mcp"
        }
      }
    }
    
  3. 重启 Claude Desktop,即可使用!

详细步骤请参考 MCP_CLIENT_GUIDE.md。

特性

此MCP服务器提供9个网络驱动程序开发和调试工具:

  1. kernel_info -检索内核版本和配置
  2. file_ops -列出/浏览VM共享文件夹中的文件
  3. code_sync -验证共享文件夹是否已装载且可访问
  4. 驾驶员堆 -使用make构建驱动程序
  5. driver_load -加载/卸载内核模块(insmod/rmmod)
  6. 日志查看器 -访问内核日志(dmesg)和系统日志
  7. 网络信息 -查询网络接口信息
  8. 网络监视器 -启动/停止无线监控模式(airmon ng)
  9. 包捕获 -捕获无线数据包(airodump ng)

建筑

  • 异步/等待:使用asyncssh的高性能异步SSH操作
  • 根SSH:直接root访问Kali VM(无需sudo)
  • 共享文件夹:代码位于VM共享文件夹(VirtualBox/Vware/KVM)中
  • Kali工具:使用airmon ng和airodump ng进行无线操作

先决条件

Kali虚拟机设置

  1. Kali虚拟机正在运行 具有网络访问权限

  2. 已启用根SSH 在 /etc/ssh/sshd_config:

    PermitRootLogin yes
    # or for key-only:
    PermitRootLogin prohibit-password
    

    然后重新启动SSH: systemctl restart ssh

  3. SSH密钥认证 (推荐):

    # On host machine
    ssh-keygen -t ed25519 -f ~/.ssh/kali_vm
    ssh-copy-id -i ~/.ssh/kali_vm.pub root@<VM_IP>
    
  4. 已装载共享文件夹 在VM中:

    • 在VirtualBox/Vware/KVM设置中配置
    • VirtualBox示例:共享文件夹→ 添加文件夹→ 自动安装
    • 在VM中验证: mount | grep kali-share
  5. 已安装无线工具:

    apt update && apt install aircrack-ng
    
  6. 无线适配器 在VM中可用(USB直通或虚拟适配器)

主机设置

  1. Python 3.10+ 安装
  2. UV包管理器 安装:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    

安装

Part 1: Setup on Host Machine (宿主机)

MCP服务器将在此处运行。

  1. 克隆仓库:

    git clone <repo-url>
    cd kali-driver-mcp
    
  2. 安装UV(如果未安装):

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  3. 安装依赖项:

    uv sync
    
  4. 为VM访问生成SSH密钥:

    ssh-keygen -t ed25519 -f ~/.ssh/kali_vm
    
  5. 配置服务器:

    cp config.yaml.example config.yaml
    nano config.yaml  # Edit with your VM details
    

    要配置的关键设置:

    vm:
      host: "192.168.56.101"  # Your Kali VM IP
      key_file: "~/.ssh/kali_vm"
    
    shared_folder:
      host_path: "/Users/your-username/kali-share/driver"  # Host path
      vm_path: "/mnt/kali-share/driver"  # VM mount point
    
    network:
      wireless_interface: "wlan0"  # Your wireless interface in VM
    

Part 2: Setup on Kali VM (虚拟机)

这是编译和加载驱动程序的地方。

  1. 启用root SSH访问:

    sudo nano /etc/ssh/sshd_config
    # Add or modify: PermitRootLogin yes
    sudo systemctl restart ssh
    
  2. 从主机复制SSH密钥:

    # Run this FROM THE HOST MACHINE:
    ssh-copy-id -i ~/.ssh/kali_vm.pub root@<VM_IP>
    
  3. 安装无线工具:

    sudo apt update
    sudo apt install aircrack-ng build-essential linux-headers-$(uname -r)
    
  4. 设置共享文件夹:

    对于VirtualBox:

    • 在VirtualBox中:设置→ 共享文件夹→ 添加文件夹
    • 姓名: kali-share
    • 路径:您的主机文件夹(例如。, /Users/username/kali-share)
    • 自动安装:✓

    然后在VM中:

    sudo mkdir -p /mnt/kali-share
    sudo mount -t vboxsf kali-share /mnt/kali-share
    # Make persistent (add to /etc/fstab):
    echo "kali-share /mnt/kali-share vboxsf defaults 0 0" | sudo tee -a /etc/fstab
    

    对于VMware:

    sudo mkdir -p /mnt/kali-share
    sudo mount -t vmhgfs .host:/kali-share /mnt/kali-share
    
  5. 验证共享文件夹:

    ls /mnt/kali-share
    mount | grep kali-share
    
  6. 创建驱动程序目录:

    mkdir -p /mnt/kali-share/driver
    # Put your driver source code here
    

第3部分:测试设置

从主机:

  1. 测试SSH连接:

    ssh -i ~/.ssh/kali_vm root@<VM_IP>
    
  2. 测试MCP服务器:

    cd kali-driver-mcp
    uv run python test_client.py
    
  3. 如果成功,你应该看看:

    === Available Tools ===
    kernel_info: Get kernel version...
    ...
    

用法

运行MCP服务器

方法1:直接执行

uv run python -m kali_driver_mcp.server

方法2:使用已安装的脚本

uv run kali-driver-mcp

方法3:使用自定义配置

uv run python -m kali_driver_mcp.server --config /path/to/config.yaml

与Claude Desktop一起使用

添加到Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "kali-driver": {
      "command": "uv",
      "args": [
        "run",
        "python",
        "-m",
        "kali_driver_mcp.server"
      ],
      "cwd": "/path/to/kali-driver-mcp"
    }
  }
}

测试服务器

运行附带的测试客户端:

uv run python test_client.py

这将:

  1. 连接到MCP服务器
  2. 列出可用工具
  3. 执行示例工具调用
  4. 显示结果

工作流示例

  1. 检查内核版本:

    Tool: kernel_info
    Args: {"detail_level": "basic"}
    
  2. 验证共享文件夹:

    Tool: code_sync
    Args: {}
    
  3. 编译驱动程序:

    Tool: driver_compile
    Args: {"clean": true, "verbose": true}
    
  4. 加载驱动程序:

    Tool: driver_load
    Args: {
      "operation": "load",
      "module_name": "mydriver",
      "parameters": {"debug": "1"}
    }
    
  5. 查看内核日志:

    Tool: log_viewer
    Args: {
      "source": "dmesg",
      "lines": 50,
      "filter_pattern": "mydriver"
    }
    
  6. 启动监控模式:

    Tool: network_monitor
    Args: {"operation": "start", "channel": 6}
    
  7. 捕获数据包:

    Tool: packet_capture
    Args: {
      "channel": 6,
      "duration": 60,
      "output_prefix": "test_capture"
    }
    
  8. 停止监控模式:

    Tool: network_monitor
    Args: {"operation": "stop"}
    

配置参考

看 config.yaml.example 获取完整的配置模板。

关键部分:

  • 虚拟机:VM连接详细信息(主机、端口、身份验证)
  • 共享文件夹:共享文件夹路径
  • 构建:编译设置
  • 网络:无线接口名称和默认值
  • 捕捉:数据包捕获设置
  • 日志记录:日志查看默认值

发展

项目结构

kali-driver-mcp/
├── pyproject.toml              # UV project configuration
├── config.yaml.example         # Configuration template
├── CLAUDE.md                   # Development guide
├── TOOLS_REFERENCE.md          # Detailed command reference
├── src/
│   └── kali_driver_mcp/
│       ├── server.py           # MCP server entry point
│       ├── config.py           # Configuration loading
│       ├── ssh_manager.py      # SSH connection pool
│       └── tools/              # Tool implementations
└── test_client.py              # Test client

添加新工具

  1. 在中创建工具实现 src/kali_driver_mcp/tools/
  2. 导入 server.py
  3. 在中添加工具定义 list_tools()
  4. 在中添加处理程序 call_tool()

故障排除

SSH连接问题

# Test SSH connection manually
ssh -i ~/.ssh/kali_vm root@<VM_IP>

# Check SSH key permissions
chmod 600 ~/.ssh/kali_vm

共享文件夹未装载

# In VM, check mount
mount | grep kali-share

# VirtualBox: install Guest Additions
# VMware: install VMware Tools

监视器模式问题

# In VM, check if airmon-ng is installed
which airmon-ng

# Check wireless interface
iw dev

# Kill interfering processes manually
airmon-ng check kill

权限错误

确保您以root身份连接:

vm:
  username: "root"  # Must be root

安全说明

  • 永不承诺 config.yaml 持有真实证件
  • 使用SSH密钥身份验证而不是密码
  • 仅在开发/测试环境中使用
  • 为了方便起见,服务器禁用SSH主机密钥检查

许可证

[您的许可证在这里]

贡献

[贡献指南]