IOT设备文件系统与提取

这篇具有很好参考价值的文章主要介绍了IOT设备文件系统与提取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、路由器文件系统

我们通常所说的更新路由器是指更新路由器的固件,不同的路由器使用了不同呃硬件平台、操作系统及固件。通常情况下,路由器的固件中包含操作系统的内核及文件系统。

1.1、路由器固件

路由器固件不是硬件,而是软件,在路由器中,它通常是被固化在只读存储器中的,所以称为固件。

在进行漏洞分析时获取路由器固件的通常有两种方式:

一、从路由器厂商提供的更新网站下载;

二、通过硬件接入,从路由器的Flash中提取固件。

IOT设备文件系统与提取,物联网,网络

路由器固件中包含了该路由器中所有的可执行程序及配置文件信息,这些信息对于我们进行路由器漏洞的分析和挖掘都至关重要。获取固件之后,我们就可以从固件中分离文件系统了。

1.2、文件系统

文件系统是操作系统的重要组成部分,是操作运行的基础。不同的路由器使用的文件系统格式不尽相同。根文件系统会被打包成当前路由器所使用的文件系统格式,然后组装到固件中。

Squashfs是一个只读格式的文件系统,具有超高压缩率,其压缩率最高可达34%。当系统启动后,会将文件系统保存在一个压缩过的文件系统的文件中,这个文件可以使用换回的形式挂载并对其中的文件进行访问,当进程需要某些文件时,仅将对应部分的压缩文件解压缩。
IOT设备文件系统与提取,物联网,网络

Squashfs文件系统常用的压缩格式有GZIP、LZMA、LZO、XZ(LZMA2),在路由器中被普遍采用。路由器的根文件系统通常会按照Squashfs文件系统常用压缩格式中的一种进行打包,形成一个完整的Squashfs文件系统,然后与路由器操作系统的内核一起形成更新固件。

2、手动提取文件系统

要想分析路由器漏洞,必须获得路由器中存在漏洞的应用程序。文件系统是操作系统的重要组成部分,是操作运行的基础。文件系统中包含实现路由器各种功能的基础应用程序。如家用路由器中实现一个Web服务器,使用户可以通过Web访问路由器,对路由器进行管理。文件系统能够从固件中提取,而从路由器固件中提取文件系统是一个难点,原因之一在于不同的操作系统使用的文件系统不同。另外,路由器的文件系统压缩算法也有差异,有些路由器甚至会使用非标准的压缩算法打包文件系统。

2.1、查看文件类型

file命令通过定义的magic签名可以识别各种格式,包括常用的Linux/Windows可执行文件、DOC、PDF及各种压缩格式等。

如果file firmware.bin -----> firmware.bin: data

上面例子中,file命令并没有发现符合任何文件类型的匹配,但这并不代表该固件就是没有接触过的文件格式,原因在于file命令是从给定文件的首字节开始的,会按照既定格式进行模式匹配。
IOT设备文件系统与提取,物联网,网络

2.2、手动判断文件类型

如果没有发现符合要求的文件格式,就需要采用下面的方法进一步分析:

“strings | grep"检索文件系统magic签名头。(1)
“hexdump | grep" 检索magic签名偏移。(2)
“dd | file" 确定magic签名偏移处的文件类型。(3)
 文件系统magic签名头是指一个文件系统中包含的一串可识别字符,有了这串字符,表明该文件可能包含某个文件系统。当然,如果要确定是否包含某文件系统,还需要利用其他条件配合证明,也就是2和3步骤需要做。

Windows应用程序以字符串"MZ"开头,但不是所有具有此特征的文件都是可执行程序,它也可能是一个文本文件,只不过恰巧“MZ"开头,所以,仅凭单一特征就确定一个文件的类型是有失偏颇的。

2.2.1、检索文件系统magic签名

文件系统头部特征是根据每一种文件系统开头的几字节提炼出来的。常用的文件系统头部特征如下:

cramfs ---- 文件系统头部特征字符为"0x28cd3d45"。
squashfs ---- 文件系统头部特征较多,其中一些是标准的squashfs头部,有些是国外的研究人员发现的,大致有sqsh、hsqs、qshs、shsq、hsqt、tqsh、sqlz 7种。
  检查是否存在cramfs文件系统头部特征和magic签名“0x28cd3d45"。因为目前不知道文件组织是大端机格式还是小端机格式,所以要进行二次搜索:

strings firmware.bin | grep python -c 'print "\x28\xcd\x3d\x45"'

strings firmware.bin | grep python -c 'print "\x45\x3d\xcd\x28"'

如果不是cramfs文件类型,那么可以尝试判断是不是Squashfs文件系统:

strings fimware.bin | grep “sqsh” 或 “hsqs"或“qshs"或“shsq"或“hsqt"或“tqsh"或“sqlz"等。

这里如果在strings firmware.bin | grep “hsqs” -----> 打印出hsqs,我们发现了squashfs文件系统"hsqs"的magic签名头,但我们不能完全确定该文件包含的是否为一个squashfs文件系统,还需要进一步确定firmware.bin是不是squashfs文件系统。

2.2.2、确定文件系统

在输入hexdump -C firmware.bin | grep -n “hsqs” 后出现:

00240: 00160090 68 73 71 73 9d 08 00 00 ab c0 ba 51 00 00 04 00 | hsqs… …Q…|

可以看到,在偏移0x160090(十六进制1441936)出发现了"hsqs"。

然后用dd命令复制从0x160090处开始的100字节数据。命令如下:

dd if=firmware.bin bs=1 count=100 skip=1441936 of=squash

之所以要复制100字节的数据,是因为squashfs文件系统的头部校验不会超过100字节。

最后使用file命令确认复制的文件squash的文件类型。

运行file squash :

squash: Squashfs filesystem, little endian, version 4.0, 6164554 bytes, 2205 inodes, blocksize: 262144 bytes,
  IOT设备文件系统与提取,物联网,网络

2.3、手动提取文件系统

在上面,我们已经知道firmware.bin在偏移0x00160090(十进制1441936)处包含squashfs文件系统,其大小为6164554字节,因此,可以使用dd命令复制该数据块。

命令如下:

dd if=firmware.bin bs=1 count=6164554 skip=1441936 of=kernel.squash

运行上面命令后,属于squashfs文件系统的数据已经成功提取出来,接下来的工作就是还原squashfs文件系统中的根文件系统。

尽管Linux自带的file命令中包含与squashfs文件系统相关的magic签名头部信息,但这对于我们深入了解该文件系统而言是不够的。

使用file命令的"-m"参数加载自定义的magic签名文件,输出更加详细的信息。

命令:file -m filesystems.hsqs hernel.squash

打印略过,在firmware.bin中提取的kernel.squash使用的是LZMA压缩方式。

在linux下可以安装squashfs-tools工具,命令“apt-get install squashfs-tools",该工具目前仅支持GIZP、LZO、XZ格式,不支持LZMA格式。

可以安装firmware-mod-kit解压缩。

git clone https://github.com/mirror/firmware-mod-kit.git

sudo apt-get install build-essential zlib1g-dev libz1zma-dev python-magic

./configure && make

然后在firmware-mod-kit目录下运行unsquashfs_all.sh kernel.squash文章来源地址https://www.toymoban.com/news/detail-793294.html

到了这里,关于IOT设备文件系统与提取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用MQTT.fx模拟温度设备联调阿里云IOT物联网平台

    阿里云iot入门(2)初识物模型及利用属性和事件上报数据 阿里云物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制

    2024年02月07日
    浏览(64)
  • 5分钟教你如何利用华为云IoT进行物联网设备上云

    近些年,云计算的发展使得物联网技术突飞猛进,万物联网已经成为这个时代的标识,没有物联网之前,你能想象人在路上就能打开家里的空调?有了物联网,冰箱也能听懂主人在说什么;有了物联网,音响可以直接与人对话,有了物联网,家里的一切电器皆可联网,家里空

    2024年02月02日
    浏览(36)
  • IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解

    人们为了从外界获取信息,必须借助于感觉器官。而单靠人们自身的感觉器官,在研究自然现象和规律以及生产活动中它们的功能就远远不够了。为适应这种情况,就需要传感器。因此可以说,传感器是人类五官的延长,又称之为电五官。 在现代工业生产尤其是自动化生产过

    2023年04月09日
    浏览(48)
  • 工业物联网 将工业设备快速连接到亚马逊AWS IoT的边缘层软件AwsIotDeviceAgent

    AWS IoT 是 AWS 云服务中的物联网服务和解决方案,能够连接和管理数十亿台设备,这些设备在连接到 AWS IoT后,即可利用 AWS 提供的云服务实现完整的物联网解决方案,如数据存储、分析、机器学习和行业价值洞察。 将工业设备连接至AWS IoT需要基于AWS IoT设备开发工具包(SDK)

    2023年04月22日
    浏览(41)
  • 阿里云iot haas Micropython连接esp32;esp32物联网设备上报信息及云端信息获取;远程控制设备自带led熄灭;网页界面交互远程控制

    参考:https://blog.csdn.net/HaaSTech/article/details/125975052 https://iot.console.aliyun.com/ https://www.bbsmax.com/A/x9J2X8nZd6/ 首先烧录阿里云iot haas固件: https://haas.iot.aliyun.com/haasapi/index.html#/Python/docs/zh-CN/startup/ESP32_startup ***直接下载后可以通过vscode插件烧录;烧录好后也可以在thony编辑运行代码

    2024年02月02日
    浏览(57)
  • 【IoT】嵌入式Linux开发:网络设备开发(测试题)

    目录 网络开发 选择题 1、路由器工作在哪一层(B)

    2024年02月06日
    浏览(59)
  • 与IoT系统的集成:UiPath的物联网应用

    物联网(Internet of Things,IoT)是一种通过互联网将物体和设备相互连接的技术,使得物体和设备能够实时交换数据,从而实现智能化管理和控制。随着物联网技术的发展,IoT系统已经广泛应用于各个领域,如智能家居、智能城市、智能制造、智能医疗等。 UiPath是一款流行的自动

    2024年02月21日
    浏览(37)
  • 从零开始,我的第一个物联网平台搭建好了,ESP8266+DHT11+阿里云平台+IOT StudioWEB应用开发,实现网页实时查看设备上报的信息,控制开关

        记录下自己做的第一个物联网项目,真正从零开始,断断续续花了2个月时间看各种视频,网站学习有关物联网的知识,期间碰到过好多问题,没有人指导,都得靠自己慢慢研究,有时会很迷茫,没有方向,但还得坚持下去,当经过自己的努力解决一个个问题时,会很兴奋

    2024年01月19日
    浏览(94)
  • 【IoT网络层】STM32 + ESP8266 +MQTT + 阿里云物联网平台 |开源,附资料|

    🌟博主领域:嵌入式领域人工智能软件开发 本节目标: 通过MQTT.fx模拟连接或通过串口连接ESP8266发送AT命令,实现阿里云物联网平台发送数据同时接收数据,IOT studio界面显示数据。具体来说:使用ESP8266 ESP-01来连接网络,获取设备数据发送到阿里云物联网平台并显示且oled显

    2024年02月04日
    浏览(62)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO

    轻量系统设备通常需要进行外设控制,例如温湿度数据的采集、灯开关的控制,因此在完成内核开发后,需要进行设备驱动的开发。 主要Hi3861芯片介绍如何运用 IoT 硬件子系统进行轻量系统设备的驱动开发。 在轻量系统的联接模组中,智能家居远程控制能力的实现,最终是通

    2024年02月21日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包