Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
scada-scanner — 一款高性能、异步的 SCADA/ICS 扫描器 | Kitploit
工具/GitHubGitHub/geeknik/scada-scanner
侦察漏洞扫描器网络映射端口扫描漏洞分析SCADA/ICS安全信息收集网络安全渗透测试
GitHubgeeknik/scada-scanner

scada-scanner

一款高性能、异步的 SCADA/ICS 扫描器

查看仓库
1638个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

SCADA 扫描器与指纹识别工具

概述

一款高性能异步 SCADA/ICS 扫描器,用于跨网络识别工业控制系统并对其进行指纹识别。可检测漏洞、识别厂商/产品,并生成全面的风险评估报告。

警告:仅限经授权的安全评估使用。未经授权进行扫描可能违反法律法规。

功能特性

核心能力

  • 对 CIDR 范围或单个目标进行快速异步扫描
  • 针对主要工业协议(Modbus、S7、DNP3、BACnet、EtherNet/IP 等)的协议检测
  • 设备指纹识别,可识别厂商、产品与版本
  • 将漏洞与真实世界 CVE 和漏洞利用进行关联
  • 风险评分与评估

技术亮点

  • 多线程架构,支持可配置并发数
  • 令牌桶速率限制,遵守全局请求上限
  • 速率限制及按主机的连接控制
  • 通过协议专项探测实现行为指纹识别
  • 带检测证据链的端口感知协议启发式规则
  • 详细日志记录与全面的 JSON/CSV 报告

支持的协议

  • Modbus TCP
  • Siemens S7
  • DNP3
  • BACnet
  • EtherNet/IP
  • IEC 60870-5-104
  • OPC UA
  • CODESYS
  • 以及其他更多协议

安装

前置条件

  • Python 3.7+
  • Linux/macOS/Windows

安装步骤

root@kitploit:~
# Clone the repository
git clone https://github.com/geeknik/scada-scanner.git
cd scada-scanner

# Install dependencies
pip install -r requirements.txt

使用方法

基本用法

root@kitploit:~
# Single target scan
python scada_scanner.py -t 192.168.1.100 -o results.json

# CIDR range scan
python scada_scanner.py -c 192.168.1.0/24 -o results.json

# Multiple CIDR ranges from file
python scada_scanner.py -f networks.txt -o results.json

# Export CSV instead of JSON
python scada_scanner.py -t 192.168.1.100 --format csv -o results.csv

# Respect an exclude list
python scada_scanner.py -c 10.0.0.0/24 --exclude exclude.txt

# Highlight unexpected protocol/port combos (logged and in findings)
python scada_scanner.py -t 203.0.113.10 -o results.json

# Enable live vuln enrichment via ProjectDiscovery vulnx (requires vulnx + PDCP API key)
vulnx auth
python scada_scanner.py -t 192.168.1.100 --vulnx --vulnx-limit 3

命令行选项

root@kitploit:~
Required arguments (one of):
  -t, --target            Single target IP address
  -c, --cidr              CIDR range to scan (e.g., 192.168.1.0/24)
  -f, --cidr-file         File containing CIDR ranges (one per line)

Optional arguments:
  -o, --output            Output file (default: scan_results.json)
  -r, --rate              Max requests per second (default: 10.0)
  --timeout               Connection timeout in seconds (default: 5)
  --max-concurrent        Maximum concurrent connections (default: 50)
  --safe-mode             Enable safe mode (non-intrusive scans only)
  --exclude               File containing IPs to exclude from scan
  -v, --verbosity         Verbosity level: 0=quiet, 1=normal, 2=debug
  --format                Output format: json or csv (default: json)

安全模式与标准模式

安全模式

  • 仅使用非侵入式探测
  • 最大限度减少对目标系统的影响
  • 推荐用于生产环境
  • 通过 --safe-mode 标志启用

标准模式

  • 使用更激进的探测技术
  • 可能触发 IDS/IPS 告警
  • 可能对敏感系统造成影响
  • 在生产环境中请谨慎使用

示例报告

root@kitploit:~
{
  "scan_summary": {
    "timestamp": "2025-02-27T14:02:33.456789",
    "total_hosts_scanned": 256,
    "hosts_with_scada": 12,
    "total_vulnerabilities": 37,
    "high_risk_hosts": 5
  },
  "hosts": [
    {
      "ip": "192.168.1.100",
      "ports": [
        {
          "port": 502,
          "protocol": "MODBUS",
          "fingerprint": {
            "vendor": "Schneider",
            "product": "M340",
            "version": "2.6.0",
            "risk_score": 0.75,
            "evidence": [
              "response:00010000000101",
              "port_hint:502"
            ],
            "findings": [
              "Detected MODBUS protocol (confidence: 0.55)",
              "Identified vendor: SCHNEIDER, product: M340",
              "Overall risk assessment: High (score: 0.75)"
            ],
            "unexpected_port": false
          }
        }
      ],
      "vulnerabilities": [
        {
          "cve_id": "CVE-2025-55221",
          "description": "Socomec DIRIS Digiware M-70 DoS via crafted Modbus TCP/RTU over TCP packets",
          "severity": "high",
          "source": "local_db"
        }
      ]
    }
  ]
}

道德考量

法律合规

本工具仅限经授权的安全评估使用。未经授权进行扫描可能违反:

  • 美国《计算机欺诈与滥用法》(Computer Fraud and Abuse Act)
  • 英国《计算机滥用法》(Computer Misuse Act)
  • 其他司法辖区的类似法律

最佳实践

  • 扫描前务必获取书面授权
  • 尽可能使用安全模式
  • 尽可能在维护窗口期内进行扫描
  • 遵守速率限制,避免造成 DoS 状况
  • 考虑到工业系统的脆弱性

漏洞情报

扫描器内置了一个针对核心协议的轻量级漏洞数据库(参见 VULNERABILITY_DATABASE)。如需更新的情报,可启用可选的 ProjectDiscovery vulnx 集成:

  1. 安装 vulnx 并配置你的 PDCP API 密钥(vulnx auth)。
  2. 使用 --vulnx 运行(可选调整 --vulnx-limit 和 --vulnx-timeout)。
  3. 来自 vulnx 的漏洞会与本地发现合并,并标记为 source: "vulnx"。

如果 vulnx 缺失或无法访问,扫描器将静默回退至本地数据库。本地数据库条目会定期从针对核心协议的 vulnx 搜索中刷新(已收录于本仓库快照),并标记为 source: "local_db"。

测试

运行单元测试套件:

root@kitploit:~
pytest

开发者文档

添加新协议

扫描器采用模块化设计,可轻松扩展对新协议的支持:

  1. 将协议详细信息添加到 SCADA_PORTS 列表
  2. 将签名模式添加到 PROTOCOL_SIGNATURES 字典
  3. 创建协议专用的探测与分析函数
  4. 将漏洞信息添加到 VULNERABILITY_DATABASE

参与贡献

欢迎贡献!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交你的更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 开启一个 Pull Request

许可证

本项目采用 MIT 许可证授权 - 详情请参阅 LICENSE 文件。

免责声明

本软件按“原样”提供,不附带任何明示或暗示的担保。对于因使用本软件而造成的任何损害或损失,作者不承担任何责任。

下载工具