如何解码/etc/shadow 中的哈希密码

Joe*_*moe 7 password

我不太了解 Ubuntu,但是 Ubuntu 能够解码这些东西吗?还是我需要安装一些程序?如果没有,我如何使用 Ubuntu 读取文件?

jac*_*rdy 11

简而言之——你不能!

/etc/shadow存储密码的散列版本。出于所有意图和目的,这是不可能恢复的,因为散列是一种单向操作。

这可以阻止恶意人员读取系统上用户的密码。


小智 9

您需要安装 john the reaper。

$ apt install john
Run Code Online (Sandbox Code Playgroud)

然后只有2个命令

$ unshadow /etc/passwd /etc/shadow > mypasswd.txt 
$ john mypasswd.txt
Run Code Online (Sandbox Code Playgroud)

完成后(4 个数字的密码在 1-5 分钟内),您将看到您需要的密码。

$ john --show mypasswd.txt
Run Code Online (Sandbox Code Playgroud)


Joh*_*ith 5

让我们简单点:。密码不是用来解密的,有什么意义?没有技术,没有实用程序可以让您做这样的事情。这些密码背后是巨大的算法,只能单向。

但是,您可以通过执行以下操作来读取文件(并查看加密的密码):

sudo cat /etc/shadow
Run Code Online (Sandbox Code Playgroud)

你需要成为一个sudoer,或者root自己(在这种情况下,sudo是没用的)


Alv*_*var 5

这是交易。你不能解密一个散列的密码,这会破坏散列的意义。

散列在基本术语中起作用,即您获取一个随机字符串并将其与密码混合(使用某种算法),使其变得完全不可读。然后将此密码 + 哈希存储在数据库中。

那你怎么知道正确的密码是什么?好吧,您输入密码并采用相同的哈希字符串,然后您将获得相同的哈希值。然后只需比较这些哈希值,您就知道密码是否正确。

您可以找出用户使用的密码,然后您需要知道使用什么哈希字符串对其进行哈希处理,并且您还需要知道使用了什么哈希算法。然后最终的解决方案仍然是暴力破解密码(尝试每个组合)然后对其进行哈希处理,看看它是否与存储在数据库中的哈希匹配。所以作为一个结论,你可以“解密”一个散列的密码,但这并不容易。

关于该主题的有用链接:

  • @mtk 如果您知道散列和散列密码,那么您可以暴力破解。如果您尝试足够多的密码,您将在一段时间后获得正确的哈希值。一旦您的服务器被黑客入侵,哈希只是一种减慢进程的方法。您仍然需要更改泄露的密码。 (2认同)