Windows Server 2016 新的安全方面的保護機制Credential Guard 使用的是Virtualization based Security (VBS) 來保護帳號 (加密記憶體中的密碼),避免 Pass the Hash 與 Pass the Ticket 攻擊。
Credential Guard 基本需求
- Windows 10 Enterprise / Windows Server 2016
- Windows Hypervisor 才能提供 VBS (也就是主機一定要安裝hyper-v 功能)
- UEFI 韌體版本 v2.3.1 以上,要支援安全開機功能
- CPU 支援 Second Level Address Translation (SLAT)
- Intel VT-d/AMD-Vi IOMMU (不一定必要)
- 要有能力限制某些 UEFI 韌體功能與安全更新
- TPM
- CPU 支援 Intel VT-x/AMD-V 硬體虛擬化功能
看了微軟文件及網路上文章後參考文件作法來測試一下 GuardCredential Guard 保護帳號
環境:
1.一台windows server 2016
2.一台windows server 2016 網域成員伺服器 server01
3.網域 lab.com
目前我有一個網域帳號 usera 是成員是domain users,但是該帳號它具有server01 伺服器本機管理員權限
依照前面說明的條件可以先執行 msinfo32 指令看到
可以看到目前滿足的條件只有 UEFI BIOS
且Device Guard 尚未啟用
接著使用mimikatz_trunk 工具,掃電腦中LSA有快取的帳號資料
執行以下指令可以看目前在記憶體中存在的密碼
privilege::debug
sekurlsa::logonpasswords
我在這台成員伺服器中測試 要將一位roy 帳號加入domin admins 群組中,因為權限不夠所以無法成功。
net group “domain admins” /add roy /domain
接著我在該台主機中利用網域administrator 帳號開啟AD管理工具然後關閉,再次使用該mimikatz_trunk 工具,掃電腦中LSA有快取的帳號資料。
果然有看到網域administrator 的資料,因為如果有NTLM Hash 就可以登入不須打密碼
接著使用該工具執行下列指令開啟一個具有網域administrator 帳號權限的cmd
sekurlsa::pth /user:administrator /domain:lab.com /ntlm:bb4dcfeda7d1d5c3c20e6c049d2bf8b9 /run:com
執行後: 確實開啟命令提示字元指令
接著在該cmd 視窗執行net group “domain admins” /add roy /domain 就可以成功
所以這就是沒有被保護到,駭客只要想辦法拿到用戶端帳號登入且可以跑起這隻駭客工具就有機會竊取到網域管理這帳號密碼做任何破壞事件。
接下來就有進行device Guard 啟用進而使用Credential Guard
1. 將hyper-v 功能啟用
2.使用安全開機
3.使用群組原則設定如下
設定完畢重開機後再次執行msinfo32 會看到 device Guard 已啟用
在次執行mimikatz 工具發現已經無法取得NTLH hash
Credential Guard 服務執行中有一支lsalso.exe 在run ,如下圖工作管理員
本篇瀏覽人數: 3271