测试 SSH 私钥密码(暴力破解)

Posted

技术标签:

【中文标题】测试 SSH 私钥密码(暴力破解)【英文标题】:Test SSH private key passphrase (brute-force) 【发布时间】:2020-02-12 15:20:35 【问题描述】:

我在编写 Python 脚本时遇到问题,该脚本对/.ssh/id_rsa 文件进行暴力破解 SSH 私钥密码短语。我正在使用ssh-add 命令询问密码,直到您输入为止。

但脚本失败并出现错误:

ssh_askpass: exec(/usr/bin/ssh-askpass): 没有那个文件或目录

我不明白为什么。

使用.Popen.call 等尝试了所有子流程模块的变体。但我认为最适合我的情况是:

import subprocess

p = subprocess.Popen('ssh-add id_rsa', stdin=subprocess.PIPE, text=True, shell=True)
p.stdin.write(str('password'))

预期的密码请求,例如"Enter passphrase for id_rsa"

【问题讨论】:

【参考方案1】:

我建议你使用 Paramiko,而不是使用外部控制台工具。

使用RSAKey class (or DSSKey, ECDSAKey, Ed25519Key):

key = paramiko.RSAKey.from_private_key_file(filename, passphrase)

如果密码错误,则会引发异常。

【讨论】:

以上是关于测试 SSH 私钥密码(暴力破解)的主要内容,如果未能解决你的问题,请参考以下文章

hydra暴力破解SSH密码

渗透测试密码暴力破解工具——九头蛇(hydra)使用详解及实战

渗透测试密码暴力破解工具——九头蛇(hydra)使用详解及实战

Linux 利用hosts.deny 防止暴力破解ssh

Linux SSH密码暴力破解技术及攻击实战

linux 防止ssh暴力破解密码