Windows机制

1.域

AD

Active Directory,活动目录

存储网络对象(用户、用户组、计算机、安全策略等)信息

功能

1.服务器及客户端计算机管理:Client 和 Server 计算机账户的组策略等管理

2.用户服务:账户信息、用户组、用户组、身份认证、用户授权等管理

3.资源管理:打印机、文件共享服务等管理

4.桌面配置:配置桌面策略(用户使用域资源权限限制、界面功能限制、安全配置等)

5.应用系统支持:支持财务、人事、邮件、补丁管理、防病毒系统等应用系统

2.本地认证

winlogon.exe 接收用户输入的密码,交给 lsass.exe 进行认证

lsass.exe 将密码加密为 NTLM Hash,与 C:\Windows\System32\config\SAM 中的 NTLM Hash 进行比对

比对通过后将 User SID 和 Group SID 发送给 winlogon.exe,准备登陆界面

3.NTLM

工作组 和 域 的认证协议,同时也是一种加密算法

认证流程

协商

Client 向 Server 确认协议版本等信息

质询

客户端:Client 向 Server 提供用户名

服务端:

Server 从本地 SAM 中查找 Client Hash,找不到则不允许

Client Hash 是用户名对应的密码的 NTLM Hash

随机生成Challenge

Net-NTLM Hash = Client Hash(Challenge)

用 Client Hash 将 Challenge 加密为 Net-NTLM Hash

响应Challeng

验证

客户端:

Response = Client Hash(Challenge)

Client 向 Server 提供 Response

服务端:

比对 Net-NTLM Hash 与 Response 是否相同

如果相同,认证成功

NTLM v1 和 NTLM v2 的区别

1.Challenge:v1 8位,v2 16位

2.加密算法:v1 DES、v2 HMAC-MD5

4.Kerberos

域的认证协议

KDC

Key Distribution Center,域控上的密钥分发中心

包含 AS服务(Authentication Service) 和 TGS服务(Ticket Granting Service)

认证流程

第一次通信

客户端:

Client 向 KDC 请求,主要包含:

1.Pre-authentication data = Client Hash(时间戳1)
2.Client Info
3.Server Info

————————————————————————————

KDC:

AS 先验证 Client Info,通过后用 Client Hash 解密 Pre-authentication data 得到 时间戳1

如果不超时,随机生成 Session Key

响应信息,主要包含:

1.TGT = KDC Hash(Session Key, Client Info, TGT到期时间)
2.enc-part = Client Hash(Session Key)
——————————————————————————————————————————————————————
TGT 有效时间一般为 8h
KDC Hash 是 krbtgt用户 的密码的 NTLM Hash

第二次通信

客户端:

用 Client Hash 解密 enc-part 得到 Session Key

Client 向 KDC 请求,主要包含:

1.TGT
2.Authenticator = Session Key(Client Info, 时间戳2)
3.Server Info

————————————————————————————

KDC:

用 KDC Hash 解密 TGT,得到 Session Key、Client Info、TGT到期时间

如果 TGT 没过期,用 Session Key 解密 Authenticator 得到 Client Info、时间戳2

如果不超时,比对两个 Client Info 是否相同,并且判断 Client 是否有权限访问对应服务

如果没问题,随机生成 Server Session Key

响应信息,主要包含:

1.Service Ticket = Server Hash(Server Session Key, Client Info, Service Ticket到期时间)
2.enc-part = Session Key(Server Session Key)
———————————————————————————————————————————————————————————————————————————————————————
Server Hash 是通过 Server Info 对应到的 NTLM Hash

第三次通信

客户端:

用 Session Key 解密 enc-part 得到 Server Session Key

Client 向 Server 请求,主要包含:

1.Service Ticket
2.Server Session Key(Client Info, 时间戳3)

————————————————————————————

服务端:

用 Server Hash 解密 Service Ticket,得到 Server Session Key、Client Info、Service Ticket到期时间

如果 Service Ticket 没过期,用 Server Session Key 解密得到 Client Info、时间戳3

如果不超时,比对两个 Client Info 是否相同

如果相同,认证成功

posted @ 2023-06-03 14:58  Hacker&Cat  阅读(38)  评论(0编辑  收藏  举报