<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    編寫 Metasploit 模塊獲取 SecureCRT 明文密碼

    Andrew2020-10-03 19:50:37

    聲明

    由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,雷神眾測以及文章作者不為此承擔任何責任。

    雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。

    No.1 前言

    最后的功能是支持7.3.3版本之前和之后的兩種解密算法,并且支持Passphrase解密(前提是你要知道用戶設置的Passphrase),這次主要學習了一個河豚解密算法的編寫。舊版本的加解密算法正是使用了河豚算法,這個算法比較容易恢復明文密碼,所以新版本添加了Passphrase的SHA256數據摘要作為AES-256-CBC算法的Key,增加了解密難度,和Xshell的主密碼一樣。

    No.2 配置文件

    安裝完SecureCRT后,設置主密碼,創建一個新的連接,點開屬性設置保存密碼,就會在當前用戶的%AppData%\Roaming\VanDyke\Config\Sessions下創建一個以連接名稱為文件名的會話配置文件,為了保險起見,我還是通過讀取注冊表’HKEY_CURRENT_USER\Software\VanDyke\SecureCRT’獲取session配置文件的保存目錄,有價值的信息:用戶名,登錄密碼。有時候還會有腳本登錄密碼,主機地址和端口等等。

    因為配置文件不是一個可序列化的文件,所以無法轉化為Ruby對象,這里就選擇使用則正表達式去匹配關鍵信息

    protocol = Regexp.compile('S:"Protocol Name"=([^\r\n]*)').match(file) ? Regexp.last_match(1) : nil

    經過上面的正則就可以匹配到兩個版本的關鍵信息,并且通過對應的解密算法解密,最終入庫并呈現給攻擊者。

    No.3 算法實現

    現有的解密程序是Python語言編寫的,各個語言之間的加解密和編碼可能不太一樣,轉為Ruby語言開發還是遇到了一些有趣的地方。

    首先Python語言可以在字符串的前面添加指定字母表示不同的編碼格式,例如:

    self.IV = b'\x00' * Blowfish.block_size

    在Ruby中,用雙引號括起來的就是原始的數據,不需要添加修飾,一定要有雙引號才會轉義,單引號括著什么就是什么,并不是hex數據了。

    key1 = "\x24\xA6\x3D\xDE\x5B\xD3\xB3\x82\x9C\x7E\x06\xF4\x08\x16\xAA\x07"

    因為雙引號和單引號括的根本就不是同一個東西。

    irb(main):001:0> "\x24\xA6\x3D\xDE\x5B\xD3\xB3\x82\x9C\x7E\x06\xF4\x08\x16\xAA\x07".unpack('H*')

    Python中的bytes.fromhex(Ciphertext)方法實現的是將ciphertext的hex轉換為bytes類型,Ruby實現的方法為:[ciphertext].pack(‘H*’)

    舊版本解密

    河豚解密函數,非常幸運的是OpenSSL庫中自帶了這個算法,在使用中注意實例化的模式是bf-cbc,CBC模式。

    def blowfish_decrypt(secret_key, text)

    按照Python語言中的解密流程,轉為Ruby語言的代碼如下,要注意的是:Ruby與Python的切片的第二個參數的含義是不一樣的,Ruby可以使用.step(2)設置循環的步長為2,剩下的都是編碼問題了。

    def securecrt_crypto(ciphertext)  

    新版本解密

    bytes類型轉int,按照小端順序的Python實現代碼:int.from_bytes(padded_plain_bytes[0:4], ‘little’),轉為Ruby實現為:padded_plain_bytes[0,4].unpack1(‘l’)。

    def securecrt_crypto_v2(ciphertext)

    No.4 使用演示

    首先獲得一個meterpreter會話,執行run post/windows/gather/credentials/securecrt PASSPHRASE=123456,后面的PASSPHRASE參數為主密碼。

    No.5 總結

    如果已知加解密的算法,或者有現成的分析文章,在編寫解密代碼時就比較容易,編寫解密模塊主要是要對Ruby的pack和unpack的靈活運用,還有對配置文件的解析,像這個不是規范的INI配置文件,無法將文本序列化成可用對象,還需要使用到正則表達式提取文本信息。

    參考

    https://github.com/HyperSine/how-does-Secu...

    https://github.com/rapid7/metasploit-frame...

    metasploitsecurecrt
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    最后的功能是支持 7.3.3 版本之前和之后的兩種解密算法,并且支持 Passphrase 解密(前提是你要知道用戶設置的 Passphrase),這次主要學習了一個河豚解密算法的編寫。舊版本的加解密算法正是使用了河豚算法,這個算法比較容易恢復明文密碼,所以新版本添加了 Passphrase 的 SHA256 數據摘要作為 AES-256-CBC 算法的 Key,增加了解密難度,和 Xshell 的主密碼一樣。
    這些工具大多數是免費開源的安全工具,只有兩款是收費工具
    Pass The Hash 即哈希傳遞攻擊,簡稱 PTH
    滲透測試工具收集整理
    1.IPC橫向 IPC(Internet Process Connection)共享命名管道的資源,是為了實現進程間通信而開放的命名管道。IPC可以通過驗證用戶名和密碼獲得相應的權限,使用139、445端口。 1.1 利用條件
    是一套用于對域名進行偵察的工具。該程序會檢查 SPF 和 DMARC 記錄中是否存在允許欺騙的弱配置。用于發現計算機網絡上的主機和服務,從而構建網絡的“地圖”。自動滲透測試偵察掃描儀。不受 API 限制,因為它使用 Selenium 檢測瀏覽器。輸出報告以幫助關聯跨站點的目標。是一個 python 腳本,它檢查電子郵件帳戶是否在數據泄露中受到損害,如果電子郵件帳戶受到損害,它會繼續查找受損害帳戶的密碼。LinkedIn 枚舉工具,通過搜索引擎抓取從組織中提取有效員工姓名。
    Ceye DNS:DNS oob平臺 http://ceye.io/. TLS證書信息查詢Censys:https://censys.io. 網絡空間搜索Fofa:https://fofa.info/
    Ceye DNS:DNS oob平臺 http://ceye.io/. TLS證書信息查詢Censys:https://censys.io. 網絡空間搜索Fofa:https://fofa.info/
    雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。
    Andrew
    暫無描述
      亚洲 欧美 自拍 唯美 另类