使用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的项目

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Django 运行访问
Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header: DisallowedHost at / Invalid HTTP_HOST header: '10.211.55.6:8000'. You may need to add u'10.211.55.6' to ALLOWED_HOSTS. Request Method:GET Request URL:http://10.211.55.6:8000/ Django Version:1.10.4 Exception Type:DisallowedHost Exception Value:Invalid HTTP_HOST header: '10.211.55.6:8000'. You may need to add u'10.211.55.6' to ALLOWED_HOSTS. Exception Location:/usr/lib/python2.7/site-packages/django/http/request.py in get_host, line 1...
-
下一篇
程序员编程,你的练习是不是有效的?
对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即我的Idea列表上的一个个酷炫的项目,先满足自己再说。 理论驱动的项目。这一类的项目会比较少,因为我们需要牵强地驱动出这样的项目,然后以理论的方式驱动它。 兴趣结合理论型。有一个长长的Idea列表,难免有些时间会和将要学习的理论有很大的交集。这种的练习效果是最好的。 整合成文章、电子书。这一步主要是为了分享、巩固知识点、讨论。 简单地来说,就是: 刻意的理论练习 兴趣实践 两种不同的走向,上面的第三点和第四点,算是获得一些更好的效果。开始之前,让我们再次讨论一下情绪周期的问题。 编程与情绪周期 如果你每天都有很多可支配的自由时间时,你也会观察出情绪周期这件事。 所谓“情绪周期”,是指一个人的情绪高潮和低潮的交替过程所经历的时间。 这种周期看上去就好像是一图所示,但是总体上好像会长一点。 这一点在我的GitHub上看起来就有点明显了,至少它是一年的一个周期: 对于我来说,我会交替写代码和写博客、电子书。因为它以一定的规律在迭代着: 适合写大量代码的日子 适合学习理论的日子 适合玩游戏《文明》、看电影、睡觉的日子。一般...
相关文章
文章评论
共有0条评论来说两句吧...