系统相关
首页 > 系统相关> > windows认证机制

windows认证机制

作者:互联网

windows认证机制

本文参考Windows认证及抓密码总结

当前windows的认证机制主要有两种,一种是ntlm认证,另一种是kerberos。还有一种成为ACCESS TOKEN也起到权限认证的作用,这个token主要是用来标识用户与程序之间的所属关系的。当用户登录后会生成一个access token,当前用户打开的每一个进程都拥有一份这个access token的拷贝,这也是为什么用户b不能处理用户a打开的进程的原因

一、NTLM认证

1.1 NTLM本地认证

当用户注销登录后,操作系统会盗用winlogon.exe程序,也就是我们看到的登录界面,当我们输入用户名密码之后,该进程会将我们的用户名密码交给lsass.exe进程,该进程会将我们的用户名密码进行hash变换得到ntlm hash,并存储一份明文密码,然后同windows的sam数据库进行对比,如果对比成功,则登录成功,否则登录失败。因为存在明文密码,所以我们可以在lsass进程中将该密文提取出来,常用的提取工具是mimikatz与msf。
ntml是怎么得到的呢,首先将我们的用户名密码进行16进制变化,然后进行unicode变换,通过md4摘要得到ntlm hash

123456 -> hex(16进制编码) = 313233343536
313233343536 -> Unicode = 610064006d0069006e00
610064006d0069006e00 -> MD4 = 209c6174da490caeb422f3fa5a7ae634

1.2 NTLM网络认证

NTLM的网络认证,设计到challenge/response机制,即协商、挑战、认证
协商: 主要确认双方的协议版本、加密等级
挑战: 服务器在收到客户端发送的协商请求后,得到里面的内容,然后确认使用的协议版本、加密等级,安全服务,并生成一个随机数返回给客户端,该随机数根据协议版本的不同,长度不同。
认证: 挑战完成后,进行认证

具体的实现过程如下:

二、kerberos认证

这个东西有点复杂,不过找到了一篇很好的文章,终于理解了!!!Kerberos认证流程简述

2.1 kerberos解决了什么问题

简单地说,Kerberos提供了一种单点登录(SSO)的方法。考虑这样一个场景,在一个网络中有不同的服务器,比如,打印服务器、邮件服务器和文件服务器。这些服务器都有认证的需求。很自然的,不可能让每个服务器自己实现一套认证系统,而是提供一个中心认证服务器(AS-Authentication Server)供这些服务器使用。这样任何客户端就只需维护一个密码就能登录所有服务器。kerberos不仅验证客户端,也验证服务端!!

2.2 kerberos中涉及的角色

2.3 kerberos完整认证过程

先放图
在这里插入图片描述
这里面涉及到一个krbtgt账户,该账户时kdc的一个自建用户,不能用于登录,在域控中使用net user命令可以查看。

由于krbtgt只存在于域控中KDC中,TGT要用krbtgt的NTLM HASH解密,即TGT只能由KDC解密
所以如果krbtgt的NTLM HASH泄露出去了,那谁拿到krbtgt的NTLM HASH,谁就充当KDC,就可以伪造TGT,也就是权限维持里常说的黄金票据。。。。。。的原理,生成伪造黄金票据把票据一导入,体验一把生杀大权尽在手中的感觉。黄金票据就是域控的krbtgt用户的ntlm hash

另一方面ticket是服务账号用NTLM HASH加密得到的,如果这个服务账号的NTLM HASH泄露了,谁拿到域控中计算机服务账号的NTLM HASH,谁就充当TGS,这就是权限维持中白银票据的原理。白白银票据就是被请求服务的账户的ntlm hash。

标签:NTLM,hash,windows,ntlm,认证,服务器,机制,客户端
来源: https://blog.csdn.net/qq_32731075/article/details/118095664