freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

固件分析技术(4)-CTF赛题
2021-05-30 01:23:47

历史文章:

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

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

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

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

一、概述:

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

二、赛题复现:

BUUCTF-firmware

(1)固件提取

下载固件,使用binwalk提取。

解压后发现还存在一个120200.squashfs文件

再次解压120200.squashfs文件

题目要求分析出后门程序所使用的远程服务器和端口。
tmp文件夹中有我们想要的后门程序:

放入IDA中进行分析,能看出是ARM架构

(2)查壳脱壳

在放到IDA分析之前,先用查壳工具查看一下是否加壳

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

Unbuntu安装upx:apt-get install upx

脱壳后我们再把backdoor文件放到IDA中进行分析。

(3)代码分析

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

查看字符串

View-->Open subviews-->Strings

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

F5反编译找到initConnection函数

双击进入,找到端口:36667

最后把网址和端口转换成MD5

flag{33a422c45d551ac6e4756f59812a954b}

CTFHUB-二次设备固件逆向

(1)固件提取

下载后解压固件。

解压后存在home文件夹。

FuncDll     # 动态链接库

Icon        # 图标和配置文件

NandFlash   # 存储

Process     # 运行的程序代码

lost+found  # 空

根据题目要求需要找到硬编码或者厂商后门口令,使用关键字进行搜索。

经过分析发现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中进行分析。

根据之前的关键字查找,找到了inputPassword和InputPwd_pro函数,InputPwdPro是个bss处的位置

但是找不到rootPasswd,passWdPID和passWd.c,搜了hex-view的全局内存也没有,后来看了大佬的讲解才发现是符号,在IDA的工具栏里选择view->opensubview->Names,这才找到rootPasswd。

密码为689078

CTFHUB-简单的固件逆向分析

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

# 终端安全 # 固件分析
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录