密码恢复服务器

一个基于Model Context Protocol (MCP)的服务器,通过hashcat提供GPU加速的密码恢复功能,适用于安全专业人员、渗透测试人员和红队操作员进行授权安全评估。

  • by schwarztim
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 schwarztim/sec-hashcat-mcp

使用说明

Hashcat MCP服务器

一种模型上下文协议(MCP)服务器,通过以下方式为AI助手提供GPU加速的密码恢复功能 哈希猫。专为进行授权安全评估的安全专业人员、渗透测试人员和红队操作员而设计。

概述

此MCP服务器使AI助手能够通过SSH在远程Kali Linux系统上编排哈希猫操作,提供:

  • 完全控制hashcat破解会话
  • 支持所有攻击模式(字典、暴力、混合、组合)
  • 具有暂停/恢复功能的会话管理
  • 哈希识别和模式查找
  • 基准测试和性能测试

特性

12个综合工具

工具 说明
hashcat_crack 使用可配置的攻击模式开始密码破解
hashcat_status 监控正在运行的会话进度
hashcat_show 显示来自potfile的破解密码
hashcat_benchmark 测试GPU破解性能
hashcat_modes 列出并搜索600多种支持的哈希类型
hashcat_attack_modes 解释可用的攻击方法
hashcat_rules 浏览和检查规则文件
hashcat_restore 恢复中断的会话
hashcat_stop 通过检查点保存优雅地停止
hashcat_wordlists 发现可用的单词表
hashcat_identify 识别未知哈希类型
hashcat_sessions 列出所有已保存的会话

支持的攻击模式

模式 名称 描述
0 词典 直接单词表攻击
1 组合器 组合两个单词表
3 暴力 基于面具的角色生成
6 混合W+M 单词列表+掩码后缀
7 混合M+W 掩码前缀+单词表
9 关联 上下文感知定向破解

常见哈希类型

名称 模式 描述
md5 0 MD5
sha1 100 沙1
sha256 1400 沙2-256
sha512 1700 沙2-512
ntlm 1000 Windows NTLM
netntlmv2 5600 净NTLMv2
wpa 22000 WPA-PBKDF2-PMKID+EAPOL
bcrypt 3200亿加密
sha512crypt 1800 SHA512 Unix密码

安装

先决条件

  • Node.js 18或更高版本
  • SSH访问Kali Linux系统(或任何具有hashcat的系统)
  • 远程系统上安装了hashcat
  • 支持OpenCL/CUDA的GPU(推荐用于性能)

设置

# Clone the repository
git clone https://github.com/schwarztim/sec-hashcat-mcp.git
cd sec-hashcat-mcp

# Install dependencies
npm install

# Build
npm run build

配置

通过环境变量进行配置:

变量 默认值 描述
HASHCAT_SSH_HOST kali hashcat系统的SSH主机名
HASHCAT_SSH_USER (当前用户) SSH用户名
HASHCAT_SSH_OPTIONS -o StrictHostKeyChecking=no -o ConnectTimeout=10 SSH连接选项
HASHCAT_PATH hashcat 远程哈希猫二进制文件的路径
HASHCAT_WORDLIST /usr/share/wordlists/rockyou.txt 默认单词表路径
HASHCAT_RULES /usr/share/hashcat/rules/best64.rule 默认规则文件路径

Claude桌面集成

添加到您的Claude Desktop配置(~/.claude.json 或同等):

{
  "mcpServers": {
    "hashcat": {
      "command": "node",
      "args": ["/path/to/sec-hashcat-mcp/dist/index.js"],
      "env": {
        "HASHCAT_SSH_HOST": "kali",
        "HASHCAT_SSH_USER": "root"
      }
    }
  }
}

使用示例

MD5的字典攻击

{
  "tool": "hashcat_crack",
  "arguments": {
    "hash": "5d41402abc4b2a76b9719d911017c592",
    "hash_mode": "md5",
    "attack_mode": "dictionary",
    "wordlist": "/usr/share/wordlists/rockyou.txt"
  }
}

带面具的暴力

破解一个6个字符的小写密码:

{
  "tool": "hashcat_crack",
  "arguments": {
    "hash": "5d41402abc4b2a76b9719d911017c592",
    "hash_mode": 0,
    "attack_mode": "bruteforce",
    "mask": "?l?l?l?l?l?l"
  }
}

带规则的NTLM

{
  "tool": "hashcat_crack",
  "arguments": {
    "hash": "32ed87bdb5fdc5e9cba88547376818d4",
    "hash_mode": "ntlm",
    "attack_mode": "dictionary",
    "rules": "/usr/share/hashcat/rules/best64.rule",
    "session": "ntlm_audit"
  }
}

背景长期运行裂纹

{
  "tool": "hashcat_crack",
  "arguments": {
    "hash": "/tmp/hashes.txt",
    "hash_mode": 1000,
    "attack_mode": "dictionary",
    "session": "overnight_crack",
    "background": true,
    "workload": 3
  }
}

然后检查进度:

{
  "tool": "hashcat_status",
  "arguments": {
    "session": "overnight_crack"
  }
}

增量掩码攻击

尝试使用1-8个字符的密码:

{
  "tool": "hashcat_crack",
  "arguments": {
    "hash": "5d41402abc4b2a76b9719d911017c592",
    "hash_mode": "md5",
    "attack_mode": "bruteforce",
    "mask": "?a?a?a?a?a?a?a?a",
    "increment": true,
    "increment_min": 1,
    "increment_max": 8
  }
}

面具字符集

字符集 字符
?l a-z (小写)
?u A-Z (大写)
?d 0-9 (数字)
?h 0-9a-f (十六进制小写)
?H 0-9A-F (十六进制大写)
?s 特殊人物
?a 所有可打印ASCII码
?b 0x00-0xff (全字节范围)

安全考虑

此工具用于 仅限授权安全测试用户必须:

  • 有明确的书面授权来测试目标系统
  • 遵守所有适用的法律法规
  • 在授权范围内负责任地使用
  • 适当保护恢复的凭据

滥用密码破解工具可能违反计算机犯罪法。

发展

# Watch mode for development
npm run dev

# Run tests
npm test

建筑

hashcat-mcp/
├── src/
│   └── index.ts      # Main MCP server implementation
├── dist/             # Compiled JavaScript
├── package.json
└── tsconfig.json

服务器通过stdio传输进行通信,并通过SSH向配置的远程系统执行hashcat命令。

贡献

欢迎投稿!请确保有任何更改:

  1. 维护TypeScript类型安全
  2. 遵循现有代码样式
  3. 包括适当的错误处理
  4. 根据需要更新文档

许可证

MIT许可证-请参阅 许可证 了解详情。

致谢

相关项目