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

    通過將keytab導入wireshark中實現對Kerberos協議加密部分進行直接解包

    VSole2021-09-17 09:35:43

    本文主要記錄了如何通過一些列操作,將生成的keytab導入wireshark,實現可以在wireshark中直接對Kerberos協議加密部分進行解密的一個過程,避免大家踩坑。

    keytab是可以理解為一個密鑰表,是key table的縮寫,用途類似于用戶的密碼,keytab中包含一個或多個條目,每個條目包含一個條目創建時的時間戳,主體名,密鑰版本號,加密類型以及密鑰本身。具體關于keytab的信息可以上MIT的Kerberos實現網站上具體查看,這里只大概介紹。

    具體操作過程如下:

    1.在域控上復制出一份ntds.dit文件,這里用卷影復制的方法,復制的時候要和自己的卷影副本卷名對應。

    vssadmin create shadow /for=C:
    copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\Windows\NTDS\NTDS.dit C:tds.dit
    

    2.復制system.hive文件。

    reg save hklm\system system.hive
    或者
    copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\Windows\System32\config\SYSTEM C:\system.hiv
    

    復制完成后刪除之前創建的卷影副本。

    vssadmin delete shadow /all
    

    3.整一個esedbexport程序,下載地址https://github.com/libyal/libesedb,可以在各種平臺編譯,我這里在Ubuntu機器上編譯,不容易出錯,Windows編譯太麻煩了。

    wget https://github.com/libyal/libesedb/releases/download/20210424/libesedb-experimental-20210424.tar.gz
    tar -xzvf libesedb-experimental-20210424.tar.gzcd libesedb-20210424/
    sudo apt-get install autoconf automake autopoint libtool pkg-config
    #安裝依賴包
    ./configure
    make
    make install
    sudo ldconfig
    

    如果都比較順利的話,可以在/usr/local/bin下找到esedbexport命令。

    這里做一下知識擴展。

            這里我們要先了解的是,ntds.dit文件是一種ESE數據庫文件,而ESE即Extensible Storage Engine ,可擴展存儲引擎,是微軟提出的一種數據存儲技術,文件后綴是.edb,Windows內使用ESE存儲的有Microsoft Exchange Server,Active Directory,Windows Search,Windows Update,Help and Support Center。這里的esedbexport可以理解為將ntds.dit文件內的表進行了一個導出。如果想直接查看ESE數據庫文件,可以使用ESEDatabaseVies,使用ESEDatabaseVies也可以進行一個導出。

    4.將復制出來的ntds.dit以及system.hive復制到Linux中,我這里復制到了/usr/local/bin下,并執行命令,可以將ntds.dit導出成多個文件,文件會存放在當前目錄的ntds.dit.export目錄內。

    esedbexport ntds.dit
    

    5.使用NTDSXtract導出需要的keytab。

    git clone https://github.com/csababarta/ntdsxtract.git
    cd ntdsxtract/
    python dskeytab.py ../ntds.dit.export/datatable.3 ../ntds.dit.export/link_table.5 ../system.hive /usr/local/bin/ntdsxtract/ 1.keytab
    #datatable以及link_table都是esedbexport處理過ntds.dit之后存在ntds.dit.export中的文件
    #system.hive 是之前導出的文件
    #/usr/local/bin/ntdsxtract/ 是當前ntdsxtract目錄
    #1.keytab是最后我們需要的keytab文件
    

    執行后即可生成1.keytab文件。

    6.生成完成后,我們可以使用ktutil查看當前keytab內的信息。想要使用ktutil命令,需要安裝Kerberos客戶端,我這里安裝的是heimdal-clients,命令執行完,即可看到當前keytab中包含的信息。

            可以看到所有賬戶的信息都已經包含了,因為是從域控導出的文件,不僅是krbtgt,所有所有在域控中注冊的服務,用戶,主機,都列了出來,包括我加入域內的一臺Linux主機,也就是說在后面我們可以使用wireshark同時解開Kerberos協議中的TGT票據,ST票據以及用戶hash加密部分,而不用去再單獨生成每一個要解密的keytab了,就很nice。

    sudo apt-get install heimdal-clients
    ktutil -k 1.keytab list
    #-k命令制定要keytab
    


    7.最后,打開我們裝有wireshark的主機,打開"編輯"——"首選項",選擇"Protocols",找到KRB5,勾選"Try to decrypt Kerberos blobs",并在下面導入我們剛才生成的1.keytab,就可以對Kerberos數據包進行解密了。

            加載完keytab文件后,wireshark會自動對當前的數據包進行解密嘗試,如果解密成功,就會是顯示藍色,不成功就是黃色。

            這里再簡單說一下Kerberos部分可以使用keytab解密的原理,Kerberos中的加密部分是使用的hash,是將"密碼明文+鹽+密鑰版本號"通過一個單向的string-to-key函數來獲得的,密碼存儲在KDC中,鹽一般是域名和用戶名的組合,密鑰版本號即kvno,這些信息都包含在了這個keytab中。在as-req過程中,加密部分是使用client用戶密鑰生成的hash加密的,as-rep過程中,TGT票據部分是使用的krbtgt的密鑰hash進行的加密,而剩下的一部分加密是使用client用戶密鑰進行的加密,隨后的tgs-rep中的ST票據的加密部分,是使用的服務對應密鑰的hash進行的加密,所以當wireshark內導入了keytab后,就可以通過固定算法對相應的部分進行解密。

            通過觀察圖中其實也可以看到,wireshark對于每一個被解密的部分都進行了說明,是使用keytab中的哪個主體進行解密的。比如下圖的as-req中的加密時間戳部分,就很清楚的說明了是使用了keytab中user1的信息進行了解密,這里user1是我注冊的一個域用戶。


    as-req中的用于身份預認證的加密時間戳,解密后的樣子。

           as-rep中的TGT加密部分解密后的樣子,這里的key中的keyvalue就是TGS服務器生成的session key。解密使用的krbtgt。

    如果包含PAC,甚至可以看到PAC中的數據。

    tgs-req流程中Authenticator的解密。


    域內Linux主機登錄時的最后兩個數據,用GSS-API進行傳輸的。

            能直接在wireshark中解開Kerberos協議,對于我們進一步詳細學習Kerberos協議的認證過程是有著非常大的幫助,結合rfc就可以非常深入且清晰的了解到協議的整個認證過程,最后wireshark,yyds。

    kerberoswireshark
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    本文主要記錄了如何通過一些列操作,將生成的keytab導入wireshark,實現可以在wireshark中直接對Kerberos協議加密部分進行解密的一個過程,避免大家踩坑。
    kerberos協議從0到1
    2021-10-12 14:26:38
    krbtgt用戶,是系統在創建域時自動生成的一個帳號,其作用是密鑰分發中心的服務賬號,其密碼是系統隨機生成的,無法登錄主機
    在這種模式下,數據流是雙向且同時的。要獲取主機,我們可以使用 DHCP 過濾器。動態主機配置協議 是一種基于 RFC 2131 的網絡層協議,可將 IP 地址動態分配給主機。MAC 地址是一個唯一的 48 位序列號。_Windows 帳戶名稱為:?
    本文是很久之前做的筆記,今天有空又梳理了一下,分享出來。如果有錯誤或疏漏,歡迎留言指出。 Kerberos是一種基于票據的、集中式的網絡認證協議,適用于C/S模型,由MIT開發和實現(http://web.mit.edu/kerberos/dist/)。 這里所謂的認證,就是保證使用票據(Ticket)的用戶必須是票據中指定的用戶。 簡單回憶一下,密碼學涉及機密性、完整性、認證性(實體認證+
    通過Brim可以搜索日志,也可以協同WireShark來深入分析來自特定流量的數據包。目前Brim僅支持桌面端搜索,將來也會支持云端,集群搜索功能。大家一般都是使用WireShark來解析特定的流量或協議。在大多數情況下,可疑活動的警報是基于IP地址的。NBNS流量則主要由運行Microsoft Windows的計算機或運行MacOS的蘋果主機產生。選擇其中一個在信息欄中顯示DHCP請求的幀。
    list 列舉出當前會話的所有緩存憑證,tgt列出當前會話的tgt信息。
    在信息安全領域,Kali Linux是一個廣受歡迎的滲透測試和網絡安全分析操作系統。Empire包括大量的模塊,可用于橫向移動、權限提升、數據竊取和其他后滲透操作。通過利用Windows系統中的漏洞和設計缺陷,Mimikatz能夠竊取其他用戶的憑據。這些工具只是Kali Linux中眾多強大工具的一部分。值得注意的是,這些工具應當在合法和道德的范圍內使用,以確保網絡安全和隱私保護。
    域內定位個人PC的三種方式
    漏洞掃描工具Top10
    2022-07-08 20:10:52
    漏洞掃描工具Top10
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类