渗透测试工具集成环境

一个集成了Kali Linux和各种渗透测试工具的Docker环境,并通过MCP协议与Claude Desktop集成。

  • by PasinduSupushmika
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 PasinduSupushmika/kali-docker-vapt

使用说明

Kali Linux Docker与VAPT工具+克劳德桌面集成

此Docker设置提供了一个完整的Kali Linux环境,其中包含漏洞评估和渗透测试(VAPT)工具,通过MCP与Claude Desktop集成。

📋 包含内容

VAPT工具类别:

  • 网络扫描:nmap、netcat、tcpdump、wireshark
  • Web应用程序测试:nikto、dirb、gobuster、sqlmap、wpscan
  • 剥削:Metasploit框架,牛肉xss
  • 密码破解:开膛手约翰、大麻、九头蛇
  • 无线测试:空调套房
  • 取证工具:各种取证工具
  • 嗅探/欺骗:网络分析工具

🚀 快速开始

第一步:构建Docker镜像

# Navigate to the project directory
cd c:\Users\Pasindu\Downloads\Docker\kali

# Build the image (this will take 15-30 minutes)
docker build -t kali-vapt:latest .

# Or use docker-compose
docker-compose build

步骤2:运行容器

选项A:直接使用Docker

docker run -it --name kali-vapt --cap-add=NET_ADMIN --cap-add=NET_RAW -v ${PWD}/workspace:/root/workspace kali-vapt:latest

选项B:使用Docker Compose(推荐)

docker-compose up -d

步骤3:访问容器

# Enter the container
docker exec -it kali-vapt-tools /bin/bash

# Or with docker-compose
docker-compose exec kali-vapt /bin/bash

🤖 通过MCP集成Claude桌面

什么是MCP?

模型上下文协议(MCP)允许Claude Desktop与外部工具和系统进行交互,包括Docker容器。

为Docker访问设置MCP

  1. 为Docker安装MCP服务器

创建一个MCP服务器,Claude可以使用它在Docker容器中执行命令。

  1. 配置Claude桌面

将以下内容添加到Claude Desktop的MCP配置文件中:

Windows位置: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "docker-kali": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-docker"
      ],
      "env": {
        "DOCKER_CONTAINER": "kali-vapt-tools"
      }
    }
  }
}

替代方案:创建自定义MCP服务器

要获得更多控制,请创建自定义MCP服务器:

// mcp-server.js
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { exec } from 'child_process';
import { promisify } from 'util';

const execAsync = promisify(exec);

const server = new Server({
  name: 'kali-docker-server',
  version: '1.0.0',
});

server.setRequestHandler('tools/list', async () => {
  return {
    tools: [
      {
        name: 'run_kali_command',
        description: 'Execute a command in the Kali Linux Docker container',
        inputSchema: {
          type: 'object',
          properties: {
            command: {
              type: 'string',
              description: 'The command to execute in the container',
            },
          },
          required: ['command'],
        },
      },
    ],
  };
});

server.setRequestHandler('tools/call', async (request) => {
  if (request.params.name === 'run_kali_command') {
    const command = request.params.arguments.command;
    try {
      const { stdout, stderr } = await execAsync(
        `docker exec kali-vapt-tools ${command}`
      );
      return {
        content: [
          {
            type: 'text',
            text: stdout || stderr,
          },
        ],
      };
    } catch (error) {
      return {
        content: [
          {
            type: 'text',
            text: `Error: ${error.message}`,
          },
        ],
        isError: true,
      };
    }
  }
});

const transport = new StdioServerTransport();
await server.connect(transport);

📁 目录结构

kali/
├── Dockerfile              # Docker image definition
├── docker-compose.yml      # Docker Compose configuration
├── README.md              # This file
├── mcp-server.js          # Custom MCP server (optional)
├── workspace/             # Shared workspace (auto-created)
├── scans/                 # Scan results (auto-created)
├── reports/               # Penetration test reports (auto-created)
└── exploits/              # Custom exploits (auto-created)

🛠️ 常见VAPT命令

进入容器后,您可以使用:

网络扫描

# Basic nmap scan
nmap -sV -sC target.com

# Aggressive scan
nmap -A -T4 target.com

# Vulnerability scan
nmap --script vuln target.com

Web应用程序测试

# Directory bruteforce
gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt

# SQL injection testing
sqlmap -u "http://target.com/page?id=1" --batch

# Nikto web scanner
nikto -h http://target.com

密码破解

# John the Ripper
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

# Hydra for SSH brute force
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://target.com

Metasploit

# Start Metasploit
msfconsole

# Search for exploits
search apache

# Use an exploit
use exploit/multi/handler

🔒 安全考虑

  1. 特权模式:容器以网络功能运行,但默认情况下不以特权模式运行。仅在需要时启用。

  2. 网络隔离:使用网桥网络隔离容器。仅暴露必要的端口。

  3. 遵守法律:仅在您拥有或有明确测试权限的系统上使用这些工具。

  4. 数据持久层:使用卷将重要数据持久化到容器外部。

🔧 故障排除

问题:容器无法启动

# Check logs
docker-compose logs

# Check container status
docker ps -a

问题:权限被拒绝

# Run with elevated privileges
docker exec -u root -it kali-vapt-tools /bin/bash

问题:网络工具不工作

# Ensure NET_ADMIN capability is added
docker run --cap-add=NET_ADMIN --cap-add=NET_RAW kali-vapt:latest

📚 其他资源

⚠️ 免责声明

此工具仅用于教育和授权测试目的。未经授权访问计算机系统是非法的。在进行安全评估之前,始终获得适当的授权。