Windows Server 2016 – Credential Guard

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 伺服器本機管理員權限

secruity-2016

依照前面說明的條件可以先執行 msinfo32 指令看到

可以看到目前滿足的條件只有 UEFI BIOS

且Device Guard 尚未啟用

secruity-2016-1

接著使用mimikatz_trunk 工具,掃電腦中LSA有快取的帳號資料

執行以下指令可以看目前在記憶體中存在的密碼

privilege::debug
sekurlsa::logonpasswords

secruity-2016-3

我在這台成員伺服器中測試 要將一位roy 帳號加入domin admins 群組中,因為權限不夠所以無法成功。

net group “domain admins” /add roy /domain

secruity-2016-4

接著我在該台主機中利用網域administrator 帳號開啟AD管理工具然後關閉,再次使用該mimikatz_trunk 工具,掃電腦中LSA有快取的帳號資料。

果然有看到網域administrator  的資料,因為如果有NTLM   Hash  就可以登入不須打密碼

secruity-2016-5

接著使用該工具執行下列指令開啟一個具有網域administrator 帳號權限的cmd

sekurlsa::pth /user:administrator /domain:lab.com /ntlm:bb4dcfeda7d1d5c3c20e6c049d2bf8b9 /run:com

secruity-2016-6

執行後: 確實開啟命令提示字元指令

secruity-2016-7

接著在該cmd 視窗執行net group “domain admins” /add roy /domain 就可以成功

secruity-2016-8

所以這就是沒有被保護到,駭客只要想辦法拿到用戶端帳號登入且可以跑起這隻駭客工具就有機會竊取到網域管理這帳號密碼做任何破壞事件。

接下來就有進行device Guard 啟用進而使用Credential Guard

1. 將hyper-v 功能啟用

2.使用安全開機

3.使用群組原則設定如下

secruity-2016-9

設定完畢重開機後再次執行msinfo32 會看到 device Guard  已啟用

secruity-2016-12

在次執行mimikatz 工具發現已經無法取得NTLH hash

secruity-2016-10

Credential Guard 服務執行中有一支lsalso.exe 在run ,如下圖工作管理員

secruity-2016-11



本篇瀏覽人數: 3166
分類: Windows Server 2016。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *