正在加载今日诗词....

工作丨技术

当前位置:首页 > 文章列表 > 工作丨技术

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

来源:http://www.javashuo.com/article/p-aeqshbcr-ha.html 在笔记本上的虚拟机中装了一个Linux系统,有一段时间没用,忽然要用到时发现...

来源:http://www.javashuo.com/article/p-aeqshbcr-ha.html


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

最终效果

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

准备

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

python依赖包

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

python setup.py build
python setup.py install

执行若是出现下图这种状况的

还有另外一种方法能够安装
到这里下载对应本身环境的版本 http://www.voidspace.org.uk/p...session

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

下载好了直接运行安装ssh

开始找回

找到SecureCRT存储密码的位置工具

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

或者
软件目录下\Data\Settings\Config\Sessions\spa

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

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

from Crypto.Cipher import Blowfishimport argparseimport redef 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

最后成功找回密码


TAG: 系统

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

评论排行榜