27

Windows认证 | Windows本地认证

 4 years ago
source link: https://www.tuicool.com/articles/juYzArY
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Windows的登陆密码是储存在系统本地的SAM文件中的,在登陆Windows的时候,系统会将用户输入的密码与SAM文件中的密码进行对比,如果相同,则认证成功。

SAM文件是位于 %SystemRoot%\system32\config\ 目录下的,用于储存本地所有用户的凭证信息,但是这并不代表着你可以随意去查看系统密码。

RZniMvj.jpg!web

Windows本身是不会存储明文密码的,在SAM文件中所储存的是密码的hash值,在登陆对比的时候,也是先将用户的输入转换为hash值,才进行对比的。

目前在Windows中所使用的密码hash被称为NTLM hash,全称为:NT LAN Manager,它是一个由数字和字母组成的32位的值,是经过hex、Unicode、MD4三层加密后得到的。

Ujy6ZjA.jpg!web

所以在登陆的时候,他整体的流程是这样的

N7vuE3U.jpg!web

注:winlogon是用来管理用户登陆和登出的,lsass是用于本地安全和登陆策略的

说完了NTLM hash再说一下LM hash,LM hash是NTLM hash的前身,它本身是非常脆弱的,对于它的生成规则就不多说了,用网上的一个解释来让大家看看。

ZJFbaqQ.jpg!web

通过这个大家也能很明确的看出来,进行LM hash加密的时候,其中的key值是一个固定值 KGS!@#$% ,这就意味着它被暴力破解出来的可能性是非常大的,而且通过LM hash的生成机制,还能很清楚的看出来如果密码是否大于等于7位,因为当位数不足时,后面会用0来补全,所以当我们的密码位数小于7时,最终生成的LM hash的末尾字符是一个恒定不变的值: AA-D3-B4-35-B5-14-04-EE

目前大多数的Windows都是使用的NTLMhash的,在Windows Vista和WindowsServer 2008以前的系统还会使用LM hash

** 自WindowsVista和Windows Server 2008开始,Windows取消LM hash。 **

也正是因为密码都储存在SAM文件中,所以才会有了通过各种方法在线或者离线提取SAM文件中的hash值,当然SAM文件也是不允许直接拷贝和访问的,需要通过一些其他的办法来提取,最后通过彩虹表等其他的一些工具进行破解即可得到明文密码,或者通过Mimikatz读取lsass.exe进程能获得已登录用户的NTLM hash,这部分内容在网络上也已经有了相当多的资料,想深入了解可以自己去网上查一查即可。

文章首发公众号:无心的梦呓(wuxinmengyi)

这是一个记录红队学习、信安笔记,个人成长的公众号

扫码关注即可

Enu2a2n.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK