-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dpapi::chrome - bug in parsing "Local State" file #459
Comments
The error message ERROR kuhl_m_dpapi_chrome_decrypt ; No Alg and/or Key handle despite AES encryption indicates that Mimikatz is unable to locate the necessary decryption key or algorithm to decrypt Chrome’s data. This issue often arises when Mimikatz is run under the SYSTEM account, which lacks access to the user’s DPAPI keys. Potential Solutions: sekurlsa::dpapi Identify the relevant master key from the output. Then, execute the dpapi::chrome command with the /masterkey parameter: dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Login Data" /masterkey:{retrieved_master_key} Replace {retrieved_master_key} with the actual master key obtained earlier.
For more detailed guidance, refer to the article on reading DPAPI encrypted keys with Mimikatz.  Additionally, be aware that changes in Chrome’s handling of encrypted keys may affect Mimikatz’s ability to parse them. Ensure you’re using the latest version of Mimikatz, as updates may address compatibility issues with newer Chrome versions. |
Hey, |
as part of the execution of dpapi::chrome I got the following error
Looking at mimikatz's code I understand that if no further arguments are provided, mimikatz tries to parse the "Local State" file using
kuhl_m_dpapi_chrome_alg_key_from_auto
. The function later on callskuhl_m_dpapi_chrome_alg_key_from_file
which attempts to get the encrypted key by parsingLocal State
:The function assumes that
encrypted_key
will be the first key underos_crypt
. This assumption got broken in recent chrome versions (mine is 131). In recent chrome versions there are several other keys beforeencrypted_key
.The solution will be to properly parse the json, or perform
wcsstr(uData, L"\"encrypted_key\":\""))
.In my own environment, if I manually fixed
Local State
thendpapi::chrome
worked like a charm.The text was updated successfully, but these errors were encountered: