找回SecureCRT密码

简介: 找回SecureCRT密码

使用

先看后面的安装,Python脚本保存为SecureCRTDecrypt.py

用法

python SecureCRTDecrypt.py [filename...]

例子

[@bx_5_219 /tmp]# python SecureCRTDecrypt.py 10.10.123.123.ini   
10.10.123.123.ini
ssh root@10.10.70.30 # I'mpassword

依赖包

安装解密依赖包pycrypto

下载

https://pypi.python.org/pypi/pycrypto
wget https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz

解压安装

tar -zxvf pycrypto-2.6.1.tar.gz
cd pycrtyto-2.6.1
python setup.py build
python setup.py install

密文解密程序

保存为SecureCRTDecrypt.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))
相关文章
|
Linux 数据安全/隐私保护 虚拟化
Kali找回WiFi密码
Kali找回WiFi密码
79 0
|
算法 Linux 数据安全/隐私保护
|
Linux 数据安全/隐私保护
新买阿里云linux服务器如何设置账号密码xshell远程登陆
官方文档: 阿里云安全组应用案例 虽然阿里云上有文档,但是作为小白,可能多多少少还是看不懂,如果已经看了但是又看不懂的话,可以继续看这篇文章。
1771 1
新买阿里云linux服务器如何设置账号密码xshell远程登陆
|
网络安全 数据安全/隐私保护 Windows
PuTTY登录时自动输入密码解决办法
Windows系统上最好用且默认标准的ssh工具是PuTTY。但是每次登录要输入一长串密码非常不爽。尤其是每次要打开若干session(通常最少四个,两个tunnel,一个jupyter服务,一个terminal)。网上一搜,解决方法若干,但是:
|
数据安全/隐私保护 Python
|
Linux 数据安全/隐私保护
阿里云Linux服务器登录密码忘记了怎么办?
我们在购买阿里云 Linux 服务器的时候,关于服务器的登录密码一般有两个选项,一个是自定义密码,一个是创建后设置,默认是创建后设置,这个选项的意思就是成功购买服务器后登录后台直接重置实例密码即可。 如果选择自定义密码,则可以当场设置服务器的登录密码,这样在成功购买服务器之后就不需要到后台去重置密码。
8510 0
|
安全 Linux 数据安全/隐私保护