Schneider 模块固件
概述
施耐德电气(Schneider Electric)的模块固件,是为其各类模块化设备(如控制器、I/O 模块、通信模块等)提供底层功能的软件。它直接决定了模块的性能、功能及稳定性,通常以 .zip 或 .seco 等格式提供
实战案例
简单的固件逆向分析(Schneider 模块固件)

解压缩附件,里面有个压缩文件叫 SchneiderTFE.zip,所以应该考察的是 Schneider 模块固件
关键文件是 FLASH0/wwwroot/conf/exec/NOE77101.bin
1 | od -Ax -tx1z -j 0x210 -N 48 ./NOE77101.bin |
od:以不同进制查看二进制原始数据-Ax:地址偏移量以十六进制显示(行首如 00000210)-tx1z:单字节显示十六进制值,末尾附加 ASCII 字符(不可见字符显示为 .)-j 0x210:跳过文件开头的 528 个字节(0x210 转十进制)-N 48:跳过之后,只读取并显示接下来的 48 个字节
其中 78 9c 是典型的 zlib 压缩流头,压缩数据从偏移 0x217 开始

编写脚本解压固体
1 | import zlib |
对解压后的文件搜索
1 | strings -a NOE77101_decomp.bin | grep -A5 -B5 -i "ftpuser" |
-B5:显示匹配行前 10 行上下文-A5:显示匹配行后 20 行上下文
这里能看到一组内置账号/密码表,格式大致是
1 | 用户名 |
成功拿到 flag:RcQbRbzRyc
