Jump to content

Windows身份验证机制的分析:本地,工作组,域环境。

本地身份验证(用户登录)

概念

在本地登录Windows时,操作系统将使用用户输入的密码作为凭据来验证系统中的密码。操作系统中的密码存储在

当1%SystemRoot%\ System32 \ Config \ Sam登录到系统时,系统将在SAM文件中自动读取“密码”,并将其与我们输入的“密码”进行比较。如果相同的话,它证明了身份验证成功!

该SAM文件保留了计算机本地所有用户的凭据信息,可以将其理解为数据库。

※注意:Windows本身并不能保存纯文本密码,仅保存密码哈希。

ntlm哈希的产生

NTLM Hash的前身是LM哈希。由于安全性缺陷,它已被消除。无需了解太多。只知道有这个东西。

假设我的密码是管理员,操作系统将把管理员转换为十六进制。在Unicode转换后,它将将MD4加密算法称为加密。该加密结果的十六进制系统是NTLM哈希。

123admin - hex(hex encoding)=61646d696e61646d696e - Unicode=610064006d0069006e00610064006d0069006e00 - MD4=209c6174da490caeb422f3fa5a7ae634

本地认证过程

123456winlogon.exe-接收用户输入-lsass.exe-(身份验证)1。在用户注销后,重新启动并锁定屏幕2。操作系统将使Winlogon显示登录界面,即输入框3。输入输入后,将密码置于PLASIT上,该过程将其存储在该流程中,将其存储在此过程中,该过程将其存储在此过程中。哈希,并比较SAM数据库Windows登录进程(即Winlogon.exe)的身份验证,该过程是Windows NT用户登录程序,用于管理用户登录和注销。

LSAS用于Microsoft Windows系统的安全机制。它用于本地安全性和登录策略。

net NTLM)

由于DC(域控制器)的参与过程,工作组环境和域环境中的NET NTLM身份验证过程略有不同,但这不会影响我们的哈希交付攻击。让我们在这里分开谈论它。

NTLM协议概念

此协议仅支持Windows NTLM作为网络身份验证协议,全名是:NT LAN Manager,它是基于挑战/响应身份验证机制的身份验证模式。

NTLM网络身份验证协议是一种使用NTLM哈希作为身份验证的基本证书的协议。消息的传输取决于使用NTLM的上层协议,例如SMB,LDAP,HTTP等。

工作组

NTLM协议身份验证过程

谈判:它主要用于确认双方之间的协议版本。 NTLM中有两个版本的V1和V2。具体的区别在于,加密方法是不同的,因此通常没有必要。

询问:有效的是挑战/响应身份验证机制的范围,也是身份验证机制的核心。

验证:验证主要验证询问完成后的结果,这是身份验证的最后一步。

谈判

img

问题

1. client将用户信息(用户名)请求发送到服务器。

2。接收到用户信息后,服务器确定是否存在本地帐户列表(如果不存在,则返回身份验证失败)。如果存在,它将生成一个16位随机数(挑战),然后使用与登录用户名相对应的NTLM哈希加密挑战(16位随机字符),并生成挑战1(net-ntlm hash)以存储在内存中。同时,向客户发送挑战(16位随机字符)。

3。在客户端收到服务器发送的挑战之后,请使用要登录到帐户的NTLM Hash加密挑战以生成响应(Net-NTLM Hash),然后将响应发送到服务器。

净NTLM哈希在此处介绍:NTLM哈希加密挑战的结果称为网络协议中的NET NTLM HASH(不能直接用于执行Hash Pass攻击,但是可以通过蛮力破解获得宣传密码)。

详细简介:https://daiker.gitbook.io/windows-protocol/ntlm-pian/4#0x03-net-net-ntlm-hash

服务器收到客户端发送的响应(net-ntlm hash)之后,它与以前存储在内存中存储的Challenge1(Net-NTLM Hash)进行比较。如果是平等的,则身份验证将通过。

现在,让我们看一下身份验证过程。清晰吗?

作者倾旋

NTLM协议身份验证过程

域NTLM身份验证过程下的域环境中的过程略有不同,因为有DC(域控制器)参与的工作组。

作者daiker

①用户将登录到客户端计算机中。

②客户端将协商消息发送到服务器,该消息主要包含客户端支持并由服务器请求的功能列表。

③服务器响应挑战消息(挑战),其中包含服务器支持和同意的功能列表。但最重要的是,它包含服务器产生的挑战。

④客户通过身份验证消息(响应)回答了这个问题。用户在步骤③中收到挑战后,他使用用户哈希和挑战来执行加密操作以获得响应,并将响应,用户名和挑战发送给服务器。消息中的响应(net-ntlm hash)是最关键的部分,因为它们向服务器证明了客户端用户已经知道帐户密码。

⑤服务器获取身份验证消息(响应)后,使用挑战和用户哈希对其进行加密以获取响应2并将其与步骤3发送的响应进行比较。

目前,如果已经过身份验证的用户哈希存储在域控件中,则在本地没有身份验证的用户哈希,并且无法计算响应2,因此验证步骤⑤无法完成。因此,服务器将通过Netlogon协议联系域控制,建立安全的频道,然后将所有协商消息,挑战消息和身份验证消息(响应)发送到域控制(此过程也称为通过身份验证身份验证过程)。

⑥域控制使用挑战和身份验证的用户的哈希对响应2进行加密,并将其与类型3的响应进行比较,以确定其是否一致。

⑦完成认证过程。

参考文章

https://Daiker.gitbook.io/windows-protocol/ntlm-pian/4#0x02-ntlm-shen-fen-fen-yan-zheng

https://payloads.online/archivers/2018-11-30/1/

https://ares-x.com/2020/03/16/%E5%9f%9f%9F%E6%B8%97%E9%E9%80%80%8F%E5%AD%AD%A6%E4%B9%A 0%EF%BC%88%E4%B8%80%EF%BC%89Windows%E8%AE%A4%E8%AF%AF%81%E6%9C%BA%E5%E5%88%B6/

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...