[Credential Access] Dumping Hashes from SAM

一、Windows SAM(Security Accounts Manager)

SAM是管理SAM database的服务,SAM database中存储了本地用户的密码Hash信息,早期windows使用LM Hash验证,但其易于破解,从windows Vista和windows server 2008开始,默认禁用LM Hash;现在使用的是NTLM Hash。

SAM database存储在HKLM\SAM中,访问它需要system权限注意,SAM database只存储本地用户的密码,不会存域用户。

通过regedit 查看HKLM\SAM:

以Administrator权限,执行".\PsExec.exe -accepteula -i -s regedit.exe" ,就可以以system权限启动regedit.exe了。

二、online模式dump hashs(目标机器上装有相应软件)

1. 使用pwdump7(run as Administrator

 可以通过生成NTLM Hash的网站,验证下是不是你所设密码的NTLM Hash

2. 使用mimikatz

首先run as Administrator, 此时mimikatz进程是high integrity,访问SAM database需要System权限,所以需要再提权。

也可以类似上面使用PsExec.exe -s 启动mimikatz,此时mimikatz进程是system integrity,这时候直接执行"lsadump::sam"即可。

三、offline模式dump hashs

如果目标机器没有装相应软件,则可以先dump出SAM文件(run as Administrator),再用工具从SAM文件中读取HASH(此时就不需要高权限了)。

reg save HKLM\SYSTEM SystemBkup.hiv
reg save HKLM\SAM SamBkup.hiv

1. pwdump7

.\PwDump7.exe -s E:\RedTeam\mimikatz\SamBkup.hiv E:\RedTeam\mimikatz\SystemBkup.hiv

2. mimikatz

mimikatz # lsadump::sam /system:SystemBkup.hiv /sam:SamBkup.hiv

四、破解NTLM Hash

常见工具有john, hashcat等,这里自行Google工具的用法吧,如果没有字典,或者对密码有个大概猜测的话,通过暴力破解还是蛮难的。

五、Pass the hash,哈希传递

破解NTLM Hash还原出明文密码有难度,但可以通过Pass the hash的方式来进行横向移动。Windows在进行身份认证时不会使用明文密码来比较,而是使用密码哈希值,攻击者可以在拿到NTLM Hash后伪造成该用户进行认证。

这篇文章介绍了Windows NTLM认证方式,感兴趣可以看看。

mimikatz # sekurlsa::pth /user:Administrator /domain:WORKGROUP /ntlm:******************************** /run:powershell.exe

mimikatz会启动一个powershell,可在这个命令行环境中控制远程目标机器。(本来也拿到了test 用户的NTLM Hash,但用它横向移动时一直是permission denied,还不知道原因)

读文件、拷贝本地文件到远程主机都没什么问题

列出远程机器进程列表

创建定时任务来执行命令,at 命令或schtasks命令,启动的子进程是System权限,nice~

PS C:\Windows\system32> at \\192.168.240.128 4:37PM C:\Windows\System32\calc.exe
AT 命令已弃用。请改用 schtasks.exe。

新加了一项作业,其作业 ID = 3

创建定时任务来执行命令不太方便,如果有直接在powershell 命令行环境可以远程执行命令的方法再补充。

猜你喜欢

转载自www.cnblogs.com/ring-lcy/p/12442614.html
SAM