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

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

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

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

工具目录

分类

查看所有分类
Loading categories
KNX-Bus-Dump — 通过TPUART和Calimero Project套件监听KNX总线的工具,并将数据包中的内容转储为Wireshark兼容的文件十六进制转储。 | Kitploit
工具/GitHubGitHub/chrism09/knx-bus-dump
数据包嗅探与分析物联网安全取证分析网络安全数字取证硬件与物联网安全
GitHubchrism09/knx-bus-dump

KNX-Bus-Dump

通过TPUART和Calimero Project套件监听KNX总线的工具,并将数据包中的内容转储为Wireshark兼容的文件十六进制转储。

查看仓库
1244年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

KNX 总线转储

KNX 是一种流行的楼宇自动化协议,用于将智能建筑中的传感器、执行器和其他组件互联。我们的 KNX 总线转储工具利用 Calimero Java 库(我们为此工具对其做出了贡献),记录通过 KNX 总线发送的报文。具体来说,我们的工具通过 TPUART 连接访问 KNX 总线,但可以更改以使用不同的连接介质。报文被转储到 Wireshark 兼容的十六进制转储文件中。时间戳以纳秒精度提供并归一化为 UTC 时间,以便进行数据分析并提供报文的时间线。该十六进制转储文件可以导入 Wireshark,并配置 Wireshark 的 cEMI 解析器来解析 KNX 报文。

我们的工具可用于 KNX 传感器、执行器和其他 KNX 设备的协议分析。例如,我们使用该工具来理解我们的 KNX 设备,并发现了异常的 KNX 报文。该工具也非常适合 KNX 设备的安全分析,因为它揭示了涉及协议和通过 KNX 总线发送的数据的所有细节。

Tcpdump 和 Wireshark 不能用于转储通过 KNX 总线发送的报文,因为我们处理的是原生 KNX 报文,而不是 TCP/IP 数据包。Wireshark 和 tcpdump 可以转储 KNXnet/IP 数据包,这些是 TCP/IP 数据包。KNXnet/IP 是一种通过 TCP/IP 网络向 KNX 总线发送命令和数据的协议。

先决条件

此工具设计用于与 Calimero Java 库配合使用,并兼容 Raspberry Pi 3 或 4 以及用于 TPUART 连接的 Raspberry Pi HAT。

以下是设置环境的一些指南:

  1. KNX Raspberry PiHAT 使用指南
  2. Raspberry Pi 和 Calimero 套件设置

注意:后续步骤假设您已按照这些指南设置了环境。

使用方法

创建十六进制转储

  1. 将 KNXBusDump.java 文件放入 Calimero 项目套件的 introduction/src/main/java/ 文件夹中。

  2. 切换到 introduction 文件夹。

  3. 要运行程序,只需运行:

    root@kitploit:~
    ./gradlew run -Pcalimero.serial.tpuart.maxInterByteDelay=60000 -DmainClass=KNXBusDump
    

    请参考下面的 故障排除 指南以解决常见错误。

  4. 现在,等待一些消息在总线上传输,转储的报文将出现在 KNXBusDump-Telegrams.txt 文件中。

  5. 使用 Ctrl-C 取消工具,该文件现在可以导入 Wireshark 进行分析。

分析十六进制转储

在 Wireshark 中,您可以从十六进制转储导入数据包,并指定解析器来分析数据包。

  1. 启动 Wireshark 后,等待初始加载完成。然后点击 文件 -> 从十六进制转储导入...

  2. 为了正确解析,我们需要提供一个带有标签的正则表达式 (regex)。

    root@kitploit:~
    ^\s*(?<time>\d{4}-\d\d\-\d\dT(\d\d\:){2}\d\d.(\d){6}[Z])\s(?<seqno>\d{6})\s+(?<data>[0-9a-fA-F]*)$
    
  3. 选择十六进制转储文件作为源。

  4. 在新对话框中,切换到 正则表达式 选项卡,并将上述正则表达式粘贴到框中。

  5. 确保数据编码为 Plain hex。

  6. 在 时间戳格式 文本框中,需要指定工具生成的模式。

    root@kitploit:~
    %Y-%m-%dT%H:%M:%S.%fZ
    

    注意:时间戳格式必须与此完全一致。否则将无法解析出时间戳。

  7. 在 封装 部分,将 封装类型 更改为 Wireshark Upper PDU Export。

  8. 勾选 ExportPDU 以指定 cemi 解析器。

  9. 现在您可以导入文件并分析报文。

示例输出

Wireshark 时间戳:

对应的十六进制转储文件

注意:高亮显示的时间是归一化的 UTC 时间。无论时间旁边显示的时区是什么,它始终是正确的 UTC 时间。

考虑事项:

  1. cemi 解析器从报文的消息代码 (MC) 部分开始。它不考虑介质类型。
  2. TPCI 高亮为红色的原因是设计选择。解析器会看到该数据包是未编号数据包 (UDP),这意味着根据 KNX 标准,序列号 通常 设置为 0。然而,有时某些设备会将其设置为非零值。在这种情况下,它被设置为 1。解析器随后会检查序列号是否为零。这里不为零,因此出现错误消息,提示序列号应为 0。

故障排除指南

以下是一些在按照本设置指南运行此程序时可能出现的常见错误。我提供了解决方案,希望能修复该错误。

运行的是发现 KNX 服务器程序而不是总线转储

确保精确输入所有命令。运行命令时使用 "Dmainclass" 会导致程序默认为发现 KNX 服务器程序。请确保是 "DmainClass"。

无法获取 TPUART 端口的初始状态

确保 KNXD(如果您按照这些指南安装了它)没有运行。如果遵循本指南,则 KNXD 将使用相同的端口,且一次只能有一个进程使用串行端口。

Wireshark: "Can't initialize scanner: Unknown error"

如果您从上方复制粘贴了十六进制转储文件的内容,则可能缺少一个额外的换行符。例如,在 "SampleData1.txt" 中,github 表示显示 4 行数据,但实际上它是 4 行数据 加上 一个换行符。因此,一个可能的解决方案是,在您要导入的文件中,在最后一个数据字节之后直接按 "Enter"。

尝试示例输出

在此存储库中,我在 Sample-KNXBusDump-Telegrams.txt 文件中提供了用于创建截图的示例数据。请随意将其导入 Wireshark 自行测试。

测试场景

该工具在此本地 KNX 测试平台上进行了测试。

下载工具