使用python找回在SecureCRT中的Linux登入密碼

在筆記本上的虛擬機中裝了一個Linux系統,有一段時間沒用,忽然要用到時發現,密碼已經不記得了。
還好以前有用過secureCRT軟件鏈接過Linux,那麼就能輕鬆地使用python找回密碼啦。html

最終效果

紅框所指的位置就是密碼了
python

準備

下載安裝python,並配置系統全局變量。這裏我用的是python 2.7web

python依賴包

下載python解密依賴包:https://pypi.python.org/pypi/...
解壓文件,用命令行工具進入解壓後的目錄,執行下面命令shell

python setup.py build
python setup.py install

執行若是出現下圖這種狀況的

還有另外一種方法能夠安裝
到這裏下載對應本身環境的版本 http://www.voidspace.org.uk/p...session

我下載的版本是 PyCrypto 2.6 for Python 2.7 32bit

下載好了直接運行安裝ssh

開始找回

找到SecureCRT存儲密碼的位置工具

用戶名\AppData\Roaming\VanDyke\ConfigSessions\ui

或者
軟件目錄下\Data\Settings\Config\Sessions\spa

目錄中能看你的回話配置文件,個人是 10.0.0.100.ini

複製下面代碼,保存文件到上面的這個目錄,起名secureDecode.py.net

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

接着用命令行工具進入該目錄,運行下面命令

python secureDecode.py 10.0.0.100.ini

最後成功找回密碼

參考文章
找回SecureCRT密碼
pycrypto模塊安裝失敗如何解決


若是這對你有幫助,或者能幫你節省一些時間,不如,點個贊吧~

原文地址

相關文章
相關標籤/搜索