资讯专栏INFORMATION COLUMN

使用python找回在SecureCRT中的Linux登入密码

figofuture / 3442人阅读

摘要:在笔记本上的虚拟机中装了一个系统,有一段时间没用,突然要用到时发现,密码已经不记得了。还好之前有用过软件连接过,那么就能轻松地使用找回密码啦。最终效果红框所指的位置就是密码了准备下载安装,并配置系统全局变量。

在笔记本上的虚拟机中装了一个Linux系统,有一段时间没用,突然要用到时发现,密码已经不记得了。
还好之前有用过secureCRT软件连接过Linux,那么就能轻松地使用python找回密码啦。

最终效果

红框所指的位置就是密码了

准备

下载安装python,并配置系统全局变量。这里我用的是python 2.7

python依赖包

下载python解密依赖包:https://pypi.python.org/pypi/...
解压文件,用命令行工具进入解压后的目录,执行下面命令

python setup.py build
python setup.py install

执行如果出现下图这种情况的

还有另一种方法可以安装
到这里下载对应自己环境的版本 http://www.voidspace.org.uk/p...

我下载的版本是PyCrypto 2.6 for Python 2.7 32bit

下载好了直接运行安装

开始找回

找到SecureCRT存储密码的位置

用户名AppDataRoamingVanDykeConfigSessions

或者
软件目录下DataSettingsConfigSessions

目录中能看你的回话配置文件,我的是10.0.0.100.ini

复制下面代码,保存文件到上面的这个目录,起名secureDecode.py

from Crypto.Cipher import Blowfish
import argparse
import re

def decrypt(password) :
    c1 = Blowfish.new("5F B0 45 A2 94 17 D9 16 C6 C6 A2 FF 06 41 82 B7".replace(" ","").decode("hex"), Blowfish.MODE_CBC, "x00"*8)
    c2 = Blowfish.new("24 A6 3D DE 5B D3 B3 82 9C 7E 06 F4 08 16 AA 07".replace(" ","").decode("hex"), Blowfish.MODE_CBC, "x00"*8)
    padded = c1.decrypt(c2.decrypt(password.decode("hex"))[4:-4])
    p = ""
    while padded[:2] != "x00x00" :
        p += padded[:2]
        padded = padded[2:]
    return p.decode("UTF-16")

REGEX_HOSTNAME = re.compile(ur"S:"Hostname"=([^
]*)")
REGEX_PASWORD = re.compile(ur"S:"Password"=u([0-9a-f]+)")
REGEX_PORT = re.compile(ur"D:"[SSH2] Port"=([0-9a-f]{8})")
REGEX_USERNAME = re.compile(ur"S:"Username"=([^
]*)")

def hostname(x) :
    m = REGEX_HOSTNAME.search(x)
    if m :
        return m.group(1)
    return "???"

def password(x) :
    m = REGEX_PASWORD.search(x)
    if m :
        return decrypt(m.group(1))
    return "???"

def port(x) :
    m = REGEX_PORT.search(x)
    if m :
        return "-p %d "%(int(m.group(1), 16))
    return ""

def username(x) :
    m = REGEX_USERNAME.search(x)
    if m :
        return m.group(1) + "@"
    return ""

parser = argparse.ArgumentParser(description="Tool to decrypt SSHv2 passwords in VanDyke Secure CRT session files")
parser.add_argument("files", type=argparse.FileType("r"), nargs="+",
    help="session file(s)")

args = parser.parse_args()

for f in args.files :
    c = f.read().replace("x00", "")
    print f.name
    print "ssh %s%s%s # %s"%(port(c), username(c), hostname(c), password(c))

接着用命令行工具进入该目录,运行下面命令

python secureDecode.py 10.0.0.100.ini

最后成功找回密码

参考文章
找回SecureCRT密码
pycrypto模块安装失败如何解决


如果这对你有帮助,或者能帮你节省一些时间,不如,点个赞吧~

原文地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44903.html

相关文章

  • Linux设置SSH登录(SecureCrt

    摘要:生成公钥和私钥生成公钥有三种方法使用命令使用生成密钥并上传工具创建公钥设置公钥的密码,密码用于以后登录时使用。尝试登录,登陆成功。配置SSH无密码登录需要4步准备工作生成公钥和私钥导入公钥到认证文件更改权限测试准备工作确认本机sshd的配置文件(需要root权限) vi /etc/ssh/sshd_config 1)修改以下内容 RSAAuthentication yes #设置开启使用R...

    Tecode 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<