找回SecureCRT密码

举报
清雨小竹 发表于 2022/09/25 00:47:40 2022/09/25
【摘要】 使用 先看后面的安装,Python脚本保存为SecureCRTDecrypt.py 用法python SecureCRTDecrypt.py [filename...] 例子 [@bx_5_219 /tmp]# python SecureCRTDecrypt.py 10.10.123.123.ini 10.10.123.123....

使用

先看后面的安装,Python脚本保存为SecureCRTDecrypt.py
用法
python SecureCRTDecrypt.py [filename...]
例子


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

依赖包

安装解密依赖包pycrypto
下载


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

解压安装


  
  1. tar -zxvf pycrypto-2.6.1.tar.gz
  2. cd pycrtyto-2.6.1
  3. python setup.py build
  4. python setup.py install

密文解密程序

保存为SecureCRTDecrypt.py


  
  1. from Crypto.Cipher import Blowfish
  2. import argparse
  3. import re
  4. def decrypt(password) :
  5. 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)
  6. 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)
  7. padded = c1.decrypt(c2.decrypt(password.decode('hex'))[4:-4])
  8. p = ''
  9. while padded[:2] != '\x00\x00' :
  10. p += padded[:2]
  11. padded = padded[2:]
  12. return p.decode('UTF-16')
  13. REGEX_HOSTNAME = re.compile(ur'S:"Hostname"=([^\r\n]*)')
  14. REGEX_PASWORD = re.compile(ur'S:"Password"=u([0-9a-f]+)')
  15. REGEX_PORT = re.compile(ur'D:"\[SSH2\] Port"=([0-9a-f]{8})')
  16. REGEX_USERNAME = re.compile(ur'S:"Username"=([^\r\n]*)')
  17. def hostname(x) :
  18. m = REGEX_HOSTNAME.search(x)
  19. if m :
  20. return m.group(1)
  21. return '???'
  22. def password(x) :
  23. m = REGEX_PASWORD.search(x)
  24. if m :
  25. return decrypt(m.group(1))
  26. return '???'
  27. def port(x) :
  28. m = REGEX_PORT.search(x)
  29. if m :
  30. return '-p %d '%(int(m.group(1), 16))
  31. return ''
  32. def username(x) :
  33. m = REGEX_USERNAME.search(x)
  34. if m :
  35. return m.group(1) + '@'
  36. return ''
  37. parser = argparse.ArgumentParser(description='Tool to decrypt SSHv2 passwords in VanDyke Secure CRT session files')
  38. parser.add_argument('files', type=argparse.FileType('r'), nargs='+',
  39. help='session file(s)')
  40. args = parser.parse_args()
  41. for f in args.files :
  42. c = f.read().replace('\x00', '')
  43. print f.name
  44. print "ssh %s%s%s # %s"%(port(c), username(c), hostname(c), password(c))

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/119205517

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。