第一次发布所以请多多包涵。
几天来,我一直试图绕过我的 ISP 添加到他们远程 CLI 的密码,但没有成功。
我有一个从 ISP 购买的 Zyxel C1100Z DSL 调制解调器,我一直在尝试破解他们的最新固件,以绕过他们实施的新 shell 密码功能。过去的固件没有这个功能,只是允许你通过 ssh/telnet 登录,然后输入“sh”进入一个简单的 Busybox shell。
现在使用最新的固件,SSH 似乎严重损坏/错误,当您通过 telnet 登录时,大多数 CLI 命令也是如此(Cat、echo、netstat 等。不起作用)
由于这是一个新功能,我猜密码是
- 硬编码到 CLI 二进制文件中
- 从我忽略的配置中提取
- 从 ISP 远程推送
到目前为止,我已经使用 binwalk 提取了 root-fs,并且我已经在每个配置中搜索了很多小时,无休止地运行字符串,我什至尝试使用 QEMU 模拟 MIPS。
在其中一个二进制文件上运行文件给了我:
ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, corrupted section header size
我安装了旧固件,希望了解系统的工作原理,并认为其中一些信息可能有用:
system type : 963168MBV_17A
processor : 0
cpu model : Broadcom4350 V8.0
BogoMIPS : 398.33
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : no
hardware watchpoint : no
ASEs implemented :
shadow register sets : 1
core : 0
VCED exceptions : not available
VCEI exceptions : not available
unaligned exceptions : 60561
我已经开始使用https://retdec.com/decompilation/反编译二进制文件,但这并没有让我走得很远。
我已经在https://github.com/bwbryant1/CTL_C110Z的 git repo 中托管了提取的固件根目录
我不是要求某人为我完成所有工作,主要只是一些指导,因为这是我第一次尝试逆向工程。是的,我看过过去的教程,但没有一个特别适合我的固件,而且我遇到了砖墙。
如何向 shell 添加密码?我知道您可以使用 inittab,但似乎这不是他们正在做的。我不知道从哪里调用 shell 密码提示,但我知道它的文本存储在 /lib/private/libcms_cli.so 中。但我不确定这是什么。
谢谢
编辑以澄清:我有 ssh 和 telnet 访问权限,但它们不允许您访问 root-fs。它会将您带入一种功能有限的 chroot 环境。但是,通过输入“sh”,系统会提示您“请输入 shell 密码:”并且它不要求输入用户名,只要求通过