第一次发布,请耐心等待。

好几天以来,我一直在试图绕过我的ISP运气不佳的ISP已将密码添加到其远程CLI的密码。

我有一个从ISP购买的Zyxel C1100Z DSL调制解调器,并且我一直在尝试破坏其最新固件,以绕过他们实现的新Shell密码功能。过去的固件没有此功能,仅允许您通过ssh / telnet登录,然后键入“ sh”以放入简单的Busybox Shell。

现在,使用最新固件,SSH似乎已严重损坏/混乱,就像通过telnet登录时大多数CLI命令一样(Cat,echo,netstat等不起作用)

由于这是一项新功能,我猜想密码是


硬编码为CLI二进制文件
从配置I中提取忽略了
从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/来反编译二进制文件,但是已经' t让我走得很远。

我将提取的固件根托管在git rep中o https://github.com/bwbryant1/CTL_C110Z

我不是要别人为我做所有工作,主要是一些指导,因为这是我的第一个尝试-工程。是的,我看过以前的教程,但是这些固件都不适合我的固件,而且碰到了墙。

如何为外壳添加密码?我知道您可以使用inittab,但这似乎不是他们在做什么。我不知道从何处调用shell密码提示符,但我确实知道它的文本存储在/lib/private/libcms_cli.so中。但是我不确定这是什么。

谢谢您

进行编辑以澄清问题:我具有ssh和telnet访问权限,但它们不授予您root-fs的访问权限。它使您陷入功能有限的chroot环境中。但是,通过键入“ sh”,系统会提示您“请输入shell密码:”,它不需要输入用户名,只需输入密码

评论

布兰登,如果您知道外壳密码,请张贴相同的密码。我目前无法在Zyxel C2100Z调制解调器中调用外壳,该外壳由CenturyLink独家分发(据我所知)

尝试主管:zyad1234

使用我的个人用户名/密码组合登录到调制解调器的控制台(通过SSH)后,我尝试安装外壳。我尝试了以下密码:超级用户:zyad1234和zyad1234。没有人工作。然后,我退出控制台,尝试使用用户名超级用户和密码zyad1234登录,但没有任何乐趣。然后,我尝试使用用户名admin和密码1234登录。然后我收到消息连接被192.168.0.1关闭。现在,即使有我的个人用户名/密码,我也无法登录...

我认为从我了解到的情况来看,在3-4次失败的登录后会有15分钟的超时时间

是的,布兰登,我在等待了两个2个小时后尝试登录,然后重新登录。尽管如此,仍然无法弄清shell密码...

#1 楼

密码似乎是从/ etc / profile动态生成的


...
#生成登录文件
echo“ supervisor:3Gnc.CJE1790M:0:0:0 :administrator:/:/ bin / sh“> / var / passwd
echo” root :: 0:root,supervisor,support,user“> / var / group
...


您将需要尝试使用开膛手约翰之类的程序破解DES哈希,或将其替换为另一个已知的密码或不作任何更改。

评论


cimarron,感谢您对此进行调查。我确实破解了该密码,但是很遗憾,它给了我supervisor:zyad1234,它不接受ssh或telnet上的此用户/密码组合。我仍然没有重置为出厂设置并尝试过凭据。可能有一些配置被覆盖或不建议使用

–布兰登·布莱恩特
17年6月17日在5:47

似乎在/etc/miniboot.sh中还有另一个生成的:echo'admin:tP2w1wFvu8GXo:0:0:Administrator:/:/ bin / sh'> / var / passwd,它只是admin的用户名和密码1234。您已经尝试过那个吗?

– Cimarron
17年6月17日在7:10



是的我已经破解了所有纯文本格式,但是不幸的是,它们都无法正常工作。谢谢!

–布兰登·布莱恩特
17年6月17日23:56

我现在看到你的问题。抱歉,我认为您的问题出在登录中,但是您的修改已清除它。确实看起来libcms_cli.so负责附加的密码提示。我做了一些逆转,发现它似乎只是对您输入的密码和从某处获得的密码进行了明文密码比较。我并没有花太多时间试图弄清楚它,但是它来自一些cmsobject。无论如何,您应该能够将地址0x617c修补到nob指令(00 00 00 00)之前的bnez v0,0x6194(14 40 00 05)之前,这应该绕过字符串不相等比较

– Cimarron
17年6月18日在7:52

太棒了,谢谢你!我相信自己走在正确的道路上,我只是不知道如何开始解码MIPS程序集。现在,只需将该文件上传到只读文件系统即可。我在GPL请求下从zyxel请求了源代码,一旦获得,我应该(希望)能够进行自己的固件更新。同时,固件模块套件FMK不支持提取然后重建jffs2映像,因此我将不得不自己尝试使用mkfs.jffs2命令。再次感谢您,这对我有很大帮助

–布兰登·布莱恩特
17年6月18日在9:14