การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager
Windows Credential Manager อนุญาตให้บันทึกข้อมูลรับรอง (ชื่อผู้ใช้และรหัสผ่าน) เพื่อเข้าถึงทรัพยากรเครือข่าย เว็บไซต์ และแอป ด้วย Windows Credential Manager คุณสามารถเชื่อมต่อกับทรัพยากรระยะไกลโดยอัตโนมัติโดยไม่ต้องป้อนรหัสผ่าน แอปสามารถเข้าถึง Credential Manager ได้ด้วยตนเองและใช้รหัสผ่านที่บันทึกไว้
การใช้ Credential Manager เพื่อจัดเก็บรหัสผ่านใน Windows
Credential Manager ปรากฏใน Windows 7 และอยู่ในตำแหน่งที่ค่อนข้างปลอดภัยในการเก็บรหัสผ่านของคุณ
Credential Manager บน Windows 10 สามารถเก็บประเภทบัญชีต่อไปนี้:
ข้อมูลประจำตัวของ Windows - ข้อมูลรับรองสำหรับเข้าสู่ระบบ Windows หรือเพื่อเข้าถึงคอมพิวเตอร์ระยะไกล รหัสผ่านที่บันทึกไว้สำหรับการเชื่อมต่อ RDP รหัสผ่านสำหรับเว็บไซต์ที่รองรับการตรวจสอบความถูกต้องของ Windows ในตัว ฯลฯ
Windows Credential Manager ไม่เก็บข้อมูลประจำตัวสำหรับการเข้าสู่ระบบ Windows หรือโดเมน Cached Credentials โดยอัตโนมัติ
-
ข้อมูลรับรองตามใบรับรอง - เพื่อตรวจสอบสิทธิ์โดยใช้สมาร์ทการ์ด
ข้อมูลรับรองทั่วไป - ใช้โดยแอปของบุคคลที่สามที่เข้ากันได้กับ Credential Manager
ข้อมูลรับรองเว็บ - รหัสผ่านที่บันทึกไว้ใน Edge และ IE, แอป Microsoft (MS Office, Teams, Outlook, Skype ฯลฯ)
ตัวอย่างเช่น หากคุณเปิดใช้งาน “
Save Password” ตัวเลือกเมื่อเข้าถึงโฟลเดอร์เครือข่ายที่ใช้ร่วมกัน รหัสผ่านที่คุณป้อนจะถูกบันทึกไว้ใน Credential Manager
ในทำนองเดียวกัน รหัสผ่านสำหรับเชื่อมต่อกับโฮสต์ RDP/RDS ระยะไกลจะถูกบันทึกไว้ในไคลเอนต์ Remote Desktop Connection (mstsc.exe)
นอกจากนี้ Credential Manager จะเก็บรหัสผ่านของผู้ใช้ไว้ หากบันทึกโดยใช้คำสั่ง runas /savecred
คุณสามารถเข้าถึง Credential Manager ใน Windows 10 ได้จากแผงควบคุมแบบคลาสสิก (
Control Panel\User Accounts\Credential Manager
).
อย่างที่คุณเห็น มีรหัสผ่านสองรหัสใน Credential Manager ที่เราบันทึกไว้ก่อนหน้านี้
มีการระบุรหัสผ่านที่บันทึกไว้สำหรับการเชื่อมต่อ RDP ใน
TERMSRV\hostnameรูปแบบ.
ที่นี่คุณสามารถเพิ่มข้อมูลประจำตัวที่บันทึกไว้ แก้ไข (คุณไม่สามารถดูรหัสผ่านที่บันทึกไว้ในอินเทอร์เฟซแบบกราฟิก) หรือลบรายการใดๆ
นอกจากนี้ คุณสามารถใช้อินเทอร์เฟซแบบคลาสสิกของ ชื่อผู้ใช้และรหัสผ่านที่เก็บไว้ เพื่อจัดการรหัสผ่านที่บันทึกไว้ หากต้องการเรียกใช้ ให้รันคำสั่งด้านล่าง:
rundll32.exe keymgr.dll,KRShowKeyMgrที่นี่ คุณยังสามารถจัดการข้อมูลรับรองที่บันทึกไว้ และมีคุณสมบัติการสำรองและกู้คืนข้อมูลบางอย่างสำหรับ Credential Manager (คุณสามารถใช้ข้อมูลเหล่านี้เพื่อถ่ายโอนฐานข้อมูล Credential Manager ไปยังคอมพิวเตอร์เครื่องอื่น)
นี้
vaultcmd
เครื่องมือนี้ใช้ในการจัดการ Credential Manager จากพรอมต์คำสั่ง ตัวอย่างเช่น หากต้องการแสดงรายการ Windows Credentials ที่บันทึกไว้ ให้รันคำสั่งนี้:
vaultcmd /listcreds:"Windows Credentials"Credential schema: Windows Domain Password Credential
Resource: Domain:target=mun-dc01
Identity: RESDOM\j.brion
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfAc)คำสั่งต่อไปนี้จะลบรหัสผ่าน RDP ที่บันทึกไว้ทั้งหมดออกจาก Credential Manager:
For /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr "target=TERMSRV"') do cmdkey /delete %Hรหัสผ่านที่บันทึกไว้ทั้งหมดจะถูกจัดเก็บไว้ใน Windows Vault Windows Vault เป็นที่เก็บที่มีการป้องกันเพื่อเก็บความลับ รหัสผ่าน และข้อมูลผู้ใช้ที่ละเอียดอ่อนอื่นๆ ใน Windows Vault ข้อมูลมีโครงสร้างและดูเหมือนชุดของรายการที่เป็นของโครงร่างห้องนิรภัย ชุดคีย์การเข้ารหัสสำหรับรายการ Windows Vault จะถูกจัดเก็บไว้ในไฟล์ Policy.vpol
สำหรับผู้ใช้โดเมนจะอยู่ใน
%userprofile%\AppData\Roaming\Microsoft\Vaultสำหรับผู้ใช้ในท้องถิ่น คุณสามารถค้นหาได้ใน
%userprofile%\AppData\Local\Microsoft\Vaultบริการ VaultSvc จะต้องทำงานเมื่อใช้ Credential Manager:
Get-Service VaultSvcหากปิดใช้งานบริการ คุณจะเห็นข้อผิดพลาดต่อไปนี้เมื่อพยายามเข้าถึง Credential Manager:
Credential Manager Error
The Credential Manager Service is not running. You can start the service manually using the Services snap-in or restart your computer to start the service.
Error code: 0x800706B5
Error Message: The interface is unknown.หากคุณต้องการป้องกันไม่ให้ผู้ใช้บันทึกรหัสผ่านเครือข่ายใน Credential Manager ให้เปิดใช้งานตัวเลือก การเข้าถึงเครือข่าย: ไม่อนุญาตให้จัดเก็บรหัสผ่านและข้อมูลรับรองสำหรับการตรวจสอบสิทธิ์เครือข่าย GPO ภายใต้การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> ความปลอดภัย การตั้งค่า -> นโยบายท้องถิ่น -> ตัวเลือกความปลอดภัย
จากนั้น หากผู้ใช้พยายามบันทึกรหัสผ่านไปยัง Windows Vault store พวกเขาจะเห็นข้อผิดพลาดต่อไปนี้:
Credential Manager Error
Unable to save credentials. To save credentials in this vault, check your computer configuration.
Error code: 0x80070520
Error Message: A specified logon session does not exist. It may already have been terminated.การเข้าถึง Windows Credential Manager จาก PowerShell
Windows ไม่มี cmdlet ในตัวเพื่อเข้าถึงที่เก็บ PasswordVault จาก PowerShell แต่คุณสามารถใช้โมดูล CredentialManager จากแกลเลอรี PowerShell
ติดตั้งโมดูล:
Install-Module CredentialManagerคุณสามารถแสดงรายการ cmdlet ในโมดูล CredentialManager:
Get-Command -module CredentialManagerโมดูลมีเพียง 4 cmdlets:
Get-StoredCredential- เพื่อรับข้อมูลประจำตัวจาก Windows Vault;
Get-StrongPassword- เพื่อสร้างรหัสผ่านแบบสุ่ม
New-StoredCredential- เพื่อเพิ่มข้อมูลประจำตัว;
Remove-StoredCredential- เพื่อลบข้อมูลประจำตัว
ในการเพิ่มข้อมูลรับรองใหม่ให้กับ Windows Credential Manager ให้รันคำสั่งนี้:
New-StoredCredential -Target 'a-d' -Type Generic -UserName 'maxbak@a-d.site' -Password 'Pass321-b' -Persist 'LocalMachine'เพื่อให้แน่ใจว่ามีข้อมูลรับรองผู้ใช้ที่บันทึกไว้ใน Credential Manager หรือไม่:
Get-StoredCredential -Target a-dคุณสามารถใช้รหัสผ่านที่บันทึกไว้จาก Credential Manager ในสคริปต์ PowerShell ของคุณได้ ตัวอย่างเช่น ฉันสามารถรับชื่อและรหัสผ่านที่บันทึกไว้จาก Windows Vault เป็นวัตถุ PSCredential และเชื่อมต่อกับ Exchange Online จาก PowerShell:
$psCred = Get-StoredCredential -Target "a-d"
Connect-MSolService -Credential $psCredนอกจากนี้ โปรดสังเกตโมดูล PowerShell Secret Management ใหม่ที่คุณสามารถใช้เพื่อจัดเก็บรหัสผ่านอย่างปลอดภัยใน Windows รองรับตู้นิรภัยรหัสผ่านจำนวนมาก: KeePass, LastPass, HashiCorp Vault, Azure Key Vault, Bitwarden
หากต้องการลบข้อมูลประจำตัวออกจาก Windows Vault ให้รันคำสั่งนี้:
Remove-StoredCredential -Target a-dคุณไม่สามารถแสดงรหัสผ่านเป็นข้อความธรรมดาโดยใช้เครื่องมือ CLI ในตัว แต่คุณสามารถใช้ยูทิลิตี้คล้าย Mimikatz เพื่อรับรหัสผ่านที่บันทึกไว้ได้
credmanเป็นข้อความธรรมดา (ดูตัวอย่างที่นี่)








