Windows Hash
Windows系统使用两种方法对用户的密码进行哈希处理,它们分别是**LAN Manager(LM)哈希和NT LAN Manager(NTLM)**哈希。
LM哈希存在缺陷,所以新版的win不再使用
LM哈希密码最大长度为14,密码长度超过14位使用NTLM哈
希
所谓哈希(hash),就是使用一种加密函数进行计算后的结果。这个加密函数对一个任意长度的字符串数据进行 一次数学加密函数运算,然后返回一个固定长度的字符串。
现在已经有了更新的NTLMv2以及Kerberos验证体系。
Windows加密过的密码口令,我们称之为hash,Windows的系统密码hash默认情况下一般由两部分组成:第一 部分是LM-hash,第二部分是NTLM-hash。
Windows系统下hash密码格式:
用户名称:RID:LM-HASH值:NT-HASH值
Windows的认证包括三个部分:
- 本地认证:用户直接操作计算机登陆账户
- 网络认证:远程连接到工作组中的某个设备
- 域认证:登陆到域环境中的某个设备
Windows本地认证
- 用户输入密码
- 系统收到密码后将用户输入的密码计算成NTLM Hash
- 与sam数据库(%SystemRoot%\system32\config\sam)中该用户的哈希比对
- 匹配则登陆成功,不匹配则登陆失败
NTLM哈希,是一种单向哈希算法,Windows将用户的密码计算成NTLM哈希之后才存储在电脑中。
本地认证中用来处理用户输入密码的进程为lsass.exe,密码会在这个进程中明文保存,供该进程将密码计算成 NTLM Hash与sam进行比对,我们使用mimikatz来获取的明文密码,便是在这个进程中读取到的
python库计算mtlm的hash
pip install passlib
from passlib.hash import nthash
print(nthash.hash('admin')
解密:
cmd5.com
系统用户密码凭证获取
凭证获取工具
- Mimikatz mimikatz
- Powershell脚本
- WCE
- Pwddump7
- Ophcrack
- Procdump+Mimikatz
- 注册表导出Hash
- LaZagne
- Meterpreter获取Hash
- Cobaltstrile获取Hash
Mimikatz
本地非交互式凭证获取: