附录2:工具列表
一、手动分析
1.1 通用工具
1.2 插件
二、自动分析
2.1 firmwalker
firmwalker
分析内容范围如下:
etc/shadow and etc/passwd
etc/ssl
与 ssl 相关的文件,如:.pem .crt 等
搜索配置文件
寻找脚本文件
搜索其他 .bin 文件
查找 admin、password、remote、AWS key 等关键字
搜索物联网设备上使用的通用Web服务器
搜索常见的二进制文件,如:ssh、tftp、dropbear 等
搜索禁止的C函数
搜索常见的易受命令注入攻击的功能
搜索URL、电子邮件、IP地址……
Aaron Guzman
在原生代码基础上添加了一些其他的检查,可参照 https://github.com/scriptingxss/firmwalker。
案例:在 OWASP IOTGoat 中使用 firewalker分析
firmwalk
分析文件系统需使用绝对路径:
./firmwalker.sh /home/embedos/firmware/_IoTGoat-rpi-2.img.extracted/squashfs-root/
分析结果如下:
分析结果存储在 /data/
目录下的两个文件:firmwalker.txt
和 firmwalkerappsec.txt
,需手动检查这些文件。
2.2 FACT
FACT
固件分析比较工具包分析内容如下:
标识软件组件(如:操作系统、CPU体系结构和第三方组件)及其关联的版本信息
从映像中提取固件文件系统
检测证书和私钥
检测CWE
基于提要和签名的漏洞检测
基于静态行为分析
固件版本和文件的比较(差异)
使用QEMU对文件系统中的二进制文件进行用户仿真
缓冲区溢出防护机制 NX, DEP, ASLR, stack canaries, RELRO, and FORTIFY_SOURCE
REST API...
案例:在EmbedOS 中使用FACT分析
浏览器访问:http://127.0.0.1:5000 ,
将固件上传到FACT进行分析(可以将带有文件系统的完整固件)
根据给FACT硬件资源,扫描时间会相应不同
FACT分析结果
笔者撰写了FACT插件开发指南,可作为参考。
三、动态测试
设备在正常运行或者在仿真环境中运行中的动态测试,此阶段的测试可能会由于项目和访问级别有所差异,可用分析手段:
篡改引导程序配置
Web 和 API 测试
模糊测试(网络和应用程序服务)
使用各种工具集进行的主动扫描以获取提升的访问权限或代码执行:
Burp Suite
OWASP ZAP
Commix
Fuzzers such as - American fuzzy loop (AFL)
Nmap
NCrack
Metasploit
四、调试
设备在正常运行或在仿真环境中运行时,对正在运行的进程或二进制文件进行调试。如下是分析步骤:
1、
sudo chroot . ./qemu-arch -L <optionalLibPath> -g <gdb_port> <binary>
2、使用gdb-multiarch或IDA进行调试
3、为步骤4中的功能点设置断点,如:
memcpy
,strncpy
,strcmp
,等4、确认漏洞点,比如:通过发送较大的有效载荷来识别溢出或进程崩溃点
一些可能使用的工具:
gdb-multiarch
Frida
ptrace
strace
六、(商业)平台
见附录7
Last updated