当前位置:网站首页 > 技术博客 > 正文

mimikatz获取密码



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)。

Mimikatz 需要管理员或 SYSTEM 权限,通常使用 DEBUG 权限执行某些操作,与 LSASS 进程(取决于所做的操作的要求)进行交互。

Mimikatz 可以通过编译并运行你自己的版本,运行 Mimikatz 可执行文件,利用 Metasploit 脚本,和官方的 PowerShell 版本— Invoke-Mimikatz ,或 Mimikatz 的十多个 PowerShell 变种(我比较偏爱用 PowerShell 写的 Empire,因为它真的很棒!)。

mimikatz

mimikatz wiki

gentikiwi blog

在用户登录之后,会生成很多凭证数据并存储在本地安全权限服务的进程(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 需要打 kb 补丁。为了防止在 LSASS 进程中放置“明文”密码,下面的注册表键需要被设置为“0”(禁用摘要):

 
  
 
  

1.控制远程的服务器后,‘帮助’对方下载mimikatz,然后以管理员身份运行mimikatz.exe

2.运行下面指令,即可得到当前内网中的所有密码。

 
  

果对方电脑开了防火墙,装了杀毒软件,如360,火绒,nod32之类的话。可能就不能在对方电脑上使用mimikatz

然后从 lsass.exe进程里导出一个 包含账号密码信息的lsass.dmp 文件,再把这个dmp文件传回来,最后在自己的环境下运行mimikatz,从 dmp文件里读取信息。

1、安装procdump64.exe

2、从procdump64.exe里导出lsass.dmp

 
  

3、将lsass.dmp传回本地

4、使用本地的mimikatz.exe读取lsass.dmp

 
  

为了方便复制与查看,可以输出到本地文件里面:

 
  

注:得在域控上以域管理员身份执行mimikatz

方法一:直接执行

 
  

方法二:通过 dcsync,利用目录复制服务(DRS)从NTDS.DIT文件中检索密码哈希值,可以在域管权限下执行获取:

 
  

域账户的用户名和hash密码以域数据库的形式存放在域控制器的 文件中。

这里可以借助:,域控制器自带的域数据库管理工具,我们可以通过域数据库,提取出域中所有的域用户信息,在域控上依次执行如下命令,导出域数据库:

 
  

将ntds.dit文件拷贝到本地利用impacket脚本dump出Hash:

 
  

最后记得卸载删除快照:

 
  

为什么要再提一遍secretsdump呢,因为它可以直接导出,说白了,简单粗暴:

 
  

首先它会导出本地SAM中的hash,然后是所有域内用户的IP,全部获取成功

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

 
  

在弹出的cmd窗口,我们直接可以连接该主机,并且查看该主机下的文件夹。

或者可以直接将该主机的C盘映射到本地的K盘

在域环境中,当我们获得了域内用户的NTLM哈希值,我们可以使用域内的一台主机用mimikatz对域控进行哈希传递攻击。执行完命令后,会弹出cmd窗口。前提是我们必须拥有域内任意一台主机的本地 administrator 权限和获得了域用户的NTLM哈希值

 
  

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

首先获取krbtgt的用户hash:

 
  

利用 mimikatz 生成域管权限的 Golden Ticket,填入对应的域管理员账号、域名称、sid值,如下:

 
  

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

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

 
  

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

 
  

微软在 2014 年 3 月 12 日添加了 LSA 爆护策略,用来防止对进程 lsass.exe 的代码注入。如果直接尝试添加 skelenton key 会失败。

 
  

当然 mimikatz 依旧可以绕过,该功能需要导入mimidrv.sys文件,导入命令如下:

 
  

当我们拿到了一个普通域成员的账号后,想继续对该域进行渗透,拿到域控服务器权限。如果域控服务器存在 MS14_068 漏洞,并且未打补丁,那么我们就可以利用 MS14_068 快速获得域控服务器权限。

MS14-068编号 CVE-2014-6324,补丁为 ,如果自检可在域控制器上使用命令检测。

 
  

操作链接:MS14-068复现(CVE-2014-6324):https://www.cnblogs.com/-mo-/p/11890539.html

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

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

 
  

非官方参考

详细的使用方法

版权声明


相关文章:

  • 什么是数据结构2025-08-21 17:30:05
  • 86版王码五笔输入法字根表2025-08-21 17:30:05
  • java虚拟机使用教程2025-08-21 17:30:05
  • 无锁编程有哪些2025-08-21 17:30:05
  • iic 通信2025-08-21 17:30:05
  • 串口调试助手下载2025-08-21 17:30:05
  • tokenization 翻译2025-08-21 17:30:05
  • rand怎么输出随机字符c语言2025-08-21 17:30:05
  • linux中usermod用法2025-08-21 17:30:05
  • 标志位syn2025-08-21 17:30:05