有没有可用于解密Linux影子文件的程序或脚本?
答案1
Linux 系统上的密码没有加密,而是经过哈希处理,这是一个巨大的差异。
根据定义不可能反转哈希函数。欲了解更多信息,请参阅哈希维基百科条目。
使用哪个哈希函数取决于您的系统配置。MD5和河豚鱼是使用哈希函数的常见示例。
因此,用户的“真实”密码永远不会存储在系统上。
如果您登录,您输入的密码字符串将被散列并根据您的 /etc/shadow 文件进行检查。如果匹配,则显然您输入了正确的密码。
无论如何,仍然存在一些针对密码哈希的攻击向量。您可以保留常用密码的字典并自动尝试它们。互联网上有很多词典。另一种方法是尝试所有可能的字符组合,这将消耗大量时间。这称为暴力攻击。
彩虹桌是针对哈希的另一个很好的攻击向量。这个概念背后的想法是简单地预先计算所有可能的哈希值,然后在表中查找哈希值以找到相应的密码。有几个创建此类表的分布式计算项目,大小因所使用的字符而异,大多为数TB。
为了最大限度地降低此类查找表的风险,Unix/Linux 中的常见做法和默认行为是添加所谓的“盐” 到密码哈希值。您对密码进行哈希处理,向哈希值添加随机盐值,然后再次哈希这个新字符串。您需要保存新哈希值和盐,以便能够检查输入的值是否是正确的密码。这种方法的巨大优点是,您必须为每个独特的盐创建新的查找表。
对不同操作系统的用户密码执行字典或暴力攻击的流行工具是开膛手约翰(或 JTR)。请参阅项目主页更多细节:
John the Ripper 是一款快速密码破解程序,目前可用于多种版本的 Unix、Windows、DOS、BeOS 和 OpenVMS。其主要目的是检测弱 Unix 密码。
答案2
您只能通过暴力破解影子文件:它包含密码的哈希值,因此您唯一的机会是猜测密码,计算哈希值并查看哈希值是否相同。看维基百科有关哈希生成的详细信息。
答案3
正如其他人所说,您无法真正解密影子文件。
您唯一可以尝试的就是使用类似的工具暴力猜测密码开膛手约翰。这可能会成功,也可能不会成功,而且几乎肯定会花费很长时间。