6

Windows 11 登入 RDP 遠端桌面無法記憶密碼的解決方法

 1 year ago
source link: https://blog.darkthread.net/blog/rdp-saved-credential-issue/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Windows 11 登入 RDP 遠端桌面無法記憶密碼的解決方法-黑暗執行緒

Windows RDP 遠端桌面登入時原本有個記憶帳號密碼功能,勾選「記住我」,帳號密碼便會被保存下來,下回登入可省去敲密碼的工夫自動登入。

Fig2_638261923068328523.png

我的小黑筆電還是 Windows 10 (CPU 太舊想升不上 Windows 11),用這招用得很開心,點兩下就連上 RDP 很方便。不過,這招在我的迷你工作機就不管用了, Windows 11 似乎修改了安全政策,現在即使選擇記憶密碼,下次登入時會顯示「Windows Defender Credential Guard 不允許使用已儲存的認證。」必須重新敲密碼:

Fig1_638261923070171177.png

研究了一下,這是因為從 Windows 11 Enterprise/Education 22H2 版本起預設啟用 Windows Defender Credential Guard造成的。有些人會說,把它關掉不就好了?安全與不方便之間要做取捨,每個人的拿捏標準不同,我更偏向安全一些,願意多花點力氣、忍受一些不便,求個保險。(即便如此仍難免失守風險,但至少已盡人事,無怨) 尤其不能接受為了省麻煩,沒經過評估不說明風險就關閉安全防護措施(例如:多想兩分鐘,你可以不必教User關掉Vista UAC),決定花點時間了解 Windows Defender Credential Guard 再看如何因應。

Windows Defender Credential Guard 會在滿足以下條件時啟用:

  1. OS 為 Windows 11 Enterprise/Education 22H2 以上版本
  2. 硬體支援 VBS(Virtualization-Based Security)、啟用 Secure Boot (剛好上週講 Azure VM WSL 問題有提到可信啟動,要求開機安全性是趨勢)、支援 TPM 1.2/2.0、UEFI Lock (防止攻擊者修改 Registry 停用保護)
  3. VBS 必須啟用

註:虛擬化型安全性 (VBS) 是一種使用硬體虛擬化和 Windows Hypervisor 建立隔離虛擬環境的安全技術,用以保護作業系統和重要資源。VBS 可防止惡意程式碼或攻擊者利用作業系統的弱點或漏洞來破壞或竊取資料,其原理是利用虛擬化技術將作業系統分成兩個部分:一個是正常的作業系統,另一個是虛擬安全模式 (VSM) 。VSM 是一個由 Hypervisor 管理和保護的隔離區域,在其中可執行安全相關服務和元件,允許其存取重要的安全性資產,例如使用者認證、加密金鑰、系統設定等,而這些資產對正常的作業系統是不可見或不可修改的。VSM 也可以監控和控制正常作業系統的記憶體和執行權限,以防止未簽署或未受信任的程式碼或驅動程式載入或執行,或者修改記憶體中的可執行程式碼。VBS 的缺點是可能因虛擬化的額外運算和記憶體開銷導致系統效能下降,而且可能會與一些驅動程式或應用程式不相容。(本段原始內容由 Bing Chat 提供並經修改而得,開始覺得有 AI 幫忙很棒。)

要檢查 Windows Defender Credential Guard 是否啟動,可執行 msinfo32.exe,由系統摘要查看「虛擬化型安全性/Virtualization-Based Security」是否在執行中。

Fig3_638261923072068711.png

以此來說,VBS、Credential Guard 有助於防止密碼、金鑰及使用者認證被竊取,阻擋惡意程式入侵及竄改作業系統,為了少敲幾次密碼脫掉防彈衣實屬不智之舉。但如果要登入的 Windows 是實驗或測試環境,有鎖定來源 IP 存取,密碼也未與其他系統共用,評估記憶密碼的風險低於頻繁登入敲密碼的成本,能否個別允許記憶這台主機的 RDP 密碼?

爬文查到一個實用小技巧

先說原理,取得網域密碼雜湊(Domain Password Hash)幾乎是駭客入侵 AD 網域的 SOP,因此 LSA Protection Mode 與 Credential Guard 強化了對網域密碼的保護,禁止遠端桌面連線客戶端(mstsc.exe)這類非 VSM 服務或元件存取,這也就是為什麼 Windows Defender Credential Guard 不允許讀取記憶密碼的原因。但問題來了,我這台只是一般的實驗機,也沒加入網域呀,也一定要用這種等級的保護?

原因是遠端桌面連線客戶端程式在儲存密碼時會一律標註成「網域密碼」且無從修改,透過 cmdkey 工具可以驗證:(延伸閱讀:如何透過命令列工具清除 Windows 認證管理員中的帳號密碼 by 保哥)

Fig4_638261923073918184.png

因此我們可以使用以下指令將其刪除,並重新指定 Generic 密碼:

cmdkey /delete:"TERMSRV/DBClient"
cmdkey /generic:TERMSRV/DBClient /user:DBClient\jeffrey /pass:<password>

如果你不喜歡下指令,也可透過「控制台\使用者帳戶\認證管理員」刪除及新增:

Fig5_638261923075776631.png

經過這番調整,就能恢復點兩次連入桌面的便利囉~
提醒:改設成一般認證(Generic Credential),密碼受到的保護遠不及 Windows 認證(Windows Credential)類別,請確認了解風險,並只用在較不重要的帳號密碼上。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK