使用python解密SecureCRT上保存的密码

简介: 使用python解密SecureCRT上保存的密码

一、系统环境

系统:CentOS Linux release 7.5.1804 (Core) 

系统本身自带:python-2.7.5-69.el7_5.x86_64

另外安装:python2-crypto-2.6.1-15.el7.x86_64

yum install pycrypto


二、用法:

python Decrypt.py [filename...] 


1、使用vi编辑器创建Decrypt.py文件,写入源代码。

2、其中[filename...] 指的是ini文件,位于%APPDATA%\VanDyke\Config\Sessions\sessionname.ini

3、执行命令,即可查看到主机IP、账户、密码信息。


源代码:


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))


代码来源: GitHub上gitPoc32的项目

目录
相关文章
|
30天前
|
数据安全/隐私保护 Python
1178: 密码翻译(python)
1178: 密码翻译(python)
|
30天前
|
存储 算法 安全
Python 密码破解指南:20~24
Python 密码破解指南:20~24
133 0
|
30天前
|
存储 Shell 数据安全/隐私保护
Python 密码破解指南:15~19
Python 密码破解指南:15~19
201 0
|
9天前
|
数据安全/隐私保护 Python
【Python 训练营】N_1 验证密码
【Python 训练营】N_1 验证密码
|
9天前
|
数据库 数据安全/隐私保护 Python
Python 生成批量随机密码
Python 生成批量随机密码
13 4
|
30天前
|
存储 安全 数据库
自动化密码填充:使用Python提高日常工作效率
自动化密码填充:使用Python提高日常工作效率
33 0
|
30天前
|
人工智能 安全 数据安全/隐私保护
Python中多种生成随机密码超实用实例
Python中多种生成随机密码超实用实例
20 0
|
30天前
|
存储 数据安全/隐私保护 Python
python批量压缩文件并生成解压密码
该教程指导安装Python库`py7zr`以处理7z压缩文件。接着,提供了一个Python脚本,该脚本遍历指定目录,对每个文件创建加密的7z压缩包,并为每个文件生成独特密码,密码存储在文本文件中。要运行脚本,将其保存为`.py`文件并在命令行使用`python`命令执行。注意,路径需根据操作系统调整,且应使用原始字符串避免`\`的转义问题。
23 0
|
30天前
|
安全 数据安全/隐私保护 Python
292: 程序设计C 实验五 题目三 设计密码(python)
292: 程序设计C 实验五 题目三 设计密码(python)
|
30天前
|
存储 安全 算法
Python如何在打印日志时隐藏明文密码?
Python如何在打印日志时隐藏明文密码?
115 0