​固件安全评估(一)

admin 2023年2月16日22:15:20评论103 views字数 3641阅读12分8秒阅读模式
最近正在看物联网安全,所以做了一个测试的记录。

一、概述


近年来,随着科技的飞速发展,物联网技术逐渐走向成熟,并在安防、医疗、零售、教育、办公、家居、能源等多个领域得到应用。特别是随着5G 时代的到来,也极大推动了物联网技术的进一步发展和应用,其安全性也越来越受到人们的关注。本篇以物联网的固件入手,进行固件的安全评估。


二、环境版本与工具


系统/工具

用途

来源

kali

攻击机

官网

IoTGoat

靶标

https://github.com/OWASP/IoTGoat/releases

binwalk

分析工具

kali自带

firmwalk

分析工具

https://github.com/craigz28/firmwalker.git

nmap

端口、服务扫描

kali自带

nc

远程链接

kali自带

hydra

暴破

kali自带

RSAS

漏扫

绿盟


三、安全评估


评估固件的靶标选择:IOTGoat

项目github链接:

https://github.com/OWASP/IoTGoat

Bash


3.1.介绍

IoTGoat 项目是一个基于OpenWrt的故意不安全的固件由OWASP维护(就是说OWASP提供测试靶标),现在进行测试发掘其中存在的安全问题。

3.2.固件准备

首先进行固件下载,我选择下载了IoTGoat-raspberry-pi2.img的这个,

下载链接:

https://github.com/OWASP/IoTGoat/releases

Batch

​固件安全评估(一)

使用binwalk-Me命令,解压使用上面链接下载的固件文件。

binwalk -Me IoTGoat-raspberry-pi2.img

Bash


​固件安全评估(一)

​固件安全评估(一)

运行后会在固件同级目录创建_IoTGoat-raspberry-pi2.img.extracted目录。

​固件安全评估(一)

进入_IoTGoat-raspberry-pi2.img.extracted目录可以看到squashfs-root文件系统,这就是固件的文件系统了。


3.3.固件测试环境

在刚才固件下载的链接下面下载固件vmdk虚拟磁盘文件。

这里选择的是vmware安装虚拟机的方式模拟运行固件,这一步主要是为了验证漏洞,也可以使用一些固件模拟软件或者真实设备进行漏洞验证。

首先vmware点击文件新建虚拟机,选择自定义高级。

默认下一步。

选择稍后安装操作系统,然后点击下一步。

​固件安全评估(一)

这里客户机操作系统选择linux版本选择ubuntu64,然后点击下一步。

                               ​固件安全评估(一)

填写虚拟机名称与安装路径,点击下一步。

​固件安全评估(一)

设置处理器,这里设置为两处理器。

设置内存为4096Mb。

设置网络连接为网络地址转换(NAT)模式

连续使用使用默认设置。

选择使用现有虚拟磁盘。

选择磁盘文件,为上面下载的vmdk文件。

​固件安全评估(一)

这里选择保存现有格式。

​固件安全评估(一)

点击完成。

如下图第二张所示虚拟机正常运行。(记得在界面回车下,要不然不到这个界面)

​固件安全评估(一)

​固件安全评估(一)

使用ifconfig查看ip,出现问题。

​固件安全评估(一)

打开虚拟机设置发现没有添加网卡于是添加网卡

​固件安全评估(一)

​固件安全评估(一)

​固件安全评估(一)

重新获取IP成功获取了IP地址。

​固件安全评估(一)

在kali系统浏览器中输入:

https://192.168.239.135/cgi-bin/luci

Bash


​固件安全评估(一)

输入密码root登录成功。

SSH登录:ssh [email protected]

​固件安全评估(一)

到此为止固件仿真环境搭建成功。

3.4 信息收集

3.4.1 系统信息

系统信息:

直接在IoTGoat系统输入 uname -a

​固件安全评估(一)

可以看到系统的信息

端口和web服务信息:nmap -sS -Pn -A -p- 182.168.239.135

​固件安全评估(一)

可以看到开启了22、80、443和5000四个端口。分别是 SSH、DNS、http、https、upnp等服务

3.4.2 自动化分析分析

使用 工具firmwalker分析这是一个简单的 bash 脚本,用于搜索提取或挂载的固件文件系统。

它将在提取或挂载的固件文件系统中搜索感兴趣的内容,例如:

etc/shadow and etc/passwd

列出 etc/ssl 目录

搜索 SSL 相关文件,如 .pem、.crt 等。

搜索配置文件

查找脚本文件

搜索其他.bin文件

查找关键字,例如管理员,密码,远程等。

搜索 IoT 设备上使用的常见 Web 服务器

搜索常见的二进制文件,如 ssh、tftp、dropbear 等。

搜索网址、电子邮件地址和 IP 地址

使用 Shodan CLI 调用 Shodan API 的实验性支持

git clone https://github.com/craigz28/firmwalker.git

Bash


​固件安全评估(一)

cd firmwalker ./firmwalker.sh /root/LOT/_IoTGoat-raspberry-pi2.img.extracted/squashfs-rootBash


​固件安全评估(一)

​固件安全评估(一)

3.5 漏洞扫描


因为没有LOT的漏扫工具,于是拿绿盟RSAS扫描了一把。

发现了30个漏洞,

3.5.1按服务分类:

​固件安全评估(一)

3.5.2按应用分类:

​固件安全评估(一)

3.5.3漏洞信息:

​固件安全评估(一)

​固件安全评估(一)

可以看到大部分是DNSmasq服务的漏洞


3.6漏洞挖掘

挖掘思路:

​固件安全评估(一)

3.6.1.弱密码、可猜测密码或硬编码密码

在信息收集firmwalk分析中可以看到/etc目录存在shadow文件。

​固件安全评估(一)

查看固件中/etc/shadow文件保存的信息。

​固件安全评估(一)

加密密码格式:$id$salt$encrypted,id为1时表示采用md5进行加密,id为5时,表示采用SHA256进行加密,id为6时,表示SHA512进行加密,该固件使用的加密方式为md5加密。

使用以下命令创建password.txt(用于破解的文件)。

git clone git://github.com/danielmiessler/SecLists.git结果失败了,于是直接安装:apt -y install seclists cd Malware  #看图找到seclists 如果找不到使用如下命令:which seclistsawk '{print $2}' mirai-botnet.txt > password.txBash


​固件安全评估(一)

​固件安全评估(一)

​固件安全评估(一)

使用hydra九头蛇进行如下命令爆破:成功活动密码:7ujMko0vizxv

hydra -l iotgoatuser -P password.txt ssh://192.168.239.135

Bash


​固件安全评估(一)

进行SSH成功登录固件系统:

ssh [email protected]

Bash


​固件安全评估(一)

3.6.2 不安全的网络服务

搜寻lua脚本所在目录,在其中找到了iotgoat.lua文件,发现在其中可以执行系统命令。和SSH命令一样可以获取系统信息。

https://192.168.239.135/cgi-bin/luci//admin/iotgoat/webcmd?cmd=uname -a

Bash


​固件安全评估(一)

执行pwd和ls命令,命令注入无疑了。还可以看端口链接。

​固件安全评估(一)

​固件安全评估(一)

​固件安全评估(一)

​固件安全评估(一)

3.6.3 不安全的生态系统

在SSH界面查看端口情况,发现一个可疑程序

​固件安全评估(一)

直接尝试nc链接成功,执行了ls命令

​固件安全评估(一)

3.6.4.缺乏安全更新机制

​固件安全评估(一)

在后台登陆页面的system存在backup选项,页面中有备份、恢复、刷新固件的操作选项。翻译一下:

​固件安全评估(一)

说明存在可能被恶意刷新固件的风险。(由于本人收到没有合适的其他固件并未进行实际操作,如果需要操作记得先进行快照)

3.6.5 使用不安全或过时的组件

3.6.5.1 busybox

在SSH登录命令行中输入:

busybox ls -fssdfdsf

可以看到BusyBox v1.28.4 () multi-call binary.也就是BusyBox 的版本信息

​固件安全评估(一)

在CVE中搜索

https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=BusyBox+v1.28.4

Bash


​固件安全评估(一)

可以看到比较多的漏洞。

3.6.5.2 dnsmasq漏洞

查看组件dnsmasq版本信息:

dnsmasq -v

​固件安全评估(一)

发现版本为2.73,在CVE搜寻下。同样看到大量漏洞

https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=dnsmasq+2.73

Bash


​固件安全评估(一)



四、参考

OWASP固件安全性测试指南

https://m2ayill.gitbook.io/firmware-security-testing-methodology/v/zhong-wen-fstm/

Bash


推荐阅读

               

               蓝队手册更新版

              一次hvv蓝队中级面试复盘

               奇安信HVV面试复盘

            Github渗透测试工具库
             一次溯源过程复盘
            应急响应之入侵排查
              真实应急响应复盘
            挖矿病毒应急响应
         任意文件上传漏洞应急响应
          操作系统日志收集与分析
            最强渗透环境


欢迎关注,领取资料↓↓↓    


原文始发于微信公众号(安全猎人):​固件安全评估(一)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月16日22:15:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ​固件安全评估(一)https://cn-sec.com/archives/1278137.html

发表评论

匿名网友 填写信息