Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
OpcUaTrap — 面向 ICS/SCADA 的高交互 OPC UA 蜜罐——支持多场景配置(石油与天然气、水务、电网)、实时过程仿真、按会话进行威胁评分,并集成 SIEM(syslog/CEF/webhooks/Elasticsearch)。基于 .NET 8 和 LibUA 构建。 | Kitploit
工具/GitHubGitHub/0xajstrike/opcuatrap
防御工具SCADA/ICS安全信息收集网络安全威胁情报入侵检测事件响应日志分析
GitHub0xajstrike/opcuatrap

OpcUaTrap

面向 ICS/SCADA 的高交互 OPC UA 蜜罐——支持多场景配置(石油与天然气、水务、电网)、实时过程仿真、按会话进行威胁评分,并集成 SIEM(syslog/CEF/webhooks/Elasticsearch)。基于 .NET 8 和 LibUA 构建。

查看仓库
21818天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

OpcUaTrap

一个面向 ICS/SCADA 环境的高交互 OPC UA 蜜罐。基于 LibUA 构建——它是完整的 OPC UA Binary 协议栈,而非协议模拟器。它可跨多个行业配置模拟逼真的工业控制系统,具备实时过程值、全面的威胁检测以及可直接对接 SIEM 的日志记录。

由 0xAJStrike 构建。

📄 演讲: 像读蓝图一样读懂工厂 —— 本工具为之而构建的 SecTor 2026 演讲(OPC UA 攻击面、蜜罐设计以及现场演示)。

为什么选择高交互?

大多数 ICS 蜜罐(Conpot、GRFICSv2)仅提供部分协议模拟。OpcUaTrap 实现了完整的 OPC UA Binary 协议——安全通道协商、会话生命周期、订阅、历史记录以及所有服务集。真实的漏洞利用工具和扫描器(OpalOPC、Nmap OPC UA 脚本)会像与生产系统交互一样与它交互。

低中OpcUaTrap
协议仅横幅部分模拟完整真实协议栈
会话状态无基础完整生命周期
地址空间静态 / 空少量节点100–130 个逼真节点
订阅无无有——推送实时数据
漏洞利用韧性崩溃部分可承受完整框架攻击

功能特性

  • 三种行业配置 —— 石油与天然气、水处理、电网 —— 每种配置包含 100–130 个实时过程节点
  • 完整 OPC UA 协议 —— 浏览、读取、写入、调用、历史读取、订阅、4 个安全端点
  • 实时模拟 —— 1 秒 tick、高斯噪声、均值回归漂移、储罐填充/排空动态
  • 12 条威胁检测规则 —— 按会话评分(0–100)、蜜标检测、枚举检测、批量窃取、凭据喷洒等
  • 反指纹识别 —— 伪造厂商身份、响应时序抖动、逼真的错误码、运行时间随机化
  • 可插拔 SIEM 日志记录 —— NDJSON(始终开启)、syslog RFC 5424、ArcSight CEF、HTTP webhook、Elasticsearch 直接摄取
  • 配置驱动的加固 —— 认证策略、账户锁定、服务限制 —— 均可按 JSON 配置进行设置

快速开始

使用 Docker 运行(最快)

docker run -d --name opcuatrap -p 4840:4840 \
  -e OPCUATRAP_PROFILE=oil-gas \
  -v opcuatrap-data:/data \
  ghcr.io/0xajstrike/opcuatrap:latest

蜜罐现已运行在 opc.tcp://<host>:4840。使用 -e OPCUATRAP_PROFILE=water-treatment(或 power-grid)切换设施。该镜像为多架构 (amd64 + arm64,因此也可在 Raspberry Pi 上运行)、以非 root 身份运行,并将其 证书和 NDJSON 日志持久化到 opcuatrap-data 卷。完整的 Docker 详情 (Compose、所有环境变量)见 部署 → Docker。

前置条件

  • .NET 9.0 SDK 或更高版本 — 从源码构建所必需,因为捆绑的 LibUA 多目标最高到 net9.0。蜜罐本身运行在 .NET 8 运行时上。(如果使用 Docker 则不需要 — 镜像会在内部构建所有内容。)

  • LibUA — OPC UA 协议栈。OpcUaTrap 基于一个经过轻微修改的分支构建 (0xAJStrike/LibUA,是 nauful/LibUA 的分支),该分支为多个 OPC UA CVE 增加了纵深防御限制,并添加了可选的蜜罐欺骗响应。

    将两个仓库克隆到同一父目录下的并排位置:

    git clone https://github.com/0xAJStrike/OpcUaTrap.git
    git clone https://github.com/0xAJStrike/LibUA.git
    

    预期布局(OpcUaTrap 相对于其项目文件引用 ../../../LibUA/NET-Core/LibUA/LibUA.csproj,即 LibUA 与 OpcUaTrap 相邻):

    parent/
    ├── OpcUaTrap/   # this repo
    └── LibUA/       # the fork, cloned as a sibling
    

构建

dotnet build src/OpcUaTrap/OpcUaTrap.csproj

运行

# Oil & gas profile (default, port 4840)
dotnet run --project src/OpcUaTrap

# Water treatment profile
dotnet run --project src/OpcUaTrap -- --profile water-treatment

# Power grid profile
dotnet run --project src/OpcUaTrap -- --profile power-grid

# Custom port
dotnet run --project src/OpcUaTrap -- --port 7718

# Custom log directory
dotnet run --project src/OpcUaTrap -- --log-dir /var/log/opcuatrap

服务器在约400毫秒内启动,并立即开始模拟过程值。


行业配置文件

配置文件是位于 src/OpcUaTrap/Profiles/ 中的 JSON 文件。每个文件定义了设施身份、完整地址空间、标签分类、模拟规则和加固配置。

配置文件--profile设施节点供应商身份
oil-gas(默认)PetroVista 中央处理设施~120Schneider Electric SCADAPack 57x
water-treatmentwater-treatmentCascade 市政水处理厂~100Rockwell Automation ControlLogix
power-gridpower-gridRidgeline 138kV 输电变电站~130ABB RTU560

石油与天然气 — 地址空间

PetroVista Central Processing Facility/
  Site_Information/
  Wellheads/            WH_101 – WH_104  (pressure, temp, flow, choke position)
  Separators/           SEP_HP_201, SEP_LP_202  (pressure, level, setpoints)
  TankFarm/             TK_OIL_301, TK_OIL_302  (level, alarms, inlet/outlet valves)
  PumpStations/         PMP_XFER_401  (speed, discharge pressure, start/stop commands)
  CompressorStation/    COMP_501  (RPM, vibration, discharge temp, load %)
  Pipelines/            PL_EXPORT_601  (pressure, flow, block valve)
  SafetySystems/        ESD  (status, shutdown valves, trigger/reset methods)
                        FireAndGas  (gas detectors %LEL, flame detectors)
  Utilities/            Instrument air, fuel gas, power generation

水处理 — 地址空间

Cascade Municipal Water Treatment Plant/
  Site_Information/
  RawWaterIntake/       Flow, turbidity, pH, temp, intake pumps, isolation valve
  Coagulation/          Rapid mix, alum dose rate and setpoint
  Flocculation/         Slow mixer, polymer feed rate and setpoint
  Sedimentation/        Basin levels, turbidity, sludge blanket, scrapers
  Filtration/           4 filters — differential pressure, turbidity, backwash status
  Disinfection/         Primary/secondary chlorination, ammonia feed (chloramine)
  ClearWell/            Finished water storage — level, turbidity, pH, Cl2 residual
  Distribution/         High-service pumps, pressure zones, elevated tank level
  SafetySystems/        ESD, chlorine/ammonia leak detectors and isolation valves
  Utilities/            Power, backup generator, SCADA system status

电网 — 地址空间

Ridgeline 138kV Transmission Substation/
  Site_Information/
  HV_Bus (138kV)/       Phase voltages, line voltage, frequency, MW/MVAR/PF
                        CB-101 main breaker, CB-102 bus tie (status, SF6, trip/close)
  Transformers/         T1 & T2, 50 MVA each — voltage, current, oil temp, winding temp,
                        LTC tap position (1–17), loading %, tap raise/lower commands
  LV_Bus (13.8kV)/      Bus voltage, frequency, total MW/MVAR/PF
  Feeders/              F1 Residential, F2 Industrial, F3 Commercial, F4 Hospital/Critical
                        (current, MW, MVAR, recloser ops, trip/close commands)
  CapacitorBanks/       CAP-1 (energized), CAP-2 (standby) — 5 MVAR each
  ProtectionRelays/     SEL-351S overcurrent, SEL-387 differential, SEL-421 distance
                        All have _ENABLED flag — disabling them is a critical attack target
  DC_System/            125VDC station battery — voltage, SOC, charger status, ground fault
  SafetySystems/        86 Lockout relay (trip-all-breakers), ESD
  SCADA_RTU/            ABB RTU560 status, EMS comm link, historian connection

安全端点

#策略模式
1NoneNone
2Basic256Sha256Sign
3Basic256Sha256SignAndEncrypt
4Aes128_Sha256_RsaOaepSignAndEncrypt

配置文件可通过 hardening.authentication.allowedSecurityPolicies 配置限制所提供的策略。


蜜令牌凭据

预先植入的弱凭据,使用时会触发告警。定义于 appsettings.json。

用户名密码告警级别
operatorop3rator!HIGH
adminadmin123CRITICAL
engineerWelcome1CRITICAL
readonlyreadonlyMEDIUM
svc_historianh1st0rianHIGH

认证行为因配置文件而异——oil-gas 使用 selective 模式(拒绝未知凭据),water-treatment 使用 accept-all。


蜜罐行为

操作响应日志记录
Browse返回完整地址空间检测枚举 >100 次操作
Read返回实时模拟值静默,除非批量(>20 个节点)或关键标签
Write返回 Good——值在 1 秒内恢复记录日志 + 按标签分类进行威胁评分
Call(ESD/Lockout 方法)返回 Good——无任何实际效果CRITICAL 告警,+30 威胁评分
History Read返回 30 天的正弦波数据检测批量窃取 >1000 个数据点
Subscribe(关键标签)返回真实订阅CRITICAL 告警,+20 威胁评分
蜜令牌登录会话被接受HIGH/CRITICAL 告警
匿名认证按配置文件接受或拒绝记录日志

威胁检测

标签分类

标签按配置文件进行分类。分类决定写入威胁评分。

分类示例标签写入评分
CriticalESD_, SDV_, CMD, PSP, _LAHH, XV, CBCMD, REL_*_ENABLED+25
Sensitive过程变量(压力、温度、流量、电压、电流)+10
Normal公用设施、站点信息、运行小时数、状态计数器+5

威胁规则(共 12 条)

下载工具