Windows的登录密码是储存在系统本地的SAM文件中的,在登录Windows的时候,系统会将用户输入的密码与SAM文件中的密码进行对比,若是相同,则认证成功。html
SAM文件是位于%SystemRoot%\system32\config\
目录下的,用于储存本地全部用户的凭证信息,可是这并不表明着你能够随意去查看系统密码。sass
Windows自己是不会存储明文密码的,在SAM文件中所储存的是密码的hash值,在登录对比的时候,也是先将用户的输入转换为hash值,才进行对比的。安全
目前在Windows中所使用的密码hash被称为NTLM hash,全称为:NT LAN Manager,它是一个由数字和字母组成的32位的值,是通过hex、Unicode、MD4三层加密后获得的。网络
因此在登录的时候,他总体的流程是这样的工具
注:winlogon是用来管理用户登录和登出的,lsass是用于本地安全和登录策略的学习
说完了NTLM hash再说一下LM hash,LM hash是NTLM hash的前身,它自己是很是脆弱的,对于它的生成规则就很少说了,用网上的一个解释来让你们看看。加密
经过这个你们也能很明确的看出来,进行LM hash加密的时候,其中的key值是一个固定值KGS!@#$%
,这就意味着它被暴力破解出来的可能性是很是大的,并且经过LM hash的生成机制,还能很清楚的看出来若是密码是否大于等于7位,由于当位数不足时,后面会用0来补全,因此当咱们的密码位数小于7时,最终生成的LM hash的末尾字符是一个恒定不变的值:AA-D3-B4-35-B5-14-04-EE
。code
目前大多数的Windows都是使用的NTLMhash的,在Windows Vista和WindowsServer 2008之前的系统还会使用LM hashhtm
** 自WindowsVista和Windows Server 2008开始,Windows取消LM hash。 **blog
也正是由于密码都储存在SAM文件中,因此才会有了经过各类方法在线或者离线提取SAM文件中的hash值,固然SAM文件也是不容许直接拷贝和访问的,须要经过一些其余的办法来提取,最后经过彩虹表等其余的一些工具进行破解便可获得明文密码,或者经过Mimikatz读取lsass.exe进程能得到已登陆用户的NTLM hash,这部份内容在网络上也已经有了至关多的资料,想深刻了解能够本身去网上查一查便可。
文章首发公众号:无意的梦呓(wuxinmengyi)
这是一个记录红队学习、信安笔记,我的成长的公众号
扫码关注便可
原文出处:https://www.cnblogs.com/wuxinmengyi/p/11599273.html