【智能设备-IoT安全透视:D-Link DWR-932B固件全面逆向分析】此文章归类为:智能设备。
文章目的
本文深入剖析D-Link DWR-932B路由器的固件安全,揭示可能导致攻击者未经授权访问和控制设备的严重漏洞,包括硬编码凭据、弱根密码以及管理与更新机制中的关键缺陷,如未认证的远程命令执行和不安全的固件更新协议。研究采用静态与动态分析相结合的方法,并通过逆向工程定位问题。本文可能存在一些不足,请大家斧正!此分析提醒人们在不断扩展的IoT生态系统中,强化安全实践的重要性,适合安全爱好者、网络管理员及关注家庭网络安全的人士。
文章简介大纲:
一、引言
二、基础知识:固件分析入门
三、基础知识:网络安全协议与 IoT 设备
四、固件获取与初始访问:固件文件解包(核心1)
五、敏感配置文件分析:寻找信息泄露
六、弱密码破解:存在Root弱密码爆破问题
七、使用 Firmwalker:扫描进行信息搜集(核心2)
八、逆向分析存在风险的二进制程序(核心3)
九、参考资料
IoT 设备的普及与固件安全的重要性
随着物联网(IoT)设备的快速增长,智能家居设备、路由器和摄像头等设备已成为我们日常生活的一部分。研究表明,这些设备的安全性直接关系到用户隐私和网络安全,因为固件是设备的核心软件,包含了操作系统的配置和功能。如果固件存在漏洞,攻击者可能远程控制设备,窃取数据或发起网络攻击。因此,固件安全分析成为保护 IoT 设备的关键。
D-Link DWR-932B 路由器的简介及其在 IoT 中的应用
D-Link DWR-932B 是一款支持 4G LTE 的便携式路由器,广泛用于家庭网络、小型办公室和移动场景。它通过提供无线网络连接,支持多个设备同时联网,是 IoT 生态系统中的重要节点。它的固件管理了网络配置、Wi-Fi 连接和远程管理功能,因此成为安全研究的重要目标。
固件(Firmware)是存储在设备硬件中的软件,控制嵌入式设备的基本功能,如路由器的 Wi-Fi 连接和网络设置。研究表明,固件安全直接影响 IoT 设备的安全性,如果存在漏洞,攻击者可能远程控制设备或窃取数据。
常见的固件格式包括 ZIP(用于分发)和 YAFFS2(用于闪存文件系统)。解包工具如:
固件分析的流程包括:
常用工具包括:
网络安全协议是物联网(IoT)设备通信的核心,它们确保设备之间能够安全、高效地交换数据。以下是对几种常见网络协议(UPnP、FOTA、SSH、SSL/TLS)的简介,这些协议在 IoT 设备中广泛使用,了解它们的作用有助于提升设备的安全性。
固件下载地址:5d5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6X3N6s2m8Q4x3X3g2V1L8r3W2F1K9#2)9J5k6h3c8W2i4K6u0r3k6s2N6J5i4K6u0r3k6s2N6J5i4K6u0V1z5e0x3J5i4K6u0r3j5i4u0U0K9r3W2$3k6g2)9J5c8X3c8J5K9i4k6W2M7W2)9#2k6Y4y4G2k6Y4c8%4j5i4u0W2i4K6u0r3c8q4N6d9i4K6u0V1z5e0x3J5i4K6g2X3k6Y4N6Q4y4h3k6J5k6i4k6T1i4K6g2X3x3U0l9J5k6i4g2Q4y4h3k6m8e0p5I4Q4y4h3k6E0N6h3I4@1K9g2)9#2k6U0t1H3x3e0f1H3x3e0p5&6i4K6u0W2P5X3W2H3
固件解压缩:PLC_1earn/1earn/Security/IOT/固件安全/实验/Dlink_DWR-932B路由器固件分析.md at master · dbshow/PLC_1earn
解压和binwalk发现存在问题,无法将目标固件提取,所以大概率存在密码:
爆破失败格式不正确:
修复压缩包:
继续爆破:
解压密码是:beUT9Z
发现2K-mdm-image-mdm9625.yaffs2 是根文件系统直接开始分析!
在 mnt/hgfs/VMShare/IOT/DWR-932/yaffs2-root/
(共享文件夹)下解压,而 VMware 共享文件夹 (HGFS) 不支持符号链接。
成功解压出来目录:
首先查找路径下的所有.conf文件,.conf文件大多都是配置文件,将所有的配置文件都集合起来审计:
可以寻找到非常多的数据泄露和安全隐患:
1. Wi-Fi SSID 和密码
文件中包含多个 Wi-Fi 配置,包括 SSID 和 WPA-PSK 密码:
风险:任何人都可以用这些凭据连接你的 Wi-Fi 网络,进行未授权访问或中间人攻击。
建议:立即更改 Wi-Fi 密码、避免在明文文件中存储密码,可以使用 WPA-Enterprise 认证。
2. 设备管理密码
在 inadyn
配置中,存在硬编码的用户名和密码:
风险:可能是 动态 DNS(DDNS) 账户的凭据,允许攻击者控制远程主机名、可能被用于访问某些管理接口。
建议:立即更改该账号的密码。不要在明文文件中存储账号密码,改用环境变量或加密存储。
3. 可能的内部网络信息
文件中包含多个内网 IP 地址:
风险:这些 IP 可能是 内部服务器、网关或 IoT 设备,攻击者可以利用这些信息构建攻击路径。可能用于内部网络的端口转发(UPnP 配置)。
建议:不要暴露内部 IP,避免直接放入配置文件。确保防火墙配置妥当,限制未授权访问。
4. D-Bus 配置泄露
部分 D-Bus
配置中,可能导致未授权访问:
风险:可能允许任意进程监听和控制 D-Bus,攻击者可利用此漏洞获取敏感信息或远程控制设备。
建议:限制允许的 D-Bus 访问权限,避免 allow="*"
类型的配置。
5. UPnP
配置暴露
文件中包含 UPnP
(通用即插即用)配置:
风险:secure_mode=no
可能允许外部设备修改路由规则,导致端口转发被滥用。
建议:关闭 UPnP,除非明确需要:enable_upnp=no
6. 可能的硬编码 SSH 配置
文件中包含某些 /dev
设备的权限设置:
风险:如果这些设置与 SSH 配置有关,可能导致远程用户未授权访问设备控制台。
建议:检查 SSH 配置,确保只有授权用户可访问。风险评估及缓解建议(如更改密码、禁用 UPnP)。
/etc/shadow
文件的格式与加密方式(MD5、SHA-256、SHA-512)。爆破shadow文件从而获得Root用户密码:
教程:破解shadow密码 - 小阿辉谈安全 - 博客园
#shadow密码爆破
当我们通过任意文件下载或者目录穿越下载或者读取到/etc/shadow文件时,可以对shadow中加密的密码进行爆破获取明文密码。
shadow文件加密的密码具有固定格式:
冒号后面的数值是一些日期和密码修改间隔天数的信息,可以不用管,以上述示例中 root 账号为例:
工具安装:john-Linux密码爆破工具
配置爆破字典,使用kali自带的工具:
直接开始爆破:
成功爆破出root的密码为1234!
该脚本主要用于扫描固件解包后的文件系统,从中查找各种敏感信息和潜在的安全隐患,例如密码文件、哈希值、SSL/SSH相关文件、数据库文件、脚本、二进制文件、IP 地址、URL 和电子邮件等。通过将扫描结果输出到一个指定文件中(默认为 firmwalker.txt),方便后续的安全分析和漏洞挖掘。
如果需要拓展查找文件的多样性就可以手动在在下列文件中添加各种文件类型的关键字:
这些关键词或文件名进行搜索。具体作用如下:
直接开始脚本分析:
直接将提取出来的信息丢给AI去分析,固件中存在的关键安全问题包括:
也可以单独筛选出其中关键的二进制文件:
分析完敏感的配置文件后,我们接下来需要对存在风险的二进制程序进行深入分析。这些程序通常是设备功能的核心,包含关键的业务逻辑和网络通信功能,因此可能隐藏着高危漏洞。以下是我们分析的思路和方法。
为了找到值得关注的二进制文件,我们可以使用 firmwalker 工具快速扫描固件,识别出与网络服务、安全认证和系统管理相关的重要文件。以下是一些常见的、需要重点分析的二进制文件:
这些文件通常与设备的核心功能密切相关,是潜在漏洞的集中区域,因此需要优先分析。
检查自启动脚本
为了确定哪些二进制文件在设备启动时被执行,我们可以分析 /etc/init.d/ 目录下的自启动脚本。这些脚本是路由器服务启动的关键,包含了启动命令和参数,能够帮助我们定位核心服务程序。
例如,可以通过以下命令提取所有自启动脚本的内容到一个文件进行分析:
生成的 new_text.txt 文件包含了 init.d 目录下所有脚本的合集。通过分析这个文件,我们可以找出被启动的二进制文件、Web 服务及其对应的启动命令。例如,一个名为 start_appmgr 的脚本引起了我们的注意,因为 “mgr” 通常暗示这是一个主控程序(manager)。从中我们可能发现以下关键程序:
这些被自启动脚本调用的文件是我们分析的重点目标。
/bin/appmgr 是路由器的核心管理程序,可能包含 Web 服务、远程管理等功能模块。分析时,我们需要关注以下风险点:
这个漏洞是一个 未授权远程命令执行漏洞(Unauthenticated Remote Command Execution Vulnerability),具体表现为目标设备(如路由器)上运行的程序通过 UDP 协议监听特定端口(如
0.0.0.0:39889
),并接受特定的控制命令(如 HELODBG
),触发执行高危操作。
我们可以继续逆向分析一下如何获知其绑定的端口号和ip地址的:
普及常见的C语言的网络相关的API函数:
我们可以继续逆向分析这个ip和端口是如何发现的,直接寻找bind函数:
作用:创建一个UNIX域数据报套接字,绑定到本地路径/var/usock/appmgr.us
,用于本地进程间通信(非网络通信),但是不涉及IP和端口。
这段代码用于初始化一个UDP日志系统,设置套接字为非阻塞模式,并绑定到指定的端口(53659)和所有网络接口(0.0.0.0)。
继续向后看就可以发现这个后门漏洞在持续的监听0.0.0.0:39889,来检测是否需要开启后门服务,即执行 /sbin/telnetd -l /bin/sh 让这名用户获得root权限:
这个函数发现如果没有配置管理员的话就直接创建一个默认管理员账户,账号密码默认为admin,admin!
chpasswd
是一个 Linux 命令,用于批量更新用户密码。它从标准输入或文件中读取用户名和密码对(格式为 用户名:密码
),并自动更新系统中相应用户的密码。
默认配置下,该路由器 WPS 系统的 PIN 码永远都是 28296607
因为这个 PIN 码是硬编码在 /bin/appmgr
程序中
扩展说明: WPS PIN是Wi-Fi Protected Setup的认证码,该实现常用于路由器等网络设备,通过分级配置策略保证设备在出厂设置和用户自定义配置间灵活切换。
根据前面firmwalker收集的信息我们可以很快定位到这个款路由器存在UPnP服务:
UPnP(通用即插即用)协议用于设备自动发现和配置网络服务,其子协议IGD(Internet网关设备)允许内网设备请求路由器动态添加端口转发规则,以简化NAT穿透过程。
UPnP协议 - Charon·1937 - 博客园
UPnP 并不安全,因为存在许多安全问题!想象一下:您正在打开端口以允许传入的外部设备与您的设备建立连接并绕过 NAT 防火墙。这会将您的计算机或任何其他设备公开暴露给不需要的连接甚至黑客。
我们可以根据UPnP的配置文件是由谁生成的来查找目标程序的位置,来寻找相关漏洞!
继续分析/bin/appmgr
中存在的配置UPnP的功能!
直接查找/var/miniupnpd.conf
字符串的引用发现并没有数据!
我们可以往上看可以发现 aUpnpCfg2upnpin 有被引用的痕迹,直接查看调用发现剩下的字符串是通过偏移来计算的所以直接锁定目标位置!
直接锁定目标!
该函数的主要作用是配置并启动一个 UPnP(通用即插即用)守护进程 miniupnpd,以支持网络设备的自动发现和端口映射。
我们可以通过逆向发现/var/miniupnpd.conf
配置文件的内容;
配置文件中设置了 secure_mode=no,明确关闭了安全模式。关闭安全模式可能允许未经授权的 UPnP 请求通过,使设备更容易受到外部攻击。攻击者可能利用 UPnP 协议执行未经授权的操作。
/sbin/fotad 负责与服务器通信并下载固件更新,是设备固件升级的关键组件。分析时,我们需要关注:
根据前面firmwalker收集的信息我们可以很快定位到这个款路由器的固件更新程序:
“fotad” 是路由器中用于固件在线升级(FOTA, Firmware Over-The-Air)的守护进程,其主要职责是与 FOTA 服务器建立通信并进行固件更新。
详细信息:FOTA升级简介-CSDN博客
直接开始对fotad进行逆向分析:
main函数的主要功能:
#网络协议逆向
找到关键处理函数!sub_E344(),该函数使用switch
语句,根据全局变量n7
(当前FOTA状态)的不同值进入不同处理分支,所以继续!
可以阅读一下这个函数的不同状态的功能来寻找存在的漏洞!一共有十种不同的状态机,可以阅读一下他们的功能,并且进行漏洞分析!
该函数使用switch
语句,根据全局变量n7
(当前FOTA状态)的不同值进入不同处理分支:
该部分存在网络下载服务,可以从官方服务器下载更新固件,那我们就可以查看这个下载固件的服务是否存在安全问题:
下面找到的两个函数分别是下载固件的函数,可以进一步分析,分析sub_CB24函数可以很快发现身份认证信息来源于base64_CAAC:
进一步分析base64_CAAC函数:
可以很快得到如下通信时的凭证,存在严重的安全隐患:
由于凭证数据直接硬编码在 fotad 中,且仅经过 Base64 编码(实际上并未加密,只是简单的编码),攻击者可以利用逆向工程工具(如 IDA Pro)轻易还原出这些认证数据,从而造成如下危害:
总之,该漏洞使得攻击者能够绕过身份认证机制,直接利用硬编码的凭证对固件更新流程进行操控,从而引发设备安全、网络安全和后续攻击风险。
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ unzip DWR-932_B1_02.02EU.zip
Archive: DWR-932_B1_02.02EU.zip
warning [DWR-932_B1_02.02EU.zip]: 64 extra bytes at beginning or within zipfile
(attempting to process anyway)
[DWR-932_B1_02.02EU.zip] 02.02EU password:
password incorrect--reenter:
password incorrect--reenter:
skipping: 02.02EU incorrect password
[DWR-932_B1_02.02EU.zip] 2K-cksum.txt password:
skipping: 2K-cksum.txt incorrect password
skipping: 2K-mdm-image-boot-mdm9625.img incorrect password
skipping: 2K-mdm-image-mdm9625.yaffs2 incorrect password
skipping: 2K-mdm-recovery-image-boot-mdm9625.img incorrect password
skipping: 2K-mdm-recovery-image-mdm9625.yaffs2 incorrect password
skipping: 2K-mdm9625-usr-image.usrfs.yaffs2 incorrect password
skipping: appsboot.mbn incorrect password
skipping: mba.mbn incorrect password
skipping: qdsp6sw.mbn incorrect password
skipping: rpm.mbn incorrect password
skipping: sbl1.mbn incorrect password
skipping: tz.mbn incorrect password
skipping: wdt.mbn incorrect password
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ unzip DWR-932_B1_02.02EU.zip
Archive: DWR-932_B1_02.02EU.zip
warning [DWR-932_B1_02.02EU.zip]: 64 extra bytes at beginning or within zipfile
(attempting to process anyway)
[DWR-932_B1_02.02EU.zip] 02.02EU password:
password incorrect--reenter:
password incorrect--reenter:
skipping: 02.02EU incorrect password
[DWR-932_B1_02.02EU.zip] 2K-cksum.txt password:
skipping: 2K-cksum.txt incorrect password
skipping: 2K-mdm-image-boot-mdm9625.img incorrect password
skipping: 2K-mdm-image-mdm9625.yaffs2 incorrect password
skipping: 2K-mdm-recovery-image-boot-mdm9625.img incorrect password
skipping: 2K-mdm-recovery-image-mdm9625.yaffs2 incorrect password
skipping: 2K-mdm9625-usr-image.usrfs.yaffs2 incorrect password
skipping: appsboot.mbn incorrect password
skipping: mba.mbn incorrect password
skipping: qdsp6sw.mbn incorrect password
skipping: rpm.mbn incorrect password
skipping: sbl1.mbn incorrect password
skipping: tz.mbn incorrect password
skipping: wdt.mbn incorrect password
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ fcrackzip -u -v -b DWR-932_B1_02.02EU.zip
found id beba4000, 'DWR-932_B1_02.02EU.zip' is not a zipfile ver 2.xx, skipping
no usable files found
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ file DWR-932_B1_02.02EU.zip
DWR-932_B1_02.02EU.zip: data
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ fcrackzip -u -v -b DWR-932_B1_02.02EU.zip
found id beba4000, 'DWR-932_B1_02.02EU.zip' is not a zipfile ver 2.xx, skipping
no usable files found
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ file DWR-932_B1_02.02EU.zip
DWR-932_B1_02.02EU.zip: data
zip -FF DWR-932_B1_02.02EU.zip --out fixed.zip
zip -FF DWR-932_B1_02.02EU.zip --out fixed.zip
fcrackzip -u -v -b fixed.zip
fcrackzip -u -v -b fixed.zip
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ sudo apt install unyaffs
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ sudo apt install unyaffs
2K-mdm-image-boot-mdm9625.img # 引导镜像(Bootloader相关)
2K-mdm-image-mdm9625.yaffs2 # YAFFS2格式文件系统(可能是根文件系统)
2K-mdm9625-usr-image.usrfs.yaffs2 # 用户空间文件系统(关键配置和程序)
2K-mdm-recovery-image-mdm9625.yaffs2 # 恢复模式镜像(可能包含修复工具)
appsboot.mbn # 应用处理器引导加载程序(类似ABOOT)
sbl1.mbn # 次级引导加载程序(高通平台关键启动组件)
rpm.mbn # 资源与电源管理分区
tz.mbn # TrustZone安全分区
DWR-932_B1_02.02EU.zip # 固件升级包(可能包含完整系统镜像)
2K-mdm-image-boot-mdm9625.img # 引导镜像(Bootloader相关)
2K-mdm-image-mdm9625.yaffs2 # YAFFS2格式文件系统(可能是根文件系统)
2K-mdm9625-usr-image.usrfs.yaffs2 # 用户空间文件系统(关键配置和程序)
2K-mdm-recovery-image-mdm9625.yaffs2 # 恢复模式镜像(可能包含修复工具)
appsboot.mbn # 应用处理器引导加载程序(类似ABOOT)
sbl1.mbn # 次级引导加载程序(高通平台关键启动组件)
rpm.mbn # 资源与电源管理分区
tz.mbn # TrustZone安全分区
DWR-932_B1_02.02EU.zip # 固件升级包(可能包含完整系统镜像)
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ unyaffs 2K-mdm-image-mdm9625.yaffs2 yaffs2-root/
Can't create symlink sdcard: Operation not supported
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ unyaffs 2K-mdm-image-mdm9625.yaffs2 yaffs2-root/
Can't create symlink sdcard: Operation not supported
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ sudo unyaffs 2K-mdm-image-mdm9625.yaffs2 ~/IOT/DWR-932/yaffs2-root/
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ sudo unyaffs 2K-mdm-image-mdm9625.yaffs2 ~/IOT/DWR-932/yaffs2-root/
┌──(kali㉿kali)-[~/IOT/DWR-932/yaffs2-root]
└─$ sudo find . -name '*.conf' -type f -print0 | xargs -0 cat > new_text.txt
┌──(kali㉿kali)-[~/IOT/DWR-932/yaffs2-root]
└─$ sudo find . -name '*.conf' -type f -print0 | xargs -0 cat > new_text.txt
ssid="QSoftAP"
wpa_passphrase=1234567890
ssid="QSoftAP"
wpa_passphrase=1234567890
ssid=QSoftAP1
wpa_passphrase=1234567890
ssid=QSoftAP1
wpa_passphrase=1234567890
--username alex_hung
--password 641021
--username alex_hung
--password 641021
#publish-dns-servers=192.168.50.1, 192.168.50.2
listening_ip=192.168.10.109/24
allow 1024-65535 192.168.0.0/24 1024-65535
#publish-dns-servers=192.168.50.1, 192.168.50.2
listening_ip=192.168.10.109/24
allow 1024-65535 192.168.0.0/24 1024-65535
<
allow
send_destination
=
"*"
eavesdrop
=
"true"
/>
<
allow
eavesdrop
=
"true"
/>
<
allow
own
=
"*"
/>
<
allow
send_destination
=
"*"
eavesdrop
=
"true"
/>
<
allow
eavesdrop
=
"true"
/>
<
allow
own
=
"*"
/>
enable_upnp=yes
enable_natpmp=yes
secure_mode=no
enable_upnp=yes
enable_natpmp=yes
secure_mode=no
console 0:0 0600
network_latency 0:0 0660
network_throughput 0:0 0660
console 0:0 0600
network_latency 0:0 0660
network_throughput 0:0 0660
$id
$salt
$encrypted
$id
$salt
$encrypted
┌──(kali㉿kali)-[~/IOT/DWR-932/yaffs2-root]
└─$ cat ~/IOT/DWR-932/yaffs2-root/etc/shadow
root:aRDiHrJ0OkehM:16270:0:99999:7:::
daemon:*:16270:0:99999:7:::
bin:*:16270:0:99999:7:::
sys:*:16270:0:99999:7:::
sync:*:16270:0:99999:7:::
games:*:16270:0:99999:7:::
man:*:16270:0:99999:7:::
lp:*:16270:0:99999:7:::
mail:*:16270:0:99999:7:::
news:*:16270:0:99999:7:::
uucp:*:16270:0:99999:7:::
proxy:*:16270:0:99999:7:::
www-data:*:16270:0:99999:7:::
backup:*:16270:0:99999:7:::
list:*:16270:0:99999:7:::
irc:*:16270:0:99999:7:::
gnats:*:16270:0:99999:7:::
diag:*:16270:0:99999:7:::
nobody:*:16270:0:99999:7:::
messagebus:!:16270:0:99999:7:::
avahi:!:16270:0:99999:7:::
┌──(kali㉿kali)-[~/IOT/DWR-932/yaffs2-root]
└─$ cat ~/IOT/DWR-932/yaffs2-root/etc/shadow
root:aRDiHrJ0OkehM:16270:0:99999:7:::
daemon:*:16270:0:99999:7:::
bin:*:16270:0:99999:7:::
sys:*:16270:0:99999:7:::
sync:*:16270:0:99999:7:::
games:*:16270:0:99999:7:::
man:*:16270:0:99999:7:::
lp:*:16270:0:99999:7:::
mail:*:16270:0:99999:7:::
news:*:16270:0:99999:7:::
uucp:*:16270:0:99999:7:::
proxy:*:16270:0:99999:7:::
www-data:*:16270:0:99999:7:::
backup:*:16270:0:99999:7:::
list:*:16270:0:99999:7:::
irc:*:16270:0:99999:7:::
gnats:*:16270:0:99999:7:::
diag:*:16270:0:99999:7:::
nobody:*:16270:0:99999:7:::
messagebus:!:16270:0:99999:7:::
avahi:!:16270:0:99999:7:::
sudo apt install john
sudo apt install john
gzip -d /usr/share/wordlists/rockyou.txt.gz #-d 将压缩文件解压
ll /usr/share/wordlists/rockyou.txt #显示当前目录下文件详细信息
gzip -d /usr/share/wordlists/rockyou.txt.gz #-d 将压缩文件解压
ll /usr/share/wordlists/rockyou.txt #显示当前目录下文件详细信息
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ cat ~/IOT/DWR-932/yaffs2-root/etc/shadow| grep root | cut -d: -f2 > root.hash
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ cat root.hash
aRDiHrJ0OkehM
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ john --wordlist=/usr/share/wordlists/rockyou.txt root.hash
Using default input encoding: UTF-8
Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 AVX])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1234 (?)
1g 0:00:00:00 DONE (2025-03-21 02:40) 33.33g/s 819200p/s 819200c/s 819200C/s 123456..112203
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ cat ~/IOT/DWR-932/yaffs2-root/etc/shadow| grep root | cut -d: -f2 > root.hash
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ cat root.hash
aRDiHrJ0OkehM
┌──(kali㉿kali)-[/mnt/hgfs/VMShare/IOT/DWR-932]
└─$ john --wordlist=/usr/share/wordlists/rockyou.txt root.hash
Using default input encoding: UTF-8
Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 AVX])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
更多【智能设备-IoT安全透视:D-Link DWR-932B固件全面逆向分析】相关视频教程:www.yxfzedu.com