释迦牟尼的赛博生命
AI summary
本文介绍了OWASP IoTGoat固件漏洞挖掘的实验过程,旨在通过漏洞挑战基于OWASP IoT Top 10和来自项目贡献者的“彩蛋”,教育软件开发人员和安全专业人员测试物联网设备中常见的漏洞。文章详细介绍了实验目的、实验环境、实验步骤,包括如何使用binwalk提取镜像文件中的文件,如何使用Medusa进行密码爆破等。文章还介绍了OWASP物联网Top 10中的10种漏洞类型,包括弱密码、不安全的网络服务、不安全的生态系统接口、缺乏安全更新机制、使用不安全或过时的组件、隐私保护不足、不安全的数据传输和存储、缺乏设备管理、不安全的默认设置以及缺乏物理硬化。本文对固件漏洞挖掘感兴趣的读者具有一定的参考价值。
Published
State
Unread
Tags
blog
百川的博客

🍽️实验目的

IoTGoat 项目是一个基于OpenWrt的故意不安全的固件,由OWASP维护,作为一个平台来教育软件开发人员和安全专业人员测试物联网设备中常见的漏洞。漏洞挑战基于下面提到的 OWASP IoT Top 10,以及来自项目贡献者的“彩蛋”。有关漏洞挑战的列表,请参阅IoTGoat 挑战维基页面。
描述
I1 弱密码、可猜测密码或硬编码密码
使用易于暴力破解的、公开可用的或不可更改的凭据,包括固件或客户端软件中的后门,这些后门授予对已部署系统的未授权访问权限。
I2 不安全的网络服务
在设备本身上运行不需要或不安全的网络服务,尤其是那些暴露在互联网上的服务,这些服务会损害信息的机密性、完整性/真实性或可用性,或者允许未经授权的远程控制。
I3 不安全的生态系统接口
设备外部生态系统中不安全的网络、后端 API、云或移动接口,允许危害设备或其相关组件。常见问题包括缺乏身份验证/授权、缺乏或弱加密以及缺乏输入和输出过滤。
I4 缺乏安全更新机制
缺乏安全更新设备的能力。这包括在设备上缺乏固件验证、缺乏安全交付(在传输过程中未加密)、缺乏防回滚机制以及由于更新而缺乏安全更改通知。
I5 使用不安全或过时的组件
使用已弃用或不安全的软件组件/库可能会导致设备受到威胁。这包括操作系统平台的不安全定制,以及使用来自受损供应链的第三方软件或硬件组件
I6 隐私保护不足
存储在设备或生态系统中的用户个人信息被不安全、不当或未经许可使用。
I7 不安全的数据传输和存储
缺乏对生态系统内任何地方的敏感数据的加密或访问控制,包括静态、传输中或处理过程中
I8 缺乏设备管理
生产中部署的设备缺乏安全支持,包括资产管理、更新管理、安全退役、系统监控和响应功能。
I9 不安全的默认设置
带有不安全默认设置或无法通过限制操作员修改配置来提高系统安全性的设备或系统。
I10 缺乏物理硬化
缺乏物理加固措施,允许潜在的攻击者获取敏感信息,这有助于未来的远程攻击或对设备进行本地控制。

🔍实验环境

  • IoGoat V1.0
  • Window11(2023.5.302)
  • Kali Linux2023
  • VMware

✍🏻实验步骤

I1 Weak, Guessable, or Hardcoded Passwords
我们已经有img文件(从GITHUB上下载),img镜像文件通常是磁盘镜像文件,它是一个完整的磁盘或分区的副本,包括文件系统、文件、目录和元数据等,我们注意到img镜像文件可能包含隐藏的信息或漏洞,需要通过分析和解密来获取有用的信息。
notion image
当然下载其他格式的镜像文件也可以,但不同格式的镜像文件可能需要不同的工具和方法来进行分析和解密。对于img镜像文件,可以使用一些常见的工具来进行分析,例如dd、mount、fdisk等。
一般可以将img文件挂载,然后通过文件系统访问,首先创建一个挂载点目录,例如:
mkdir /mnt/img
然后使用mount命令将img镜像文件挂载到该目录中
mount -o loop /path/to/image.img /mnt/img
本次实验中,我们直接使用binwalk进行扫描,binwalk是一个常用的静态分析工具,可以用于扫描和提取镜像文件中的隐藏信息和文件。它可以自动识别和提取各种类型的文件,包括压缩文件、图像文件、音频文件、二进制文件等。使用binwalk可以快速了解镜像文件的结构和内容,并且将其解压。
首先我们将下载的img文件复制到kali linux当中:
notion image
随后使用binwalk命令解压:
binwalk -e IoTGoat-raspberry-pi2.img
其中,-e表示将镜像文件中的文件提取出来,方便后续的分析和处理。
如果没安binwalk可以使用以下命令安装:
sudo apt-get install binwalk
提取后可以看到镜像内的文件:
notion image
同时在目录中可以浏览:
notion image
在目录中,我们发现了找到密码文件etc/shadow,这是一个存储用户密码的文件,通常只有root用户才有读取权限,获取这个文件的内容可以帮助我们破解用户密码,从而获取更多的权限和信息。
notion image
打开文件,内容如下:
notion image
root:$1$Jl7H1VOG$Wgw2F/C.nLNTC.4pwDa4H1:18145:0:99999:7::: daemon:*:0:0:99999:7::: ftp:*:0:0:99999:7::: network:*:0:0:99999:7::: nobody:*:0:0:99999:7::: dnsmasq:x:0:0:99999:7::: dnsmasq:x:0:0:99999:7::: iotgoatuser:$1$79bz0K8z$Ii6Q/if83F1QodGmkb4Ah.:18145:0:99999:7:::
每一行代表一个用户的密码信息,包括用户名、加密后的密码、密码过期时间等。具体的格式如下:
username:password:lastpasswordchange:minpasswordage:maxpasswordage:warnpasswordage:passwordinactive:accountexpirationdate:reserved
其中,各个字段的含义如下:
  • username:用户名
  • password:加密后的密码
  • lastpasswordchange:上次修改密码的时间(从1970年1月1日开始的天数)
  • minpasswordage:密码最小使用时间(从上次修改密码开始的天数)
  • maxpasswordage:密码最大使用时间(从上次修改密码开始的天数)
  • warnpasswordage:提醒用户修改密码的时间(从上次修改密码开始的天数)
  • passwordinactive:密码失效时间(从上次修改密码开始的天数)
  • accountexpirationdate:账户失效时间(从1970年1月1日开始的天数)
  • reserved:保留字段
在发现的/etc/shadow文件中,每一行代表一个用户的密码信息,其中root用户的密码为$1$Jl7H1VOG$Wgw2F/C.nLNTC.4pwDa4H1,iotgoatuser用户的密码为$1$79bz0K8z$Ii6Q/if83F1QodGmkb4Ah.。但这些密码都是经过加密的,需要进行破解才能获取明文密码。
在密码字段中,存在以下信息:
  • $1$:表示加密算法为md5。
  • $salt$:防止彩虹表的盐。
  • $hashed:hash值。
我们可以通过暴力破解的方式进行破解,先准备密码字典。密码字典是一种常用的破解密码的工具,包含了大量常见的密码和组合,可以用于暴力破解加密后的密码。但密码字典只能破解那些使用常见密码或组合的用户,对于使用复杂密码或随机密码的用户,密码字典的效果会大打折扣。因此,在进行密码破解时,需要根据实际情况选择合适的工具和方法,提高破解的效率和成功率。
我们选用的是以下字典
https://github.com/danielmiessler/SecLists/tree/master/Passwords
运行命令
git clone https://github.com/danielmiessler/SecLists.git
转换字典格式
awk '{print $2}' SecLists/Passwords/Malware/mirai-botnet.txt > SecLists/Passwords/Malware/mirai-botnet_passwords.txt
生成成功,一行一个
notion image
使用Medusa进行密码爆破,Medusa是一款常用的密码爆破工具,可以用于破解各种类型的密码,包括SSH、FTP、Telnet、HTTP等。Medusa支持多线程、多协议、多种认证方式,可以快速破解弱密码,是渗透测试中常用的工具之一。
使用以下的命令进行穷举爆破:
medusa -u iotgoatuser -P ~/SecLists/Passwords/Malware/mirai-botnet_passwords.txt -h 192.168.220.152 -M ssh
其中,具体的参数含义如下:
  • u iotgoatuser:指定要破解密码的用户名为iotgoatuser。
  • P /SecLists/Passwords/Malware/mirai-botnet_passwords.txt:指定密码字典文件的路径为/SecLists/Passwords/Malware/mirai-botnet_passwords.txt。
  • h 192.168.220.152:指定要破解密码的目标主机IP地址为192.168.220.152。
  • M ssh:指定要破解的协议为SSH。
得到结果:
iotgoatuser/7ujMko0vizxv
尝试登录ssh,成功
notion image
I2 Insecure Network Services
在不知道其他信息的情况下,可以先使用nmap进行扫描,通过扫描目标主机的开放端口和服务信息,可以了解目标主机的网络拓扑和系统配置,发现可能存在的漏洞和攻击面。同时,nmap还可以进行服务指纹识别、操作系统识别、漏洞扫描等高级功能,帮助选手更深入地了解目标主机的情况。
nmap -F 192.168.220.152
在命令中,-F选项表示快速扫描模式,它会对目标主机进行快速的端口扫描,只扫描常见的端口,包括TCP端口21、22、23、25、80、443、3389等。这种扫描模式速度较快,适合对目标主机进行快速的情报收集和漏洞探测。
扫描结果如下:
Loading...
rail1dd
rail1dd
ENFJ|复古未来|跨界融合|自我探索
公告

评论相关

评论区邮箱填写qq数字邮箱即可抓取qq头像
网址部分为选填

数字学习

倒腾二进制世界的进程笔记,完全未入门级别,看一乐呵
毕竟属于基层和载体,找到合适自己的后也就没有大动过

风格认知

书影音游,整合在这,也不是想写月报,看心情

生存指南

如题,此处是更好的在现实世界生存下去的个人指南,本来想学学约翰·威尔逊的十万个怎么做,但本人似乎没那么跳脱,而且城市也不如纽约来得魔幻,so,这里都是一些超现实的shxt

城市漫游

取名来自文德斯的爱丽丝城市漫游记,所以梦想是真的能末路狂花,仗剑走天涯,但目前平淡的日常生活中也会偶尔出现一些奇妙体验,遂记录
*加密文章密码为同行人生日