前言:
而今同学们对“python暴力破解ssh”大约比较关注,大家都需要知道一些“python暴力破解ssh”的相关资讯。那么小编在网摘上搜集了一些对于“python暴力破解ssh””的相关资讯,希望兄弟们能喜欢,兄弟们快快来了解一下吧!Python3解密SecureCRT会话密码
SecureCRT有一个Sessions目录,存放会话文件(ini格式的,包含输入的加密密码),我们的目的是对密码解密。
因为有一些服务器的密码并没有拿到(密码申请需要进过各种流程,为了偷懒就直接要了一个ini文件的会话),虽然直接可以登录,但没有密码想换一个工具登录是不行的,所以有了下面的python脚本。
环境:
win10 + python3.7 (64bit)
第三方模块:
pip install pycryptodome
脚本:
阅读(带格式)
方便复制版:
securecrt_decrypt.py:
# -*- coding: utf-8 -*-
from Crypto.Cipher import Blowfish
def decrypt(password) :
c1 = Blowfish.new(bytes.fromhex('5F B0 45 A2 94 17 D9 16 C6 C6 A2 FF 06 41 82 B7'.replace(' ','')), Blowfish.MODE_CBC, b'\x00'*8)
c2 = Blowfish.new(bytes.fromhex('24 A6 3D DE 5B D3 B3 82 9C 7E 06 F4 08 16 AA 07'.replace(' ','')), Blowfish.MODE_CBC, b'\x00'*8)
padded = c1.decrypt(c2.decrypt(bytes.fromhex(password))[4:-4])
p = b''
while padded[:2] != b'\x00\x00' :
p += padded[:2]
padded = padded[2:]
return p.decode('utf-16')
if __name__ == '__main__':
print(decrypt('d46174594b91ebcfe5f6f1a1a7a9ce08f8a8f4961033a8e3'));
print(decrypt('8053982e93770599e949ba5ba3f34f08b15d77b6ddf6a88974a6369cb3b8955b586c39f4a2912dfda2de053f83682fcc'));
特点:支持python3, 网络上提供的脚本大部分都是python2的
外篇:
使用python3改造.网上的python2的脚本
脚本:
阅读(带格式)
方便复制版:
securecrt_decrypt_util.py:
# encoding=utf-8
from Crypto.Cipher import Blowfish
import argparse
import re
def decrypt(password) :
c1 = Blowfish.new(bytes.fromhex('5F B0 45 A2 94 17 D9 16 C6 C6 A2 FF 06 41 82 B7'.replace(' ','')), Blowfish.MODE_CBC, b'\x00'*8)
c2 = Blowfish.new(bytes.fromhex('24 A6 3D DE 5B D3 B3 82 9C 7E 06 F4 08 16 AA 07'.replace(' ','')), Blowfish.MODE_CBC, b'\x00'*8)
padded = c1.decrypt(c2.decrypt(bytes.fromhex(password))[4:-4])
p = b''
while padded[:2] != b'\x00\x00' :
p += padded[:2]
padded = padded[2:]
return p.decode('utf-16')
re_hostname = re.compile('S:"Hostname"=([^\r\n]*)')
re_port = re.compile('D:"\[SSH2\] (Port|端口)"=([0-9a-f]{8})')
re_username = re.compile('S:"Username"=([^\r\n]*)')
re_password = re.compile('S:"Password"=u([0-9a-f]+)')
def hostname(con) :
m = re_hostname.search(con)
if m :
return m.group(1)
return '???'
def port(con) :
m = re_port.search(con)
if m :
return '-p %d '%(int(m.group(2), 16))
return ''
def username(con) :
m = re_username.search(con)
if m :
return m.group(1) + '@'
return ''
def password(con) :
m = re_password.search(con)
if m :
return decrypt(m.group(1))
return '???'
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Tool to decrypt SSHv2 passwords in VanDyke Secure CRT session files')
parser.add_argument('files', type=argparse.FileType('r', encoding='utf-8'), 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 securecrt_decrypt_util.py 192.168.10.25.ini
结果:
192.168.10.25.ini
ssh -p 22 yang@192.168.10.25 # rlX6Df3MC*ZB0ew
标签: #python暴力破解ssh