MIS 固件逆向漏洞挖掘
实验目的
选取任意一个路由器、摄像头或者其它智能设备的固件漏洞,对目标固件进行逆向工程和漏洞分析,剖析漏洞机理,找到漏洞利用方法,编写漏洞利用代码,展示漏洞利用效果,简述漏洞防护方法;标明漏洞的CVE编号,压缩包中包含固件、源代码等。
实验准备
-
所选固件:施耐德NOE77101以太网模块固件
-
漏洞编号:CVE-2011-4859
-
漏洞选择理由:施耐德公司的大量PLC设备被大量部署于我国能源、电力、化工等行业工业控制网络中,比如Modicon Quantum 系列PLC作为高端PLC参与着我国核心能源调度网络系统,如西气东输区域子段SCADA系统。
然而,作为全球能效管理专家的施耐德电气公司虽然有着同行业难以望其项背的技术产品,但至少在早年间暴露的CVE-2011-4859漏洞侧面反映了其对于网络安全的忽视,该漏洞涉及施耐德多款PLC设备,包含其CPU模块和以太网模块。通过默认账号,破坏者可以远程登录访问设备Telnet、Windriver或FTP服务,登录后可获取设备实时数据、掌握设备权限、甚至破坏网络,直接威胁到设备甚至设备所在网络的安全。而在这个漏洞被曝出后,施耐德公司花了两年时间才更新了固件,然而新固件仍旧存在大量安全漏洞,许多问题完全没有解决。
因此,这一经典的漏洞及其衍生题目被不少信息安全比赛选用于题目中,笔者知道的有两个:2018工业信息安全技能大赛,与2020工业信息安全技能大赛(ICSC)石家庄站——简单的固件逆向分析(CTFHUB中已收录)。故而选择它作为本次作业的分析对象。
固件下载链接:https://github.com/ameng929/NOE77101_Firmware
-
主机:win 10
-
虚拟环境:kali 2021.4 / win 7
实验步骤
下载固件后解压文件,名为FLASH0的文件夹中,wwwroot/classes/内的jar文件即是Web配置端APP文件,而wwwroot/conf/exec/NOE77101.bin很明显就是NOE77101的固件了。另外,fw/fw.ini文件内是固件版本,打开可以看到是6.40版本
讽刺的是,就笔者了解,这个6.40版本就是施耐德公司修了两年修出来的新固件,相关问题并没有完全得到修复,原先的版本是3.60
一、简单的破解-分析jar格式的APP文件
-
通常来说(比如实验准备中提到的两个信息安全比赛)要求仅仅找出后门密码即可,而如果只是想要实现这一目标,我们可以走捷径,要做的就是分析jar格式的APP文件即可。针对.jar文件的逆向分析,常使用的工具是JD-GUI,安装该工具需要提前配置java环境。
jd-gui的github下载链接:https://github.com/java-decompiler/jd-gui/releases
下载jd-gui