Featured image of post IoT安全入门之环境搭建与固件分析

IoT安全入门之环境搭建与固件分析

分析目标是华为HG532

前言

想学IoT安全,但前置知识过于庞杂,现有的教程往往默认读者有固件分析和逆向基础。我的基础并不好,几乎看不懂文章,不知道每一步在做什么,而系统补基础容易变成空中楼阁且劝退,因此陷入了两难的境地

这篇文章不分析漏洞,主要用于熟悉IoT安全的基本流程、环境搭建、固件解包与分析

环境搭建

固件获取

首先是通过漏洞编号确认路由器型号与固件版本,比如这篇文章的华为HG532 CVE-2017-17215 固件,得到一个二进制文件HG532eV100R001C01B020_upgrade_packet.bin,这就是整个设备的软件镜像

主要工具

固件分析用到的各种工具更适合Linux环境,因此我使用Ubuntu 24.04.4作为宿主机

  • binwalk:用于解包和分析固件,需要配套工具sasquatch
1
2
3
4
5
sudo apt install binwalk

git clone --quiet --depth 1 --branch "master" https://github.com/devttys0/sasquatch
cd sasquatch
wget https://github.com/devttys0/sasquatch/pull/47.patch && patch -p1 < 47.patch && sudo ./build.sh
  • qemu:路由器固件大多是一套嵌入式 Linux 系统,适配路由器主机,无法在ubuntu下直接运行。为了让程序真正跑起来,需要用到QEMU。它模拟了固件运行所需的真实设备环境,翻译不同架构的指令
1
sudo apt install qemu qemu-user-static qemu-system
  • ida:静态分析

网络配置

固件分析

固件解包

需要通过解包从固件的二进制文件中中提取出文件系统。使用binwalk进行解包,解包后的文件系统在squashfs-root/目录下

这个命令的意思是binwalk会扫描文件里的特征,找到文件系统后递归扫描里面的内容

  • -e :尝试提取

  • -M: 提取后继续递归扫描里面的内容

1
binwalk -Me HG532eV100R001C01B020_upgrade_packet.bin

进入 squashfs-root 后,可以看到类似普通 Linux 系统的目录结构。binsbin 中通常放可执行程序,etc 中通常放配置文件,lib 中通常放动态链接库

参考

Huawei Home Routers in Botnet Recruitment - Check Point Research

CVE-2017-17215-HG532命令注入漏洞分析-先知社区

华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215 - IOTsec-Zone

一些经典IoT漏洞的分析与复现(新手向) - IOTsec-Zone

Like 0
本站已不稳定运行 小时 分钟
共发表文章 31 篇 ,总计 152.87 k 字
本站总访问量: