python调用crt自动登录_使用python找回在SecureCRT中的Linux登入密码

当忘记Linux系统的密码时,这篇博客提供了一种解决方案,通过使用Python和SecureCRT的保存密码来恢复。首先,下载并安装Python及解密依赖包PyCrypto,然后找到SecureCRT的会话配置文件,利用提供的Python脚本secureDecode.py进行解密。通过运行此脚本,可以从SecureCRT的配置文件中提取并解密密码,从而找回Linux登录密码。
摘要由CSDN通过智能技术生成

在笔记本上的虚拟机中装了一个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存储密码的位置

用户名\AppData\Roaming\VanDyke\ConfigSessions\

或者

软件目录下\Data\Settings\Config\Sessions\

目录中能看你的回话配置文件,我的是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] != '\x00\x00' :

p += padded[:2]

padded = padded[2:]

return p.decode('UTF-16')

REGEX_HOSTNAME = re.compile(ur'S:"Hostname"=([^\r\n]*)')

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"=([^\r\n]*)')

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

最后成功找回密码

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值