Skip to content

Latest commit

 

History

History
152 lines (96 loc) · 4.5 KB

固件安全.md

File metadata and controls

152 lines (96 loc) · 4.5 KB

固件安全


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


相关教程

相关工具

CTF writup


固件提取

手动提取

使用 hexdump 搜索 hsqs 的地址

hexdump -C RT-N300_3.0.0.4_378_9317-g2f672ff.trx | grep -i 'hsqs'

使用 dd 命令截取地址 925888(0xe20c0)之后的数据,保存到 rt-n300-fs。

dd if=RT-N300_3.0.0.4_378_9317-g2f672ff.trx bs=1 skip=925888 of=rt-n300-fs

最后,使用 unsquashfs rt-n300-fs 命令解析 rt-n300-fs 文件,得到的 squashfs-root 就是固件系统

unsquashfs rt-n300-fs

binwalk 提取

项目地址 : binwalk

基础使用

binwalk kali 自带,很拉跨,需要重装

wget https://github.com/ReFirmLabs/binwalk/archive/master.zip
unzip master.zip
(cd binwalk-master && python setup.py uninstall && python setup.py install)
binwalk -Me xxx.bin         # 递归提取
binwalk -e -t -vv xxx.bin   # 查看详细的提取过程

binwalk 通过自带的强大的 magic 特征集,扫描固件中文件系统初始地址的特征码,若匹配成功,则将该段数据 dump 下来, https://github.com/ReFirmLabs/binwalk/blob/master/src/binwalk/magic/filesystems , Squashfs 文件系统,对应的扫描特征码为 hsqs

binwalk 提取出来的文件夹为 _xxx.extracted/

相关文章

  • binwalk提取固件失败 - 在 binwalk 遇到大端序可以先用 DD 截取出来之后使用 objcopy 转换为小端序再用 binwalk 提取。

常见报错

  • binwalk WARNING: Extractor.execute failed to run external extractor 'sasquatch -p 1 -le -d '%%squash
    • 需要安装 sasquatch
      apt-get install -y build-essential liblzma-dev liblzo2-dev zlib1g-dev
      git clone https://github.com/devttys0/sasquatch
      cd sasquatch
      ./build.sh

firmware-mod-kit

项目地址 : rampageX/firmware-mod-kit

firmware-mod-kit 工具的功能和 binwalk 工具的类似,其实 firmware-mod-kit 工具在功能上有调用 binwalk 工具提供的功能以及其他的固件解包工具的整合。下载 firmware-mod-kit 工具的源码进入到 src 目录下就能够看到 firmware-mod-kit 工具整合了那些固件提取和文件系统解压的工具。firmware-mod-kit 工具的功能有固件文件的解包和打包、固件提取文件系统的解压和压缩、DD-WRT Web Pages 的修改等,在每个整合的固件分析工具的源码文件夹里都有相关的使用说明。

相关文章

安装

apt install firmware-mod-kit

使用

bash /opt/firmware-mod-kit/trunk/unsquashfs_all.sh xxx.squashfs

提取出来的在 /root/squashfs-root/tmp/ 目录下


文件系统

Squashfs 文件系统提取

mksquash xxxx xxxx.squash   # 制作 squashfs 镜像
unsquashfs xxx.squashfs     # 解压

yaffs 文件系统提取


静态固件分析

相关文章

分析实战


动态固件分析


固件解密


修复运行环境