开源IOT固件分析工具
开源IOT固件分析工具开源IOT固件分析工具一、解包打包1、Binwalkhttps://github.com/ReFirmLabs/binwalk
Binwalk 是一种用于固件分析的开源工具,可以用于查找和提取嵌入式设备和固件中的文件系统、可执行程序。Binwalk支持多种文件格式,包括各种二进制文件、压缩文件、嵌入式固件、嵌入式文件系统等等,可以用于各种安全测试、漏洞分析、反向工程等领域。
2、unblobhttps://github.com/onekey-sec/unblob
Unblob和Binwalk类似,是一个用于嵌入式设备固件分析的开源工具,主要用于解密和解压嵌入式设备中的固件文件,并提取出其中的文件系统、可执行程序等资源。是一个准确、快速且易于使用的提取套件。3、Firmware-Mod-Kithttp://code.google.com/p/firmware-mod-kit/
Firmware-Mod-Kit(简称FMK)是一个开源的固件修改工具,主要用于解包、修改和重新打包各种嵌入式设备的固件文件。它支持多种处理器架构和文件系统格式,可以应对不同类型的固件文件。
...
基于固件的漏洞挖掘方法梳理
基于固件的漏洞挖掘方法梳理相关论文方案2013Fie on firmware: Finding vulnerabilities in embedded systems using symbolic execution, USENIX 2013
方案:Fie
技术:符号执行,静态分析,基于C源码,KLEE,基于MSP430系列微控制器
点评:对于某些固件,完整的分析是难以处理的,分析中的各种不精确来源可能会导致误报或漏报。改进符号执行技术来适应固件特定的功能。结果表明Fie可以发现许多内存错误。FIE anticipates and describes the peripherals symbolically using symbolic execution。使用符号执行符号化的描述外围设备?
资源:https://www.usenix.org/conference/usenixsecurity13/technical-sessions/paper/davidson
2014A Large-scale Analysis of the Security of Embedded Firm ...
固件简介
固件简介前言该文章用于总结部分网络的固件知识,不具有原创性,只是转载和总结。
固件下载虽然通过官网下载固件的方法比较便捷,但是有些厂商并不会提供固件的下载链接,这就需要我们通过其他途径来获取固件。使用从硬件设备提取固件的方法会比较通用(前提是需要有实体机设备),因为固件一般都会存储在 PCB 的某个位置里。将设备拆开之后,找到相应的 flash rom 或者 Nor flash,使用专门的工具(烧写器、编程器)进行固件的提取。
先认识一下flash文件系统和固件类型
flash文件系统与普通计算机系统不同的是,嵌入式系统往往需要使用低成本的存储器,诸如EEPROM(带电可擦可编程只读存储器)或Nor/Nand Flash等。Nand flash存储器经常可以与NOR Flash存储器互换使用。大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些,而NAND则是高数据存储密度的理想解决方案。
这里列举一些最常见的Flash文件系统,具体如下:
SquashfsSquashFS 是一套基于Linux内核使用的压缩只读文件系统,文件最大支持2^64字节。他是基于GPL协议的开源软 ...
固件提取
固件提取前言为了学习路由器漏洞挖掘,了解了如何提取固件,下面是各种提取固件的方法,有的方法我尝试过了,有的设备太贵了只是记录。
前置知识FLASH的分类
NOR Flash
像访问SDRAM一样,按照数据/地址总线直接访问, 可写的次数较少,速度也慢,由于其读时序类似于SRAM,读地址是线性结构,多用于程序代码的存储。NOR一般是8个针脚,现在常见的路由器大多是这种。
NAND Flash
只有8位/16位/32位甚至更多位宽的总线,每次访问,都要将长地址分为几部分,一点点的分布传入才能访问nand flash
相比其余的几种flash优势在于可擦写次数多,擦写速度快,但是在使用以及使用过程中会出现坏块因此需要做特殊处理才可以使用
一般是大型设备或者高端路由器会使用的。
eMMC Flash
全称为embeded MultiMedia Card,是一种嵌入式非易失性存储器系统,由Nand flash和Nand flash控制器组成,以BGA方式封装在一款chip上。
一般用于更加精细的设备,例如手机什么的。
串口介绍串口是一个泛称,UA ...
什么是UART通信?常见的UART串口通信协议有哪些?
什么是UART通信?常见的UART串口通信协议有哪些?一、什么是UART?通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART是一种通用串行数据总线,主要应用于串行异步通信。这样的通用串行数据总线属于双向通信,可以实现全双工传输和接收。它将要传输的资料和数据在串行通信与并行通信之间加以转换。作为可以把并行输入信号转化成串行输出信号的集成芯片,[UART串口通信]通常被应用于元器件集成或其他通讯接口的链接。具体实物化表现为一些独立的UART串口通信模块,或作为集成于微处理器中的一些周边固化设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。
二、UART无线串口模块通信使用的引脚接口在UART串口通信中,两个UART模块是可以直接进行相互通信的。发送UART将来自CPU(核心处理器)等控制设备的并行数据转换为串行数据形式,并将将转换得到的串行数据发送到接收的UART,接收UART然后又将串行数据转换回到接收设备的并行数据。数 ...
Nand Flash 和Nor Flash的区别详解
Nand Flash 和Nor Flash的区别详解前言该文章用于总结部分网络的固件知识,不具有原创性,只是转载和总结。
Flash存储器在嵌入式开发实施中有着重要位置,文本介绍一些关于Flash存储器的知识。
0x01 Nand Flash 和Nor Flash存储器简介 我们使用的智能手机除了有一个可用的空间(如苹果8G、16G等),还有一个RAM容量,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的。这二种存储设备我们都统称为“FLASH”,FLASH是一种存储芯片,全名叫Flash EEPROM Memory,通过程序可以修改数据,即平时所说的“闪存”。Flash又分为NAND flash和NOR flash二种。U盘和MP3里用的就是这种存储器。
Nand flash存储器经常可以与NOR Flash存储器互换使用。大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
0x01-1 Nor Flash存储器简介 NOR Flash 的读取和我们常见的 SDRAM 的读取是类似,用户可以直接运行装载在 N ...
MIPS汇编基础
MIPS汇编基础0x0 前言最近准备学点路由器挖洞,但是感觉光看网上的知识还是不成体系,于是决定去看家用路由器0day漏洞挖掘来学习
0x1 MIPS介绍MIPS的系统结构及其设计理念比较先进(也就是那个年代),其指令系统经过通用处理器指令体系MIPS I,MIPS II,MIPS III, MIPS IV, MIPS V,以及嵌入式指令体系MIPS16 ,MIPS32到MIPS64的发展,已经十分成熟
MIPS32架构是一种基于固定长度的定期编码指令集,并采用导入/存储(load/store)数据模型。经过改进,这种架构可以支持高级语言的优化执行。在路由器中,我们经常使用的一种MIPS架构就是MIPS32。
0x1.1 寄存器RISC 的一个显著特点便大量使用寄存器。因为寄存器的存取可以在一个时钟周期内完成,同时简化了寻找方式,所以,MIPS32的指令中除了加载/存储的指令外,都使用寄存器或者立即数作为操作数,以便让编译器通过保持对寄存器内的数据的频繁存取进一步优化代码的生成性能。MIPS32的寄存器分为两类,分别是通用寄存器(GPR)和特殊寄存器。
...
D-Link的命令注入漏洞CVE-2022-26258复现_W
D-Link的命令注入漏洞CVE-2022-26258复现0x00前言第一个路由器CVE复现,开始我的路由器挖洞之旅,比较简单
0x01 漏洞信息
CVE编号: CVE-2022-26258
漏洞描述:D-Link DIR-820L 1.05B03 was discovered to contain remote command execution (RCE) vulnerability via HTTP POST to get set ccp.
D-Link DIR-820L 1.05B03 被发现包含通过 HTTP POST 获取设置 ccp 的远程命令执行 (RCE) 漏洞。
设备型号:D-Link DIR-820L
固件版本:1.05B03
厂商官网:http://www.dlink.com.cn/
固件地址:http://www.dlinktw.com.tw/techsupport/download.ashx?file=2663
测试环境:Ubuntu 18.04
根据漏洞描述可得到几个关键词:远程命令执行、/lan.jsp页面、Device Nam ...
D-Link的命令注入漏洞CVE-2022-26258复现
D-Link的命令注入漏洞CVE-2022-26258复现0x00前言第一个路由器CVE复现,开始我的路由器挖洞之旅,比较简单
0x01 漏洞信息
CVE编号: CVE-2022-26258
漏洞描述:D-Link DIR-820L 1.05B03 was discovered to contain remote command execution (RCE) vulnerability via HTTP POST to get set ccp.
D-Link DIR-820L 1.05B03 被发现包含通过 HTTP POST 获取设置 ccp 的远程命令执行 (RCE) 漏洞。
设备型号:D-Link DIR-820L
固件版本:1.05B03
厂商官网:http://www.dlink.com.cn/
固件地址:http://www.dlinktw.com.tw/techsupport/download.ashx?file=2663
测试环境:Ubuntu 18.04
根据漏洞描述可得到几个关键词:远程命令执行、/lan.jsp页面、Device Nam ...
D-Link DCS-2530L和DCS-2670L监控信息泄露漏洞(CVE-2020-25078)复现
D-Link DCS-2530L和DCS-2670L监控信息泄露漏洞(CVE-2020-25078)复现前言查阅相关资料可知,TDDP协议(TP-LINK Device Debug Protocol) 是TP-LINK申请了专利的一种在UPD通信的基础上设计的协议,而Google安全专家Matthew Garrett在TP-Link SR20设备上的TDDP协议文件中发现了一处可造成 “允许来自本地网络连接的任意命令执行” 的漏洞。
原理CVE-2020-25078可以通过如下URL泄露密码
1http://xx.xx.xx.xx/config/getuser?index=0
复现由于手上没有DCS的设备也不好模拟,于是我直接用的fofa搜的IP去打
fofa搜索: app=app="D_Link-DCS-2670L"
[![image-20231221100145549](/picture/D-Link DCS-2530L和DCS-2670L监控信息泄露漏洞(CVE-2020-25078)复现/image-20231221 ...