安全矩阵

 找回密码
 立即注册
搜索
查看: 3829|回复: 0

设备固件提取小结

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2020-7-3 20:37:23 | 显示全部楼层 |阅读模式
本帖最后由 gclome 于 2020-7-3 20:41 编辑

原文链接:设备固件提取小结

一、常见设备类型-按片外片内ROM划分
其实很多CPU都同时支持片内和片外ROM,比如老的C51到现在流行的STM32。为啥要划分这两种类型呢,主要片外提取固件基本可以暴力提取,直接把存储芯片焊接下来用相应的读取设备就能读取。
程序或者系统保存在芯片内的一般都没外挂存储的,例如下面:
片外rom我们最常见的手机、路由器这些都是片外rom:


二、常见系统分类
NON-OS:这类嵌入式系统不包含任何操作系统,可能会包含事件调度器。
RT-OS:这类嵌入式系统运行功能紧凑但具有很强实时性的RTOS。
Rich-OS:这类嵌入式系统运行功能非常齐全的操作系统。

下图只列取部分常见系统:





三、片内rom 程序提取的方式:


3.1 软件手段
这个需要芯片本身支持读取调试,例如avrdude系列芯片熔丝位没锁死isp,使用usbasp接入板子对应接口

通过avrdude -cusbasp -pm8 -U flash:r:mega8_servo.hex:i 提取固件

3.2 物理破解手段
硬件破解手段就是直接对芯片进行物理破坏进行破解,比如stm32系列芯片就可以进行物理破解。avr系列芯片如果融丝位锁死ISP,也可以通过物理手段破解。下面以stm32为栗子:
首先要对芯片进行开片

当晶片裸露出来后,那么,我们就要用到高倍显微镜和FIB(聚焦离子束设备),用这两种设备,查找芯片的加密位置,通过改变其线路的方法,将加密芯片变为不加密的一个状态,然后再用编程器,将芯片内部的程序读取出来。

这里要注意 stm32 一般都会进行加密 读取出来后也需要进行解密工作


四、片外rom 程序提取的方式:
片外存储的类型非常多常见的类型如:
EEPROM、SPI FLASH、NOR FLASH、SD卡、硬盘等,这里只做简单的列举。
也有通过接口进行分类:
如spi 接口、i2c接口、串口、c51用的并行中线、SD卡的sdio、硬盘的sata等,甚至安卓手机里等pcie

4.1spiflash固件提取
spiflash可以很方便提取,可以把芯片取下放到读卡器或者直接用夹子就能读取flash里的固件。

4.2安卓设备ROM提取:
适用于没有root权限拿不到Recovery

4.3 x86设备固件提取
x86设备一般都是硬盘,不管是机械硬盘还是ssd,都是标准的pc接口,这种一般都会出现在防火墙,审计设备上。
五、接触不到物理设备但是有权限的设备提取固件:

5.1 能通过网络链接并且有相应权限的:
busybox命令齐全操作就很方便,直接用dd命令或者mtd备份到文件人后scp传出来
我遇到过一个比较精简的系统,dd命令这些都被精简了,这种情况在嵌入式设备里很常见,毕竟flash有时候1m 、2m这种情况很多。
很多时候可以直接用tftp直接把固件传送出来
tftp  -p -r /dev/mtdblock1 192.168.200.28

5.2 通过厂商网站下载升级包:
这里面就有多种情况了,有很多厂家直接提供固件下载,现在安全意识提高了,下载的固件很多都加密了,下载后还需要解密,有的固件已经不提供下载了,需要到设备管理界面联网升级,这个可以通过抓包来分析固件地址,也能提取到固件。
六、总结:
这些都是平时干活遇到的设备,讲得比较简单。有机会讲解下固件提取之后的仿真和反汇编操作。大家多多点赞哦。写的不好,说得也不够全面,也有说得不对的地方,各位大佬多多谅解。


















回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 23:03 , Processed in 0.013179 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表