23物联网固件逆向工程基础客

23物联网固件逆向工程基础 物联网(IoT)是当今的热门话题,在这些设备中发现的关键漏洞数量巨大。由于这些设备通常连接到内部网络,因此成功的探索会给组织带来巨大的风险,犯罪分子会访问内部网络,因为最佳实践和网络安全指南尚未到位。固件是嵌入在物联网设备中的软件的名称。这段代码提供对特定于设备的硬件组件的低级别控制。尽管在过去几年中已使用加密来保护设备的固件映像文件,但理解和发现弱点的原则与过去使用的原则相同。首先,我们需要从官方存储库下载固件文件。如果无法做到这一点,请了解更新过程是如何完成的,并模拟对文件的合法访问。 阅读详情

物联网(IoT)是当今的热门话题,在这些设备中发现的关键漏洞数量巨大。由于这些设备通常连接到内部网络,因此成功的探索会给组织带来巨大的风险,犯罪分子会访问内部网络,因为最佳实践和网络安全指南尚未到位。

固件是嵌入在物联网设备中的软件的名称。这段代码提供对特定于设备的硬件组件的低级别控制。尽管在过去几年中已使用加密来保护设备的固件映像文件,但理解和发现弱点的原则与过去使用的原则相同。

首先,我们需要从官方存储库下载固件文件。如果无法做到这一点,请了解更新过程是如何完成的,并模拟对文件的合法访问。一个真实且常见的例子是设备在需要将固件更新到最新版本时使用自定义用户代理。通过拦截请求,我们可以轻松获取它们。

接下来的步骤没有神奇执行顺序。根据固件的不同,可能需要解密文件的映像保护机制,或者只是通过用户或完全仿真来解压缩和模拟文件。在下一节中,我们将简要了解如何做到这一点。

使用 binwalk 提取固件

在这个实验室中,我们将使用华硕的型号RT-AC5300。要查看固件文件中嵌入的文件,我们需要使用拼图工具。使用选项“-e”,可以从.trx文件中提取所有文件。
请添加图片描述

如屏幕截图所示,固件使用小端序来表示硬件字节。根据 binwalk 签名,设备在 3X ARM 版本或次要版本上执行(我们稍后会确认这一点)。

运行 binwalk 后,我们可以浏览路由器文件系统并分析源代码文件。这是一个完美的场景,使用 binwalk 进行简单的迭代带来了整个 www 文件系统。在这里插入图片描述

从这一点开始,我们可以静态检查每个文件,或者简单地使用源代码静态分析器来查找潜在漏洞的入口点。

然而,挑战并不止于此。很多时候,部分运行文件系统(用户仿真)或以完整模式运行使我们能够识别奇怪的行为,甚至在运行时与系统交互,而无需通过设备支付大量费用。是时候了解两种不同类型的仿真了。

用户模式仿真

首先,获取有关我们要模拟的文件系统的扩展信息非常重要。此步骤对于使用实际设备上使用的相同变量和组件创建确切的环境至关重要。

通过分析“1C”文件;在执行 binwalk 工具时提取;我们可以观察到有趣的信息,即:

存在一些重要的路径(/dev 和 /root);
Linux 内核版本 2.6.36
在这里插入图片描述

在这些情况下,字符串实用程序是检索有关文件系统的更多信息的好朋友。使用以下命令行,我们可以获取有关“/root/initrd”文件的详细信息。

cat 1C | strings | grep “version”
Linux version 2.6.36.4brcmarm (yau@yau.chang) (gcc version 4.5.3 (Buildroot 2012.02) ) #1 SMP PREEMPT Fri Mar 4 20:12:49 CST 2016

2.6.36.4brcmarm SMP preempt mod_unload modversions ARMv7

slabinfo - version: 2.1

squashfs: version 4.0 (2009/01/31) Phillip Lougher

cat 1C | strings | grep “/etc/”
/etc/init
cat 1C | strings | grep “/root/”
/root/initrd
initrd 是用于引导文件系统的文件,我们稍后可以使用它通过 BuildRoot 工具引导系统。

总之,我们从文件中获得了以下信息:

内核版本:2.6.36.4
GCC 版本 4.5.3
构建根 2012.02(用于编译根 FS)
ARMv7 处理器 – 双核 32 位 ARMv7 (Cortex-A9) @ 1.4GHz
FS ini 存在于 /etc 和 /root 文件夹中
检查设备配置的另一个好方法是访问供应商页面或从互联网获取设备数据表。

为了模拟固件文件系统上可用的 HTTP 服务器,我们需要使用 qemu-user-static 方法。因此,通过在 rootfs 文件夹中移动静态二进制文件“qemu-arm-static”,我们可以执行 chroot 并在用户空间模式下模拟二进制文件。有关此技术的更多详细信息,请参阅此文章。

which qemu-arm-static
/usr/bin/qemu-arm-static

cp /usr/bin/qemu-arm-static squashfs-root/

cd squashfs-root/

sudo chroot . ./qemu-arm-static /bin/sh在这里插入图片描述

此时,可以执行命令“httpd”以运行www服务器。尽管如此,可能会出现一些错误,例如与NVRAM相关的错误。这是我们在仿真固件期间面临的典型问题。有关如何模拟 NVRAM 的详细信息,请参阅本节。

设置 NVRAM 环境后,我们需要将路径导出到 “LD_PRELOAD” env var 中。再次运行 httpd 命令,文件系统将执行并与之交互。

sudo chroot . ./qemu-arm-static /bin/sh
export LD_PRELOAD=“/firmadyne/libnvram.so”

httpd
在这里插入图片描述

如前所述,下一步是在 /etc/cert.pem 文件夹中创建一个证书。从这一点开始,就没有秘密了。我们需要跟踪启动路由器登录页面时出现的所有错误。

但是,qemu-static 方法在启动单个程序而不是整个文件系统时很有用。Httpd将启动所有路由器软件,在这种情况下,完全仿真将更有益,并且可能不那么难以实现。

完全仿真

当字符串命令被执行时,我们得到了一个有趣的字符串:Buildroot 2012.02。这表示用于编译内核版本 2.6.36 的文件系统的版本。简而言之,buildroot 是一个简单、高效且易于使用的工具,用于通过交叉编译生成嵌入式 Linux 系统。我们可以选择新目标系统的每个组件和所有特征,并从头开始编译一个新的内核。但首先,我们需要知道目标系统的详细信息,这就是我们在上一节中所做的。

从此存储库获取正确版本的 Buildroot 后,必须提示命令“make menuconfig”,并选择最合适的选项。
在这里插入图片描述

本文中可以看到更多详细信息和扩展步骤。

最后,可以使用 make 命令编译内核。会发生一些错误,因此我们需要修复它们并学习很多东西。最后,将从头开始创建一个旧内核。

这样的结构将出现在我们的输出/图像文件夹中:

-rw-r–r-- 1 kali kali 62914560 Jul 27 18:30 rootfs.ext2
-rw-r–r-- 1 kali kali 1437696 Jul 27 18:30 rootfs.squashfs

-rw-r–r-- 1 kali kali 4085760 Jul 27 18:30 rootfs.tar

-rwxr-xr-x 1 kali kali 446 Jul 27 18:30 start-qemu.sh

-rwxr-xr-x 1 kali kali 8880 Jul 27 18:27 versatile-pb.dtb

-rw-r–r-- 1 kali kali 2871872 Jul 27 18:27 zImage
可以使用以下命令实现完全仿真:

qemu-system-arm -M versatilepb -kernel zImage -dtb versatile-pb.dtb -drive file=rootfs.ext2,if=scsi,format=raw -append “rootwait root=/dev/sda console=ttyAMA0,115200”在这里插入图片描述

从这一点开始,我们可以与路由器的登录页面进行交互,并使用 burp-suite 对其进行调试,以查找通常由从初始固件映像中提取的文件系统内可用的组件或软件调用或引入的 Web 漏洞。

关于逆向工程的最终想法

固件的仿真并非易事,因为没有神奇的公式可以做到这一点。每个固件文件都是唯一的,根据文件的复杂性和保护,该过程可能很困难。例如,在旧内核版本下执行固件可能是一项艰巨的任务,主要是修复我们在此过程中可能出现的所有错误。另一方面,加密的使用增加了额外的复杂性。诀窍包括分析目标设备的旧固件版本,以了解加密过程如何工作或从实际设备获取解压缩的固件。

总之,仿真固件带来了许多好处,包括无需购买真实设备即可测试软件。让我们认真分析固件。

IoT安全逆向分析入门:从固件提取到漏洞挖掘的实战指南 逆向工程是理解软件和硬件内部工作原理的核心技术,通过将二进制代码或硬件逻辑转化为可读形式,揭示系统运行机制。其原理在于运用静态与动态分析相结合的方法,解析程序控制流、数据结构及通信协议。在物联网安全领域,这项技术的价值尤为突出,能够帮助安全研究员和开发者透视智能设备的“黑盒”状态,识别潜在攻击面。随着智能家居设备渗透率持续提升,固件安全成为关键环节,通过逆向分析进行漏洞挖掘与安全加固,能有效防范设备被恶意控制的风险。本文聚焦于IoT设备逆向,涵盖固件提取、静态分析、动态调试及协议逆向等实操内容,为构建更安全 阅读详情

相关推荐

FirmAE:自动化固件模拟框架,IoT安全测试利器

固件模拟是物联网安全研究中的关键技术,它通过在通用计算机上虚拟出特定硬件环境,使为MIPS、ARM等架构编译的嵌入式固件得以运行,从而摆脱对真实物理设备的依赖。其核心原理基于QEMU等模拟器构建虚拟硬件底板,并结合文件系统解包与内核适配技术。这项技术的价值在于极大降低了IoT设备漏洞挖掘与恶意软件分析的门槛,使安全研究人员能在隔离的沙箱环境中高效进行动态测试。在物联网设备渗透测试、固件漏洞自动化挖掘、嵌入式恶意软件行为分析等场景中,固件模拟已成为标准工作流的重要组成部分。FirmAE作为新一代自动化固件模拟

com_xpp的专栏 390

物联网安全研究实战:Security-Paper项目中的IoT安全资料深度解析

Security-Paper项目是一个专注于安全与计算机资料收集的开源项目,其中的IoT安全板块提供了丰富的实战研究资源,涵盖从基础理论到高级攻防的完整知识体系,是物联网安全研究者和爱好者的必备资料库。 ## 📚 核心资料架构:从理论到实战的完整路径 Security-Paper的IoT安全资料采用分层架构设计,覆盖四大核心领域: ### 1. 协议安全研究 - **蓝牙安全**:包含[B

gitblog_00137的博客 728

逆向工程与漏洞狩猎:汇编语言网络安全中的隐形利刃

本文深入探讨了汇编语言网络安全中的关键作用,特别是在逆向工程和漏洞挖掘领域的应用。通过分析二进制代码、理解底层执行逻辑,安全专家能够精准定位缓冲区溢出等漏洞,编写高效的shellcode,并在硬件层面进行安全分析。掌握汇编语言网络安全专家突破技术壁垒、构建有效防御体系的重要技能。

git9versioner的博客 984

FirmAE五大仲裁技术深度解析:Boot、Network、NVRAM如何解决IoT固件仿真难题

FirmAE是一个革命性的IoT固件仿真框架,它将固件仿真的成功率从传统方法的16.28%大幅提升到惊人的79.36%!🚀 这一突破性进展主要归功于其创新的五大仲裁技术,这些技术巧妙解决了固件仿真过程中的关键难题。本文将深入解析Boot、Network、NVRAM等五大仲裁技术如何协同工作,让复杂固件仿真变得简单高效。 ## 🔧 FirmAE:IoT固件仿真的终极解决方案 **FirmAE

gitblog_00364的博客 528

从零搭建IoT安全测试环境:渗透测试实战与固件分析指南

物联网安全已成为现代技术架构中不可或缺的一环,其核心在于理解设备、网络与云端构成的立体化攻击面。从基础原理出发,渗透测试通过系统性的信息收集、漏洞扫描与利用,旨在发现并修复硬件、固件及通信协议中的安全隐患。在工程实践中,搭建一个隔离可控的测试环境是安全研究的基石,常借助树莓派等硬件模拟真实设备,并配合Kali Linux、Binwalk、Wireshark等工具链进行深度分析。针对固件安全,逆向工程与动态仿真技术能有效挖掘硬编码密钥与逻辑漏洞;而无线协议测试则聚焦于Wi-Fi、蓝牙等近场通信的加密强度与实现

weixin_34194359的博客 467

SecGPT-14B实战:IoT固件安全分析与工业协议异常检测

网络安全领域,固件安全分析和工业协议异常检测是保障物联网和工业控制系统安全的关键技术。其核心原理在于通过静态与动态分析,识别设备底层代码中的漏洞,并监控网络流量中的异常行为模式。这些技术的价值在于能够主动发现潜在威胁,防止因设备漏洞或协议滥用导致的数据泄露、系统瘫痪等重大安全事件。在应用场景上,它们广泛应用于智能家居、工业制造、能源电力等关键基础设施的安全防护。本文聚焦于如何利用大语言模型SecGPT-14B,通过其强大的**上下文理解**和**模式识别**能力,来增强传统分析方法的效率与深度,实现更智能

weixin_33816946的博客 365

AIoT安全攻防实战:当物联网设备成为黑后门

IoT安全 = 攻防对抗的持久战攻击面: 物理→固件→通信→云平台→应用防御策略: 纵深防御 + 零信任 + AI检测关键原则: 默认密码是最大的漏洞投入建议: 安全投入应占IoT项目总预算的15-20%IoT安全不是"额外成本",而是"基础保障"。一个不安全的IoT系统,比没有系统更危险——它给攻击者打开了一扇你不知道的门。

谁念西风独自凉 125

01读《物联网安全研究综述:威胁、检测与防御》随笔

基于近 5 年网安国际会议(ACM CCS、USENIX Security、NDSS、IEEE S&P)中发表的物联网安全文献,以及其他部分高水平研究工作,从威胁、检测、防御的视角对物联网安全研究工作进行了系统的整理和分析。首先,介绍了物联网系统的基本架构。然后,将当前研究中提出的主要威胁分为 8 种类型,并分析了威胁的成因和危害。之后,介绍了针对这些威胁所提出的 6 种威胁检测和 5 种防御方案,并对比了它们的技术原理和优缺点。

qq_45448576的博客 1537

HomeKey-ESP32 HomeKit集成深度解析:Apple Home Key逆向工程实现

HomeKey-ESP32是一款基于ESP32开发的开源智能锁解决方案,通过逆向工程技术实现了对Apple Home Key的支持,让普通用户也能低成本体验苹果生态的便捷智能家居控制。本文将从技术原理、硬件搭建到软件配置,全方位解析这一创新项目如何打破生态壁垒,为DIY爱好者提供完整的HomeKit智能锁解决方案。 ## 核心功能与技术突破 ✨ HomeKey-ESP32的核心价值在于其**逆

gitblog_00034的博客 473

为什么92%的IoT设备固件仍在裸奔?C语言供应链检测四层漏斗模型(源码→AST→二进制→符号表)

破解IoT固件安全盲区,提供可落地的C语言固件供应链检测流程。基于源码→AST→二进制→符号表四层漏斗模型,精准识别C语言固件中的漏洞、后门与第三方风险,适用于嵌入式设备量产前安全审计。自动化程度高、误报率低,值得收藏。

Instrustar的博客 201

2025逆向工程TOP 9实战工具链:从固件分析到动态插桩

逆向工程是软件安全与漏洞研究的核心技术,其本质是通过静态分析、动态调试与二进制模拟等手段,还原缺失源码的程序逻辑与安全机制。其底层依赖指令集理解、控制流图重建、符号恢复与内存行为建模等关键技术,价值在于支撑IoT固件审计、移动App安全评估、恶意代码分析及红队攻防验证等关键场景。随着OLLVM混淆、ART优化、WASM模块和硬件抽象层(HAL)调用日益普遍,单一工具已无法覆盖全栈需求。本文聚焦真实攻防中高频使用的9款主力工具——涵盖Ghidra的Decompiler-Driven Analysis、Rada

weixin_33783283的博客 411

TOTOLink T6路由器漏洞分析:从固件解压到命令注入实战

本文深度剖析了TOTOLink T6路由器的安全漏洞,从固件解包、隐藏服务发现到MQTT协议分析,揭示了未授权访问和命令注入漏洞的完整攻击链。通过实战演示,详细说明了如何利用MQTT接口进行远程命令执行,并针对IoT设备常见安全问题提出了加固建议。

m5n6o7的博客 462

IoT设备安全实战:从Telnet后门到MQTT命令注入的漏洞链分析

在嵌入式系统和物联网(IoT)设备安全领域,固件安全分析和漏洞挖掘是核心研究方向。其基本原理是通过逆向工程和动态调试,识别设备中潜在的安全缺陷。这项技术的价值在于揭示智能设备中常见的设计漏洞,如未授权访问和输入验证缺失,从而提升整体物联网生态的安全性。典型应用场景包括智能家居路由器、工业控制设备等网络终端的安全评估。本文以TOTOLink T6路由器为例,深入剖析了其固件中存在的Telnet调试接口和MQTT服务命令注入漏洞,展示了如何通过逆向工程和协议分析构建完整的攻击链,最终实现权限提升。案例中涉及的固

weixin_30247781的博客 364

物联网安全随笔

LimeSDR(硬件):LimeSDR支持的频段比较广泛,支持蜂窝,WIFI,LoRa,导航,气象等。killerbee(软件):可用于Zigbee协议的测试,支持监听,重放,洪水,自定义请求多种功能。UD100(硬件):蓝牙适配器 ,可用于Bluetooth和BLE的监听与重放。PROXMARK(硬件):支持RFID嗅探,读取,写入,破解等功能\。gattool(软件):可用于BLE的扫描,监听及重放。NRF52832(硬件):可用于BLE的监听。菠萝派(硬件):可用于WIFI钓鱼。

qq_45448576的博客 1029

Cybellum实战:无需逆向工程,自动化生成SBOM与漏洞分析

软件物料清单(SBOM)是软件供应链安全的核心,它如同软件的“成分表”,清晰列出所有组件及其依赖关系。其生成原理基于对二进制文件的深度特征提取与智能匹配,通过静态分析、指纹识别等技术,自动化识别组件及其版本。这一技术的核心价值在于极大提升了安全评估效率,降低了传统逆向工程的门槛,使应用安全工程师能快速发现已知漏洞。在物联网设备固件安全、软件供应链合规等应用场景中,自动化SBOM生成与漏洞关联成为关键实践。例如,针对智能家居网关固件,结合SSL/TLS协议信息泄露等热词漏洞,工具能快速定位高风险组件,为修复提

weixin_30879833的博客 477

物联网设备安全方案:SE050与STM32F410RB硬件集成

物联网安全是设备互联的核心挑战,传统MCU在密钥存储和加密运算方面存在固有缺陷。硬件安全芯片通过物理防护和加密加速引擎,可实现金融级安全防护。SE050作为专为物联网设计的安全元件,支持AES-256、ECC等算法,并通过Common Criteria EAL 6+认证。与STM32系列MCU配合使用,既能保持主控芯片的运算性能,又能通过硬件加速实现百倍以上的加密速度提升。该方案适用于智能家居、工业控制等需要防物理攻击和安全认证的场景,是平衡成本与安全性的理想选择。

weixin_29189363的博客 214

QEMU 8.2 + Chroot 解密实战:从固件中提取并运行解密程序的5个步骤

本文详细解析了使用QEMU 8.2和Chroot技术从加密固件中提取并运行解密程序的完整流程。通过5个关键步骤,包括环境配置、文件系统提取、解密程序定位、跨架构执行和自动化脚本开发,帮助安全研究人员高效处理加密固件分析。特别针对网络靶场环境,提供了实用的性能优化技巧和自动化集成方案。

weixin_29322855的博客 359

深入理解 Elliot CUDA 编程核心:PHP 实现 CUDA 并行计算思想与实践

本文严格依据Elliot CUDA 编程笔记的核心理论,用 PHP 实现了 CUDA 并行计算的完整模拟,涵盖内存管理、线程分层、核函数、任务调度四大核心模块。代码简洁、注释详尽、规范标准,既帮助 PHP 开发者理解 CUDA 并行思想,又为入门 CUDA 编程打下坚实基础。CUDA 编程的核心是并行思维,无论使用哪种语言,理解「线程分层、内存隔离、CPU-GPU 协同」都是关键。希望本文能为大家打开 CUDA 并行计算的大门,后续可深入学习原生 CUDA C/C++ 编程,发挥 GPU 的极致性能!

zuichu520的博客 184
上一篇: JDI自动代码审计分析的可能性
下一篇: CS 4.7 Stager 逆向及 Shellcode 重写
学习网络安全的小猿同学
博客等级 码龄3年 3098粉丝 · 117原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值