Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

ตัวจัดการข้อมูลประจำตัวของ Windows อนุญาตให้บันทึกข้อมูลประจำตัว (ชื่อผู้ใช้และรหัสผ่าน) เพื่อเข้าถึงทรัพยากรเครือข่าย เว็บไซต์ และแอป ด้วย Windows Credential Manager คุณสามารถเชื่อมต่อกับทรัพยากรระยะไกลได้โดยอัตโนมัติโดยไม่ต้องป้อนรหัสผ่าน แอปสามารถเข้าถึง Credential Manager ได้ด้วยตนเองและใช้รหัสผ่านที่บันทึกไว้

สารบัญ:

  • การใช้ Credential Manager เพื่อจัดเก็บรหัสผ่านใน Windows
  • การเข้าถึง Windows Credential Manager จาก PowerShell

การใช้ 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

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

ในทำนองเดียวกัน รหัสผ่านเพื่อเชื่อมต่อกับโฮสต์ RDP/RDS ระยะไกลจะถูกบันทึกไว้ในไคลเอนต์การเชื่อมต่อเดสก์ท็อประยะไกล (mstsc.exe)

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

นอกจากนี้ Credential Manager จะเก็บรหัสผ่านของผู้ใช้ไว้หากบันทึกโดยใช้คำสั่ง runas /savecred

คุณสามารถเข้าถึง Credential Manager ใน Windows 10 ได้จากแผงควบคุมแบบคลาสสิก (Control Panel\User Accounts\Credential Manager )

อย่างที่คุณเห็น มีรหัสผ่านสองรหัสในตัวจัดการข้อมูลรับรองที่เราบันทึกไว้ก่อนหน้านี้

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

รหัสผ่านที่บันทึกไว้สำหรับการเชื่อมต่อ RDP ระบุไว้ใน TERMSRV\hostname รูปแบบ.

ที่นี่คุณสามารถเพิ่มข้อมูลรับรองที่บันทึกไว้ แก้ไขได้ (คุณไม่สามารถดูรหัสผ่านที่บันทึกไว้ในอินเทอร์เฟซแบบกราฟิก) หรือลบรายการใดๆ

นอกจากนี้ คุณยังสามารถใช้อินเทอร์เฟซแบบคลาสสิกของชื่อผู้ใช้และรหัสผ่านที่จัดเก็บไว้ เพื่อจัดการรหัสผ่านที่บันทึกไว้ เรียกใช้คำสั่งด้านล่าง:

rundll32.exe keymgr.dll,KRShowKeyMgr

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

คุณยังสามารถจัดการข้อมูลประจำตัวที่บันทึกไว้ได้ที่นี่ และมีคุณสมบัติการสำรองและกู้คืนข้อมูลสำหรับ Credential Manager (คุณสามารถใช้เพื่อโอนฐานข้อมูล Credential Manager ไปยังคอมพิวเตอร์เครื่องอื่นได้)

vaultcmd เครื่องมือนี้ใช้เพื่อจัดการ Credential Manager จากพรอมต์คำสั่ง ตัวอย่างเช่น หากต้องการแสดงรายการข้อมูลรับรอง Windows ที่บันทึกไว้ ให้เรียกใช้คำสั่งนี้:

vaultcmd /listcreds:"Windows Credentials"

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

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 ข้อมูลจะถูกจัดโครงสร้างและดูเหมือนชุดของรายการที่เป็นของ Vault Scheme ชุดคีย์การเข้ารหัสสำหรับรายการ Windows Vault ถูกจัดเก็บไว้ใน Policy.vpol ไฟล์.

สำหรับผู้ใช้โดเมน จะอยู่ใน %userprofile%\AppData\Roaming\Microsoft\Vault .

สำหรับผู้ใช้ในพื้นที่ คุณสามารถค้นหาได้ใน %userprofile%\AppData\Local\Microsoft\Vault .

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

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 Credential Manager

จากนั้น หากผู้ใช้พยายามบันทึกรหัสผ่านไปยังร้านค้า Windows Vault พวกเขาจะเห็นข้อผิดพลาดต่อไปนี้:

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

คุณสามารถแสดงรายการ cmdlets ในโมดูล CredentialManager:

Get-Command -module CredentialManager

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

โมดูลมีเพียง 4 cmdlets:

  • Get-StoredCredential – เพื่อรับข้อมูลประจำตัวจาก Windows Vault;
  • Get-StrongPassword – เพื่อสร้างรหัสผ่านแบบสุ่ม;
  • New-StoredCredential – เพื่อเพิ่มข้อมูลประจำตัว;
  • Remove-StoredCredential – เพื่อลบข้อมูลประจำตัว

ในการเพิ่มข้อมูลประจำตัวใหม่ให้กับ Windows Credential Manager ให้รันคำสั่งนี้:

New-StoredCredential -Target 'woshub' -Type Generic -UserName '[email protected]' -Password 'Pass321-b' -Persist 'LocalMachine'

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager

เพื่อให้แน่ใจว่ามีข้อมูลรับรองผู้ใช้ที่บันทึกไว้ใน Credential Manager:

Get-StoredCredential -Target woshub

คุณสามารถใช้รหัสผ่านที่บันทึกไว้จาก Credential Manager ในสคริปต์ PowerShell ของคุณ ตัวอย่างเช่น ฉันสามารถรับชื่อและรหัสผ่านที่บันทึกไว้จาก Windows Vault เป็นวัตถุ PSCredential และเชื่อมต่อกับ Exchange Online จาก PowerShell:

$psCred = Get-StoredCredential -Target "woshub"
Connect-MSolService -Credential $psCred

นอกจากนี้ โปรดสังเกตโมดูล PowerShell Secret Management ใหม่ที่คุณสามารถใช้จัดเก็บรหัสผ่านใน Windows ได้อย่างปลอดภัย รองรับห้องเก็บรหัสผ่านจำนวนหนึ่ง:KeePass, LastPass, HashiCorp Vault, Azure Key Vault, Bitwarden

หากต้องการลบข้อมูลประจำตัวออกจาก Windows Vault ให้เรียกใช้คำสั่งนี้:

Remove-StoredCredential -Target woshub

คุณไม่สามารถแสดงรหัสผ่านเป็นข้อความธรรมดาโดยใช้เครื่องมือ CLI ในตัว แต่คุณสามารถใช้ยูทิลิตี้ที่คล้ายกับ Mimikatz เพื่อรับรหัสผ่านที่บันทึกไว้จาก  credman เป็นข้อความธรรมดา (ดูตัวอย่างที่นี่)