首页
社区
课程
招聘
11
[原创]HMI固件解密思路
发表于: 2020-12-10 10:26 21282

[原创]HMI固件解密思路

2020-12-10 10:26
21282

HMI作为工业控制系统的一个重要组成部分,其安全性是非常重要的,一旦攻击者成功攻破了HMI设备,就可以读取甚至恶意修改工业现场中的数据变量(温度,压力,阀门开关等),严重危害生产安全。所以一些HMI生产厂商为了保护HMI的固件不被逆向分析,一般都会对提供下载的固件进行加密,本篇文章以一个HMI设备作为例子,介绍了如何不拆机直接解密固件文件。

HMI(Human Machine Interface)人机界面是系统和用户交货信息的媒介,在工控系统中将具有触摸输入的HMI叫做触摸屏。HMI用来连接可编程序控制器(PLC)、变频器、直流调速器、仪表等工业控制设备,通过采集工控现场的数据使之呈现出来,同时也可以让用户直接完成一些设备的控制。

下面是一个典型的场景,HMI作为SCADA系统中的一个部分,提供可视化和控制设备的能力,PLC控制不同的传感器和执行器,每个PLC都配有一个HMI(当然多个PLC也可以连接一个HMI设备)。

HMI设备固件可以从官网上很容易获取到,这里直接下载它最新版的固件:

同时我们需要下载与之配套的SCADA软件,如下:

使用十六进制编辑软件打开HMI固件文件,可以看到很明显的“PK”头,说明是zip压缩包:

将该文件加个“.zip”后缀,再用解压缩软件尝试解压,不出所料,该压缩包有密码保护:

经过分析知道了固件是一个压缩包,需要密码才能解开,那如何找到密码呢?一般而言,SCADA软件中可能存在固件解密逻辑,所以可以先在SCADA的代码中查找看有没有解密的密钥。

该SCADA软件主要由两大部分组成,一个是用C#编写的开发工具,可以使用dnspy进行反编译和调试,另一部分是运行时(runtime),这部分负责执行HMI逻辑,显示相关数据,runtime部分是nodejs编写的,对于这部分可以用vscode进行动态调试,这些技巧很基础,这里就不展开写了。

简单搜索一些关键字,例如“pwd”便可快速定位到固件解压的代码,下图框起来的地方就是解压密码。

使用该密码解压之后,得到一个压缩包文件hmis.tar.gz。

使用十六进制打开hmis.tar.gz,发现该文件不是gz压缩包,很明显也被加密了,接下来就需要找到加密的算法以及加密的密钥。


[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费 11
支持
分享
赞赏记录
参与人
雪币
留言
时间
飘零丶
为你点赞!
2025-2-23 04:41
東陽不列山
为你点赞!
2025-1-9 06:35
deallyxyz
你的帖子非常有用,感谢分享!
2024-11-29 10:58
sinker_
感谢你分享这么好的资源!
2024-9-29 22:46
心游尘世外
为你点赞!
2024-9-26 05:12
QinBeast
看雪因你而更加精彩!
2024-9-25 01:58
jmpcall
为你点赞~
2023-3-29 13:47
PLEBFE
为你点赞~
2023-1-15 05:57
zx_838741
为你点赞~
2021-4-27 20:08
wmsuper
为你点赞~
2020-12-13 17:11
L0x1c
为你点赞~
2020-12-10 18:44
最新回复 (18)
雪    币: 4869
活跃值: (2280)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2020-12-10 10:39
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2020-12-10 11:14
0
雪    币: 3439
活跃值: (7298)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2020-12-10 12:00
0
雪    币: 1190
活跃值: (3310)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2020-12-10 14:28
0
雪    币: 1005
活跃值: (5461)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
6
2020-12-10 18:44
0
雪    币: 1830
活跃值: (1877)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
强大
2020-12-10 21:18
0
雪    币: 417
活跃值: (211)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
strong!!!
2020-12-11 08:56
0
雪    币: 8892
活跃值: (4831)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
2020-12-11 09:09
0
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
如果代码被混淆加密了呢,怎么动态调试
2020-12-11 09:49
0
雪    币: 5797
活跃值: (2513)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
高手 感谢分享
2020-12-11 13:55
0
雪    币: 1507
活跃值: (853)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最喜欢这种内容。伊朗核设施被美国的病毒破坏
2020-12-12 13:27
0
雪    币: 1445
活跃值: (1238)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
分析思路赞一个!海为的HMI做得挺好的!
2020-12-12 13:52
0
雪    币: 10200
活跃值: (15120)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
14
komawangs 分析思路赞一个!海为的HMI做得挺好的!
厉害,这都能看出来!
2020-12-12 15:48
0
雪    币: 388
活跃值: (892)
能力值: ( LV3,RANK:32 )
在线值:
发帖
回帖
粉丝
15
太强了
2020-12-15 17:32
0
雪    币: 1830
活跃值: (1877)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
Tql,学到了
2020-12-15 20:37
0
雪    币: 630
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
学到了
2020-12-16 15:42
0
雪    币: 56
活跃值: (401)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
2023-3-29 12:00
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
2023-4-7 15:49
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册