Windows身份验证和密码摘要

发布者:上海IT外包来源:http://www.lanmon.net点击数:1909

1. Windows的主要身份验证方法是什么?
Windows身份验证方法主要包括NTLM身份验证和Kerberos身份验证。同时,Windows Access Token记录用户的SID,组ID,会话和权限,还扮演权限认证的角色。
其中,NTLM认证主要有两种方式:本地认证和网络认证。在本地登录时,用户的密码存储在%SystemRoot%\ system32 \ config \ sam文件中。当用户输入用于本地认证的密码时,所有操作都在本地执行。他实际上将用户输入的密码转换为NTLM Hash,并将其与SAM中的NTLM Hash进行比较。网络身份验证基于质询/响应身份验证机制的证书模式。他的认证过程将在下面详细讨论。
域环境中使用Kerberos身份验证,这是一种基于票证的身份验证方法。他的整个认证过程涉及三方:客户,服务器和KDC(密钥分发中心)。在Windows域环境中,DC(域控制)用作KDC。
访问令牌是用于描述进程或线程安全上下文的对象。令牌中包含的信息是与用户帐户关联的进程或线程的标识和权限信息。当用户登录时,系统会生成访问令牌,然后以用户身份运行的所有进程都会拥有该令牌的副本。这也解释了用户创建进程而B用户没有该进程的权限。
2.什么是NTLM认证流程?
第一种是本地身份验证,即生成NTLM哈希的方式。
当用户注销,重新启动并锁定屏幕时,操作系统将让winlogon显示登录界面,即输入框。当winlogon.exe收到输入时,它会将密码传递给LSASS进程。在此过程中,存储明文密码,并将明文密码加密到NTLM Hash中,并对SAM数据库进行比较和验证。 (winlogon.exe,Windows登录进程,是一个管理用户登录和注销的Windows NT用户登录程序。LSASS用于Microsoft Windows系统的安全机制。它用于本地安全和登录策略。 )
例如,当用户输入密码123456时,操作系统将123456转换为十六进制。 Unicode转换后,MD4加密算法用于加密。加密结果的十六进制值是NTLM Hash。
123456  - >
十六进制(十六进制代码)=313233343536
313233343536  - >
Unicode=610064006d0069006e00
610064006d0069006e00  - >
MD4=209c6174da490caeb422f3fa5a7ae634
在了解了本地认证的过程之后,让我们来谈谈网络认证的具体过程。
NTLM协议需要完成三条消息:协商,质询和身份验证。
协商:主要用于确认协议版本,加密级别等。
挑战:服务器收到客户端的协商消息后,将读取内容并选择可接受的服务内容,加密级别,安全服务等。并生成随机数挑战,然后生成挑战消息以返回到客户端。此消息是质询/响应认证机制的主要功能。
认证:验证主要是在完成挑战后验证结果,是认证的最后一步。
详细过程如下:
第一步是输入密码,然后LSASS将首先存储密码的NTLM哈希值。
在第二步中,客户端将用户名的纯文本发送到服务器。
在第三步中,服务器将生成一个16位随机数,即挑战,然后将其发送回客户端。
第四步,当客户端收到质询时,使用第一步中存储的NTLM Hash对其进行加密,然后将加密的质询发送到服务器,即响应。
在第五步中,服务器收到响应后,向客户端发送验证请求给DC。该请求主要包括以下三个方面:客户端用户名,客户端NTLM哈希加密挑战和原始挑战。
在第六步中,当DC接收到三个值时,在用户名的帐户数据库(ntds.dit)中找到对应于用户名的NTLM哈希,然后取出并传递哈希。比较挑战值,同样成功,反之亦然。
以上是NTLM v1身份验证方法。 NTLM v2和v1之间最显着的区别是Challenge与加密算法不同。常见的一点是加密密钥是NTLM哈希。 NTLM v1的挑战有8位,NTLM v2的挑战是16位。 NTLM v1的主要加密算法是DES,NTLM v2的主要加密算法是HMAC-MD5。3. NTLM的主要姿势是什么?
当我们通过转储哈希获得NTLM哈希时,我通常会尝试直接在线解决问题。常用的破解网站:
https://www.objectif-securite.ch/en/ophcrack.php/
http://www.cmd5.com/
https://www.somd5.com/
如果你不能破解它,试试传递哈希。
哈希传递是使用与用户名对应的NTLM哈希加密服务器给出的挑战,并生成响应以完成身份验证。通过Hash可以完成一个不需要密码的NTLM协议认证过程,所以它不是一个bug,这是一个技巧。
常用的pth工具是: mimikatz(首选),wmiexec/psexec,exploit/windows/smb/psexec_psh,powershell调用一系列小脚本。
当然,也可以使用pth。如果目标机器安装了KB2871997,那么我们就不能pth了。然后我们有另一个姿势:传递钥匙。对于8.1/2012r2,使用补丁kb2871997安装Win 7/2008r2/8/2012,您可以使用AES密钥而不是NTLM Hash。当mimikatz捕获哈希值时,您可以将其捕获。事实上,mimikatz本身的pth是ptk。
命令:
Mimikatz“特权::调试”“sekurlsa:: pth /用户: a/domain: test.local/aes256: f74b379b5b422819db694aaf78f49177ed21c98ddad6b0e246a7e17df6d19d5c”
除了这些之外,还有许多其他的姿势,例如修补管理员帐户以抛出pth,当打开Restricted Admin Mode时,win8.1和server12 R2默认支持pth,启用WDigest劫持winlogon fairy jump。
4.需要注意的Kerberos身份验证的主要知识点是什么?
首先解释一些名词:
基本概念:KDC:密钥分发中心,密钥分发中心,负责管理故障单,身份验证票据和分发说明,但KDC不是一个独立的服务,它由AS和TGS组成。
AS:认证服务,认证服务,客户端的TGT服务
TGS:票证授予服务,票证授予服务,为客户生成服务的票证
TGT:门票授予门票,门票可以通过门票获得,是一种临时证书。
票证:票证,这是网络中对象之间的相互访问。
AD:帐户数据库,存储所有客户端的白名单。只有白名单中存在的客户端才能成功申请TGT。
DC:域控制器,域控制
KRBTGT:每个域控制器都有一个krbtgt帐户,该帐户是用于创建TGS加密密钥的KDC服务帐户。
Kerberos提供集中身份验证方法。在整个认证过程中,共涉及三方:客户端,服务器和KDC。在Windows域环境中,KDC的角色由DC处理。 Kerberos是基于票证的。身份验证方法,故障单(故障单)用于在身份验证服务器和用户请求的服务之间安全地传输用户的身份,并传递一些其他信息以确保使用故障单的用户必须是在票。生成故障单后,客户端可以在生命周期内多次使用该故障单来申请相同的服务器服务。这里有一个售票盗窃问题。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部