是 root 但不知道密码。替换 /bin/ 中的二进制文件以绕过限制

是 root 但不知道密码。替换 /bin/ 中的二进制文件以绕过限制

我有一个活跃的根帐户,但我不知道我的密码。

为了能够更改我的密码,甚至创建其他用户(使用该工具passwd),我需要知道我的密码。这就产生了一个问题。但由于我是 root - 我是否可以替换/bin/目录中的任意二进制文件?只需修改passwd源代码,编译它,用新的替换原来的即可。真有这么简单吗?有什么注意事项吗?

我的测试系统是:FreeBSD 11.0+Ubuntu 18.04

答案1

我见过的大多数 Linux 都已配置为passwd不需要root旧密码:

root@xxx ~# passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

即使passwd确实要求,您也可以尝试chpasswd, 或手动编辑/etc/passwd/etc/shadow(密码哈希是第二个字段,两个冒号之间的长字符简介)只是您需要先计算哈希,openssl只是一个执行此操作的工具:

$ echo foobar | openssl passwd -1 -stdin
$1$G/nr44th$wn16q7ITSvfrNq4amDfzn1

(您可能不应该真正使用MD5基于 - 的$1$哈希值,但这并不重要,因为至少在将哈希值重置为已知值之后,您可以用来passwd更改它。)

相关内容