cmdkey.exe - Windows Credentials Manager Command-Line Tool

Category: System-EXE-Files | Date: 2025-03-02


cmdkey.exe: Windows Credentials Manager Command-Line Tool

cmdkey.exe is a built-in command-line utility in Windows operating systems that allows users to manage stored user names and passwords, also known as credentials. These credentials can be used for accessing various resources, including network shares, websites, and other applications that require authentication. It's the command-line interface for the Windows Credential Manager.

Origin and Purpose

cmdkey.exe is a core component of the Windows operating system, developed by Microsoft. Its primary purpose is to provide a secure and convenient way to store and retrieve credentials, eliminating the need for users to repeatedly enter their usernames and passwords for frequently accessed resources. It leverages the Windows Credential Manager service, which provides a secure vault for storing this sensitive information. The command-line interface was provided to allow scripting and automation of credential management tasks, useful for system administrators and power users.

Functionality

cmdkey.exe provides the following core functionalities:

  • Creating Credentials: You can create new credentials, specifying the target resource, username, and password.
  • Listing Credentials: You can list all stored credentials or filter them by target name.
  • Deleting Credentials: You can remove stored credentials when they are no longer needed.
  • Modifying Credentials (Indirectly): While cmdkey.exe doesn't directly support modifying an existing credential, you can achieve the same effect by deleting the old credential and creating a new one with the updated information.

Is it a Virus? / Can it Become a Virus?

cmdkey.exe itself is not a virus. It is a legitimate and essential part of the Windows operating system. However, like many legitimate system tools, it could be misused by malicious actors.

Potential Misuse:

  • Credential Theft (Indirect): While cmdkey.exe cannot directly display passwords in plain text, a malicious script or program could use cmdkey /list to identify stored credentials. Then other malicious program could be used to steal credentials. This would typically require elevated privileges (administrator rights).
  • Creating Malicious Credentials: A malicious script could use cmdkey to create credentials that point to a malicious server or resource. This could be used in phishing attacks or to redirect network traffic.
  • Part of a Larger Attack: cmdkey.exe is rarely used in isolation in an attack. It's more likely to be a small component of a larger, multi-stage attack.

Important Note: The presence of cmdkey.exe on your system is normal and expected. Suspicion should only arise if you observe unusual activity related to it, such as unexpected credential prompts or unexplained network connections, especially when combined with other suspicious behavior.

Usage (Detailed Guide)

The basic syntax of cmdkey.exe is as follows:

cmdkey [{/add:<TargetName> /user:<UserName> /pass:<Password> | /generic:<TargetName> /user:<UserName> /pass:<Password>}] | {/delete:<TargetName> | /delete /ras} | {/list:<TargetName> | /list} | {/smartcard}

Let's break down the options:

  • /add:<TargetName>: Creates a new credential. <TargetName> is the network resource or website for which the credentials are used. This usually expects /user and /pass options. This creates a "domain" credential.

  • /generic:<TargetName>: Creates a new credential. Similar to /add, but creates a "generic" credential, which is used for applications rather than network resources. This usually expects /user and /pass options.

  • /user:<UserName>: Specifies the username for the credential. Used with /add or /generic.

  • /pass:<Password>: Specifies the password for the credential. Used with /add or /generic. If you omit /pass:<Password>, cmdkey will prompt you to enter the password interactively, which is more secure.

  • /delete:<TargetName>: Deletes the credential associated with the specified <TargetName>.

  • /delete /ras: Deletes all Remote Access Service (RAS) credentials.

  • /list:<TargetName>: Lists the credential(s) associated with the specified <TargetName>. Wildcards are supported (e.g., /list:*.example.com).

  • /list: Lists all stored credentials.

  • /smartcard: It displays smart card credentials, not to configure credentials.

Examples:

  1. Create a credential for a network share (prompting for password):

    cmdkey /add:server1.example.com /user:MyDomain\JohnDoe (You'll be prompted to enter the password.)

  2. Create a credential for a network share (specifying the password - less secure):

    cmdkey /add:server1.example.com /user:MyDomain\JohnDoe /pass:MySecretPassword

  3. Create a generic credential (prompting for password):

    cmdkey /generic:MyApplication /user:[email protected]

  4. List all credentials:

    cmdkey /list

  5. List credentials for a specific target:

    cmdkey /list:server1.example.com

  6. Delete a credential:

    cmdkey /delete:server1.example.com 7. Delete all RAS credentials:

cmdkey /delete /ras

  1. List smart card credentials:

    cmdkey /smartcard Security Considerations:

  2. Avoid Storing Passwords in Scripts: Never store passwords directly in scripts using /pass:<Password>. This is extremely insecure. Always allow cmdkey to prompt for the password interactively.

  3. Use Strong Passwords: Always use strong, unique passwords for all your credentials.
  4. Elevated Privileges: Managing credentials often requires administrator privileges. Be mindful of running cmdkey with elevated privileges.
  5. Credential Guard (Windows 10/11): If available, consider enabling Credential Guard, a virtualization-based security feature that helps protect credentials from theft.
  6. Review Regularly: You should check /list result regularly to see if there is any credential you don't recognize.

Conclusion

cmdkey.exe is a powerful and versatile tool for managing credentials in Windows. While it's a legitimate system component, users should be aware of its potential for misuse and take appropriate security precautions. Understanding its functionality and proper usage is essential for both system administrators and security-conscious users.