Page cover image

附录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.txtfirmwalkerappsec.txt,需手动检查这些文件。

2.2 FACT

FACT 固件分析比较工具包分析内容如下:

  • 标识软件组件(如:操作系统、CPU体系结构和第三方组件)及其关联的版本信息

  • 从映像中提取固件文件系统

  • 检测证书和私钥

  • 检测CWE

  • 基于提要和签名的漏洞检测

  • 基于静态行为分析

  • 固件版本和文件的比较(差异)

  • 使用QEMU对文件系统中的二进制文件进行用户仿真

  • 缓冲区溢出防护机制 NX, DEP, ASLR, stack canaries, RELRO, and FORTIFY_SOURCE

  • REST API...

案例:在EmbedOS 中使用FACT分析

cd ~/tools/FACT_core 
sudo ./start_all_installed_fact_components

浏览器访问:http://127.0.0.1:5000

将固件上传到FACT进行分析(可以将带有文件系统的完整固件)

根据给FACT硬件资源,扫描时间会相应不同

FACT分析结果

笔者撰写了FACT插件开发指南,可作为参考。

三、动态测试

设备在正常运行或者在仿真环境中运行中的动态测试,此阶段的测试可能会由于项目和访问级别有所差异,可用分析手段:

  • 篡改引导程序配置

  • Web 和 API 测试

  • 模糊测试(网络和应用程序服务)

使用各种工具集进行的主动扫描以获取提升的访问权限或代码执行:

  • Burp Suite

  • OWASP ZAP

  • Commix

  • Fuzzers such as - American fuzzy loop (AFL)

  • Network and protocol fuzzers such as - Mutiny, boofuzz, and kitty

  • 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