![使用 usermod -p 恢复纯文本密码](https://linux22.com/image/624724/%E4%BD%BF%E7%94%A8%20usermod%20-p%20%E6%81%A2%E5%A4%8D%E7%BA%AF%E6%96%87%E6%9C%AC%E5%AF%86%E7%A0%81.png)
我的小办公室的服务器昨天和今天都遭到了攻击,显然黑客通过弱密码获得了访问权限(也就是说,我完全有责任)。我一注意到这一点,就从物理上断开了服务器与互联网的连接,并更改了所有用户密码(使用 kpasswd)和 root 密码(使用 usermod -p)。
我没有网络可以咨询,而且有点紧张,这就是为什么我输入了纯文本密码而不是我应该输入的加密哈希值。
有人知道我如何“计算”未散列的明文吗?
答案1
首先,从头开始重新安装服务器是一个很好的观点。
如果您已在 /etc/shadow 中设置了加密的 root 密码,则没有有效的方法来猜测它,因为它是使用加密哈希函数加密的。如果您将其设置为某个纯文本值,则密码将被视为无效,并且无论如何都不会被接受,因为影子数据库中的密码以特定格式存储。
如果你有物理访问服务器的权限,你可以通过绕过内核选项重新启动单用户模式single
(或init=/bin/bash
对于 Ubuntu),有一个教程。然后您可以使用更改您的 root 密码passwd
并重新启动系统以照常访问。
良好的做法是避免通过 ssh 进行 root 访问,并使用 sudo 获得超级用户权限。您也可以禁用 OpenSSH 的密码验证,然后切换到公钥认证。
更新:我没有足够的声誉来回答您的评论,因此更新答案:您可以通过更改引导加载程序中的内核引导参数来引导到单用户模式。除非您为 Grub 设置了密码,否则它不需要密码。请查看我上面提到的教程以执行单用户引导。