这个工具之所以诞生主要是为了解决 iot嵌入式分析工具的安装问题.几个著名的 iot分析工具安装极其复杂,此外对环境,系统,依赖都有严格的版本需求,不能高也不能低.这导致大部分人遵照官方手册提供的安装流程只能安装出一个残废的版本,这对研究分析有着很大的干扰.
0x1 Q&A
binwalk
很多依赖是基于ubuntu16,在新版本的linux上安装有很多依赖已经无法正常安装- 此外很多分析工具在最新的ubuntu/debian上无法完全安装
- 此脚本基于ubuntu20.04 server lts 实现一个全功能的物联网分析工具的集合
- 此脚本会安装 apt-fast来加速 apt包的下载
- 此脚本会修改python的源为清华源
- 此脚本会修改apt的源为清华源
- 所有工具都是基于源码安装的最新版本
- 随着源码的更新此脚本随时可能失效
0x2 镜像下载
镜像说明说明:
- 本项目同时提供vhdx以及vmdk的虚拟机镜像
- 如需要其他格式的虚拟机镜像可以使用本站提供的磁盘转换器进行转行
- 考虑到便携性的需求,项目也提供docker版本
- docker目前托管于dockerhub,会不定期更新
- 虚拟机版托管于百度网盘
2.1 虚拟机 v1
- 安装 ble,以及bigzee等相关的物联网分析工具
- 安装qemu的 mips/arm 分支,包括静态版本
- 安装完全版本的
binwalk
- 安装完全版本的
firmware-mod-kit
- 安装完全版本的
firmadyne
- 最后适配日期为
2021/03/02
2.2 虚拟机 v2
- 支持v1所有特性
- 包含:mips/mipsel/mips64/mipsel64/arm/arm64的gcc/g++编译器
- 账号密码为:
iot/iot
,root/iot
- 系统为
ubuntu 20.04lts
firmadyne
的账号为:firmadyne/firmadyne
- 更新于:
2022/04/13
binwalk
/firmware-mod-kit
/firmadyne
全部同步更新到2022/04/13
- 同步提供 vhdx以及vmdk镜像
2.2 虚拟机 v3
- 更新于:
2024/01/01
- 所有源码更新到最新
- 删除
firmadyne
,更换为FirmAE
- 账号密码为:
root/123456
- 系统为
ubuntu 22.04lts
2.x docker
- 本项目提供docker镜像
- 镜像地址为:
asdqwe876/iot_analyze
- 后期docker*不在提供更新
0x3 使用案例
- 这里会列举几个常用的iot分析工具的使用方法
- 如有需要会增加热门工具的使用案例
- 使用案例以docker为主
- 自我探索
自我探索的很简单,直接起一个bash就行
docker run -it --rm \ -v $(pwd):$(pwd) \ asdqwe876/iot_analyze \ bash
0x3.1 binwalk
- 项目内置的binwalk是完全版本的,一般用于来解包固件
- tik:推荐使用
--rm
以及-v pwd
来映射目录
首先准备一个需要分析的固件,这里直接从netger上下载一个
mkdir -p testbinwalk cd testbinwalk wget -N --continue \ http://www.downloads.netgear.com/files/GDC/WNAP320/WNAP320%20Firmware%20Version%202.0.3.zip \ -O netgear.zip unzip netgear.zip tar xf WNAP320_V2.0.3_firmware.tar
然后直接使用iot_analyze自动解压
docker run -it --rm \ -v $(pwd):$(pwd) \ asdqwe876/iot_analyze \ binwalk --run-as=root -C $(pwd) -Mer $(pwd)/rootfs.squashfs
可以看到固件已经被解压到宿主机目录了
~/testbinwalk# docker run -it --rm \ > -v $(pwd):$(pwd) \ > asdqwe876/iot_analyze \ > binwalk --run-as=root -C $(pwd) -Mer $(pwd)/rootfs.squashfs Scan Time: 2022-04-14 02:16:05 Target File: /root/testbinwalk/rootfs.squashfs MD5 Checksum: 7ce95b252346d2486d55866a1a9782be Signatures: 411 DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- WARNING: Symlink points outside of the extraction directory: /root/testbinwalk/_rootfs.squashfs.extracted/squashfs-root/dev/log -> /tmp/log-device; changing link target to /dev/null for security purposes. 0 0x0 Squashfs filesystem, big endian, lzma signature, version 3.1, size: 4433988 bytes, 1247 inodes, blocksize: 65536 bytes, created: 2011-06-23 10:46:19 ~/testbinwalk# ls _rootfs.squashfs.extracted/squashfs-root/ bin dev etc home lib linuxrc proc root sbin tmp usr var
0x3.2 firmadyne
- firmadyne是一个iot固件模拟程序
- 用于全自动模拟固件
- 注意:
firmadyne
需要使用-e USER
来指定运行身份
首先使用如下指令快速启动firmadyne控制台
docker run -it --rm -e USER=root asdqwe876/iot_analyze
接下来准备一个固件,这里使用netger作为demo
cd /root/firmadyne wget -N --continue \ http://www.downloads.netgear.com/files/GDC/WNAP320/WNAP320%20Firmware%20Version%202.0.3.zip \ -O firmware.bin
接下来按照
firmadyne
官方的说明,启动这个固件project_id=1 python3 ./sources/extractor/extractor.py -b Netgear -sql 127.0.0.1 -np -nk "firmware.bin" images # 这里需要输入firmadyne的密码 ./scripts/getArch.sh ./images/$project_id.tar.gz ./scripts/tar2db.py -i $project_id -f ./images/$project_id.tar.gz # 这里需要输入firmadyne的密码 ./scripts/makeImage.sh $project_id # 这里需要输入firmadyne的密码 # 这一步需要等待60s ./scripts/inferNetwork.sh $project_id # 最后运行程序 ./scratch/$project_id/run.sh
最后可以看到目标固件被成功模拟了
root@f05fe6d3cad9:~/firmadyne# ./scratch/$project_id/run.sh Starting firmware emulation... use Ctrl-a + x to exit [ 0.000000] Linux version 2.6.39.4+ (ddcc@ddcc-virtual) (gcc version 5.3.0 (GCC) ) #2 Tue Sep 1 18:08:53 EDT 2020 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU revision is: 00019300 (MIPS 24Kc) [ 0.000000] FPU revision is: 00739300 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 00001000 @ 00000000 (reserved) [ 0.000000] memory: 000ef000 @ 00001000 (ROM data) [ 0.000000] memory: 00678000 @ 000f0000 (reserved) [ 0.000000] memory: 0f897000 @ 00768000 (usable)
脚本下载:
此处内容需要评论回复后(审核通过)方可阅读。
镜像下载:
此处内容需要评论回复后(审核通过)方可阅读。
48 comments
感谢分享,这个firmAE浪费我两天时间
感谢
谢谢分享
感谢分享
感谢分享
感谢分享
谢谢分享
感谢楼主。
感谢分享
感谢分享
谢谢分享
谢谢老板
大佬就是牛
强啊强啊
感谢大佬!binwalk 解包出现Symlink points outside of the extraction 会有问题吗?
感谢老板
哥们你好啊,怎么下载啊?
谢谢分享
支持一下
导入镜像后不能找到sata怎么办
vmware虚拟机的高级设置里打开uefi
谢谢
老板大气,大佬牛逼
test
好评
thanks for sharing!
请教下大佬,VMware导入提示找不到操作系统怎么弄OωO
要开uefi
电脑本机开启了uefi但是VMware导入后依然是找不到os
感谢,马上试试
您好,这个问题我也遇到了,您解决了吗
谢谢老板分享,搭建一个iot环境实在太难了,呜呜
谢谢分享!!!
真牛气 谢谢老板
1
牛逼啊,能不能加入binwalk的使用说明
niub
谢谢分享
大佬牛逼
大佬牛逼
感谢大佬
感谢分享
感谢分享
谢谢分享
牛气
谢谢分享
真牛气 谢谢老板