Cool-Y.github.io/source/_posts/获取固件.md
2019-07-24 14:01:24 +08:00

4.5 KiB
Raw Permalink Blame History

title date tags categories
获取固件的几种方法 2019-07-24 11:49:28
IoT
硬件层
IOT

通过分析物联网设备遭受攻击的链条可以发现黑客获取固件把固件逆向成汇编或C程序语言后能分析出设备的运行流程和网络行为还能找到安全加密相关的密钥相关的信息。如果这些“有心人”没能获取到固件信息他们也很难发现这些漏洞。从这一点看物联网设备的安全性在很大程度上决定于其固件的安全性。

http://blog.nsfocus.net/security-analysis-of-the-firmware-of-iot/ https://open.appscan.io/article-1163.html

官网获取或联系售后索取升级包

网络升级拦截

工具wireshark、ettercap 流程:中间人->开始抓包->在线升级->分析固件地址->下载 案例华为路由WS5200 四核版 这款路由器在网上找不到现有固件,我们尝试一下是否可以通过抓包在线升级过程获取固件。 首先关闭防火墙,否则无法访问路由器的服务,无法做中间人攻击。 使用ettercap进行arp欺骗sudo ettercap -Tq -i ens33 -M arp:remote /192.168.31.1// /192.168.31.134// 打开wireshark进行抓包。理论上说点击升级固件之后wireshark就能够记录升级固件的整个过程(HTTP),但是结果却并不理想。

还好华为路由器自带了抓包的功能(方便后期的调试和维护),所以直接使用这个功能抓取报文,比做中间人要直接了当得多。

在点击升级固件之后我们可以看到大量发往58.49.156.104这个地址的报文,猜测极有可能是华为的服务器,过滤一下会看得更清楚 可以看到在通过三次TCP握手之后华为路由器向服务器发送了get请求uri就是获取固件的地址 http://update.hicloud.com/TDS/data/files/p14/s145/G4404/g1810/v272964/f1/WS5200_10.0.2.7_main.bin 点击即可拿到最新的固件

案例:小米智能门锁 http://cdn.cnbj0.fds.api.mi-img.com/miio_fw/250cc495d7da7643680dadeab578fce0_upd_lumi.lock.mcn01.bin?GalaxyAccessKeyId=5721718224520&Expires=1566136387000&Signature=KLOrbsRANlJD7w7bKB03xI1t4/0=

./storage/emulated/0/Android/data/com.xiaomi.smarthome/cache/ble/250cc495d7da7643680dadeab578fce0_upd_lumi.lock.mcn01.bin

$ binwalk -Me 250cc495d7da7643680dadeab578fce0_upd_lumi.lock.mcn01.bin

Scan Time:     2019-07-20 20:01:40
Target File:   /home/han/ck/iot/250cc495d7da7643680dadeab578fce0_upd_lumi.lock.mcn01.bin
MD5 Checksum:  250cc495d7da7643680dadeab578fce0
Signatures:    390

通过串口读取

工具uart转usb 流程找到电路板上的uart接口RX、TX、+5v、GND->串口通信->拿到shell->tar打包固件->nc传输 案例:小爱音响

刷开发板固件开启ssh服务

有些厂商除了稳定版固件,还会提供开发版供发烧友“玩弄”。 案例小米路由器的开发板可通过安装ssh工具包开启ssh服务 流程开启ssh->tar打包固件

root@XiaoQiang:/# ls
bin       data      dev       etc       extdisks  lib       mnt       opt       overlay   proc      readonly  rom       root      sbin      sys       tmp       userdisk  usr       var       www

压缩提示没有足够的空间
root@XiaoQiang:/# tar -zcf bin.tar.gz bin/*
tar: can't open 'bin.tar.gz': No space left on device

来看一下空间使用情况
root@XiaoQiang:/# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                   25.9M     25.9M         0 100% /
none                     60.5M      4.5M     56.0M   7% /dev
tmpfs                    60.9M      1.5M     59.4M   2% /tmp
ubi0_0                   25.9M     25.9M         0 100% /
tmpfs                    60.9M      1.5M     59.4M   2% /tmp
tmpfs                    60.9M      1.5M     59.4M   2% /extdisks
ubi1_0                   45.4M      6.7M     36.3M  16% /data
ubi1_0                   45.4M      6.7M     36.3M  16% /userdisk
ubi0_0                   25.9M     25.9M         0 100% /userdisk/data
ubi1_0                   45.4M      6.7M     36.3M  16% /etc

/dev目录下还有足够空间继续压缩
root@XiaoQiang:/# tar -zcf ./dev/bin.tar.gz bin/*
root@XiaoQiang:/# tar -zcf ./dev/data.tar.gz data/*
其他的目录也是一样的方法

scp传输到本地
scp root:password@miwifi:/dev/*.tar.gz ./Desktop

uboot提取固件

案例2018年看雪提供的摄像头

通过调试接口JTAG/SWD

拆存储flash、SD卡、硬盘等用编程器或读卡器获取

逻辑分析仪