测试 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)使用详解及实战