ตัวจัดการข้อมูลประจำตัวของ 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
ในทำนองเดียวกัน รหัสผ่านเพื่อเชื่อมต่อกับโฮสต์ RDP/RDS ระยะไกลจะถูกบันทึกไว้ในไคลเอนต์การเชื่อมต่อเดสก์ท็อประยะไกล (mstsc.exe)
นอกจากนี้ Credential Manager จะเก็บรหัสผ่านของผู้ใช้ไว้หากบันทึกโดยใช้คำสั่ง runas /savecred
คุณสามารถเข้าถึง Credential Manager ใน Windows 10 ได้จากแผงควบคุมแบบคลาสสิก (Control Panel\User Accounts\Credential Manager
)
อย่างที่คุณเห็น มีรหัสผ่านสองรหัสในตัวจัดการข้อมูลรับรองที่เราบันทึกไว้ก่อนหน้านี้
รหัสผ่านที่บันทึกไว้สำหรับการเชื่อมต่อ RDP ระบุไว้ใน
TERMSRV\hostname
รูปแบบ. ที่นี่คุณสามารถเพิ่มข้อมูลรับรองที่บันทึกไว้ แก้ไขได้ (คุณไม่สามารถดูรหัสผ่านที่บันทึกไว้ในอินเทอร์เฟซแบบกราฟิก) หรือลบรายการใดๆ
นอกจากนี้ คุณยังสามารถใช้อินเทอร์เฟซแบบคลาสสิกของชื่อผู้ใช้และรหัสผ่านที่จัดเก็บไว้ เพื่อจัดการรหัสผ่านที่บันทึกไว้ เรียกใช้คำสั่งด้านล่าง:
rundll32.exe keymgr.dll,KRShowKeyMgr
คุณยังสามารถจัดการข้อมูลประจำตัวที่บันทึกไว้ได้ที่นี่ และมีคุณสมบัติการสำรองและกู้คืนข้อมูลสำหรับ Credential Manager (คุณสามารถใช้เพื่อโอนฐานข้อมูล Credential Manager ไปยังคอมพิวเตอร์เครื่องอื่นได้)
vaultcmd
เครื่องมือนี้ใช้เพื่อจัดการ Credential Manager จากพรอมต์คำสั่ง ตัวอย่างเช่น หากต้องการแสดงรายการข้อมูลรับรอง Windows ที่บันทึกไว้ ให้เรียกใช้คำสั่งนี้:
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 ข้อมูลจะถูกจัดโครงสร้างและดูเหมือนชุดของรายการที่เป็นของ Vault Scheme ชุดคีย์การเข้ารหัสสำหรับรายการ 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 พวกเขาจะเห็นข้อผิดพลาดต่อไปนี้:
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
โมดูลมีเพียง 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'
เพื่อให้แน่ใจว่ามีข้อมูลรับรองผู้ใช้ที่บันทึกไว้ใน Credential Manager:
Get-StoredCredential -Target woshub
คุณสามารถใช้รหัสผ่านที่บันทึกไว้จาก Credential Manager ในสคริปต์ PowerShell ของคุณ ตัวอย่างเช่น ฉันสามารถรับชื่อและรหัสผ่านที่บันทึกไว้จาก Windows Vault เป็นวัตถุ PSCredential และเชื่อมต่อกับ Exchange Online จาก PowerShell:
$psCred = Get-StoredCredential -Target "woshub"
Connect-MSolService -Credential $psCred
หากต้องการลบข้อมูลประจำตัวออกจาก Windows Vault ให้เรียกใช้คำสั่งนี้:
Remove-StoredCredential -Target woshub
คุณไม่สามารถแสดงรหัสผ่านเป็นข้อความธรรมดาโดยใช้เครื่องมือ CLI ในตัว แต่คุณสามารถใช้ยูทิลิตี้ที่คล้ายกับ Mimikatz เพื่อรับรหัสผ่านที่บันทึกไว้จาก credman
เป็นข้อความธรรมดา (ดูตัวอย่างที่นี่)