我最近一直在玩玩具无人机的固件。
它已经打开了telnet服务,但是由于我不知道其root密码,因此我尝试从闪存芯片中转储其固件。
shadow file
binwalk result
转储成功,但是我无法破解root密码哈希。因此,我对自己说:“为什么不修改密码哈希并将其写回到闪存芯片上呢?”
我知道有一个firmware mod kit
,但是它的失败率很高。因此,我决定尝试直接从十六进制编辑器修改密码哈希,而不是修改提取的shadow
文件。
Pasword hash in hex editor (这是十六进制编辑器中唯一的密码哈希。)
我用自己的$ 1 $哈希替换了原始哈希,确保固件的总长度没有变化,然后保存并将其写回闪存芯片。
不幸的是,这种方法也失败了。
再次无法登录后,我使用binwalk
提取了修改后的固件,发现密码哈希值没有改变!
我确定十六进制编辑成功,从闪存再次读取的固件也包含我自己的密码哈希。但是以某种方式提取后,系统使用的真实密码哈希值没有改变。
greping for password hashes
($1$4eVOeCTn$RdB5BTDwK8BlSTB49A4hA1
是原始哈希)
我对嵌入式系统不熟悉,但我很好奇。这是由某种压缩引起的吗?
在这种情况下,有什么方法可以完成我想做的事情吗?