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

[原创]HMI固件解密思路

2020-12-10 10:26
20940

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压缩包,很明显也被加密了,接下来就需要找到加密的算法以及加密的密钥。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 8
支持
分享
最新回复 (18)
雪    币: 4889
活跃值: (2275)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2020-12-10 10:39
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2020-12-10 11:14
0
雪    币: 2921
活跃值: (6666)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2020-12-10 12:00
0
雪    币: 1211
活跃值: (2745)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2020-12-10 14:28
0
雪    币: 1015
活跃值: (5242)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
6
2020-12-10 18:44
0
雪    币: 1743
活跃值: (1375)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
强大
2020-12-10 21:18
0
雪    币: 417
活跃值: (201)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
strong!!!
2020-12-11 08:56
0
雪    币: 8206
活跃值: (4161)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
2020-12-11 09:09
0
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
如果代码被混淆加密了呢,怎么动态调试
2020-12-11 09:49
0
雪    币: 5594
活跃值: (2168)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
高手 感谢分享
2020-12-11 13:55
0
雪    币: 1507
活跃值: (853)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最喜欢这种内容。伊朗核设施被美国的病毒破坏
2020-12-12 13:27
0
雪    币: 1267
活跃值: (1053)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
分析思路赞一个!海为的HMI做得挺好的!
2020-12-12 13:52
0
雪    币: 10868
活跃值: (14664)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
14
komawangs 分析思路赞一个!海为的HMI做得挺好的!
厉害,这都能看出来!
2020-12-12 15:48
0
雪    币: 388
活跃值: (892)
能力值: ( LV3,RANK:32 )
在线值:
发帖
回帖
粉丝
15
太强了
2020-12-15 17:32
0
雪    币: 1743
活跃值: (1375)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
Tql,学到了
2020-12-15 20:37
0
雪    币: 630
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
学到了
2020-12-16 15:42
0
雪    币: 47
活跃值: (386)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
2023-3-29 12:00
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
2023-4-7 15:49
0
游客
登录 | 注册 方可回帖
返回
//