Skip to content

Latest commit

 

History

History
160 lines (115 loc) · 5.94 KB

固件安全.md

File metadata and controls

160 lines (115 loc) · 5.94 KB

固件安全


免责声明

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


相关教程

相关文章

  • 施耐德充电桩漏洞挖掘之旅
    # 固件下载
    https://www.se.com/ww/en/download/document/MFR4341700/
    https://download.schneider-electric.com/files?p_enDocType=Firmware&p_File_Name=EVlink_charging+station_Release_Note_R07_run17.zip&p_Doc_Ref=MFR4341700
    https://download.schneider-electric.com/files?p_Doc_Ref=PHA6457000&p_enDocType=Firmware&p_File_Name=EVlink_Release_Note_and_Software_R6_32012.zip
    

相关工具

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 文件系统提取

jffs2


静态固件分析

相关文章

分析实战


动态固件分析

相关文章

仿真工具

  • pr0v3rbs/FirmAE - Towards Large-Scale Emulation of IoT Firmware for Dynamic Analysis
    git clone --recursive https://github.com/pr0v3rbs/FirmAE
    ./download.sh
    ./install.sh
    
  • firmadyne/firmadyne - Platform for emulation and dynamic analysis of Linux-based firmware