仅从编译的加密脚本中恢复加密密码是否容易?

仅从编译的加密脚本中恢复加密密码是否容易?

<password>编译脚本中的加密密码可以script.x 轻松恢复吗?

script.x例如,源版本是

# cat script
openssl enc -des3 -in myfile -out myfile.des -k <password>

script.x并获得编译版本

# shc -f script

<password>如果我不进行script.x长时间的暴力破解,我可以恢复吗?

答案1

就我个人而言,我不知道 - 我的意见是这很容易。

我不会尝试script通过使用暴力来“解密”已编译的脚本来进行逆向工程 - 相反,我会尝试通过对“sh”、“bash”执行的命令进行审核来发现并仅检查命令参数。

最坏的情况:/usr/bin/ps会/可能显示密码和/或 /proc/*/"something" - 不太了解 /proc 来指定包含命令参数的文件

答案2

是的,这非常简单,即使您对编译格式一无所知。您只需在调试器中运行脚本并在它使用密码进行某些操作时进行捕获。作为一般原则,不可能隐藏在其他人的计算机上使用的密码。如果他们可以运行使用密码的软件,那么他们就可以看到密码。

在这种情况下,即使这样也太过分了:由于密码被传递给openssl命令,您所需要做的就是为记录其参数放置一个包装器,或者在进程运行时openssl观察该进程。openssl

此外,很可能可以通过简单的暴力从加密文件中恢复密码,这将不是应该有多长就有多长。openssl enc从密码生成加密密钥方面非常糟糕:这应该很慢(请参阅可以以纯文本形式显示 Metasploitable (Linux) 密码吗?,如何安全地散列密码?),但openssl enc速度很快,更糟糕的是,你甚至没有正确使用它:你没有使用盐。参见如何随着捕获逐渐加密tshark输出文件?该怎么做。

警告一句:从您最近的问题来看,您在安全方面似乎超出了自己的能力范围。我强烈建议您坚持简单的事情并尽可能保留系统的默认设置。你尝试使用你不理解的工具来进行不必要的改进往往会让事情变得更糟。

相关内容