固件分析技术(4)-CTF赛题 – 作者:hahali

历史文章:

固件分析技术(1)-简介

固件分析技术(2)-工具使用

固件分析技术(3)-漏洞复现

文章首发于公众号:焊死车门

一、概述:

一般题目会提供一个IOT设备的固件进行分析,获取flag。现在网络中能找到的有关固件分析的CTF题比较少,故在此列举三道题作为入门。

二、赛题复现:

BUUCTF-firmware图片[1]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

(1)固件提取

下载固件,使用binwalk提取。图片[2]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

解压后发现还存在一个120200.squashfs文件图片[3]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

再次解压120200.squashfs文件图片[4]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

题目要求分析出后门程序所使用的远程服务器和端口。
tmp文件夹中有我们想要的后门程序:图片[5]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

放入IDA中进行分析,能看出是ARM架构图片[6]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

(2)查壳脱壳

在放到IDA分析之前,先用查壳工具查看一下是否加壳图片[7]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

提示有壳,我们可以使用upx进行脱壳

Unbuntu安装upx:apt-get install upx图片[8]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

脱壳后我们再把backdoor文件放到IDA中进行分析。图片[9]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

(3)代码分析

因为题目中是让我们找网址+端口的md5加密结果,因此我们只需要在String window找网址和端口就行。

查看字符串

View–>Open subviews–>Strings

图片[10]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

Flag为远程服务器和端口,找到服务器地址后再来找端口。

F5反编译找到initConnection函数图片[11]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

双击进入,找到端口:36667图片[12]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

最后把网址和端口转换成MD5图片[13]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

flag{33a422c45d551ac6e4756f59812a954b}

CTFHUB-二次设备固件逆向图片[14]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

(1)固件提取

下载后解压固件。图片[15]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

解压后存在home文件夹。图片[16]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

FuncDll     # 动态链接库

Icon        # 图标和配置文件

NandFlash   # 存储

Process     # 运行的程序代码

lost+found  # 空

图片[17]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

根据题目要求需要找到硬编码或者厂商后门口令,使用关键字进行搜索。图片[18]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

经过分析发现flag存在于JZPHMISystem文件中:

./Process/JZPHMISystem: inputPassword

./Process/JZPHMISystem: passWd.c

./Process/JZPHMISystem: rootPasswd

./Process/JZPHMISystem: passWdPID

./Process/JZPHMISystem: inputPassword

./Process/JZPHMISystem: InputPwd_pro

./Process/JZPHMISystem: InputPwdPro

(2)代码分析

将JZPHMISystem文件拖入IDA中进行分析。图片[19]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

根据之前的关键字查找,找到了inputPassword和InputPwd_pro函数,InputPwdPro是个bss处的位置图片[20]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科图片[21]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

但是找不到rootPasswd,passWdPID和passWd.c,搜了hex-view的全局内存也没有,后来看了大佬的讲解才发现是符号,在IDA的工具栏里选择view->opensubview->Names,这才找到rootPasswd。图片[22]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科图片[23]-固件分析技术(4)-CTF赛题 – 作者:hahali-安全小百科

密码为689078

CTFHUB-简单的固件逆向分析

本题固件采用施耐德PLC以太网模块固件noe77101,题解参照“固件分析技术(3)-固件漏洞复现”。

来源:freebuf.com 2021-05-30 01:23:47 by: hahali

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论