windows登录的明文密码存储过程

2024-04-26 03:44

本文主要是介绍windows登录的明文密码存储过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文:

        在windows中,一般是通过保存密码的hash值来确保安全性,Windows 默认使用NTLM或Kerberos 身份认证协议进行加密存储密码。

        存储过程:

                (1)尝试登录

                (2)客户端对密码进行哈希处理并缓存密码hash,丢弃实际的明文密码()然后将用户名发送到服务器,发起认证请求。

                (3)服务器会生成一个16字节的随机数,挑战码(challenge),再传回客户端

                (4)当客户端收到challenge以后,会复制一份出来,然后用缓存中的密码hash对它加密,结果称为response,表现形式是Net-NTLM Hash,之后客户端再将challenge,response及用户名一并都传给服务器。

                (5)服务器端在收到客户端传过来的这三个值以后会把它们都转发给DC

                (6)当DC接到过来的这三个值以后,会根据用户名到AD里面找到该用户名对应的NTLM Hash,然后用这个hash和传过来的challenge值再混合加密一次

                (7)将加密后的hash值跟传过来的response进行比较,相同则认证成功反之,则失败

        NTLM(NT LAN Manager):

                (1)NTLM是windows早期版本中使用的一种身份验证协议,现在仍然在某些情况下使用,尽管在现代系统已经被Kerberos取代。

                (2)在NTLM身份验证中,服务器向客户端发送一个随机的质询(challenge),客户端使用用户的密码来计算响应(response),然后将响应发送回服务器,服务器使用与存储的密码哈希值相同的算法来验证响应。

                (3)NTLM身份验证中存在一些安全问题。传输过程中可能被中间人攻击截获密码哈希值的风险;在某些情况下可能会暴露密码的明文形式在内存中。

                (4)在NTLM认证中,NTLM响应分为NTLM v1,NTLMv2,NTLM session v2三种协议,不同协议使用不同格式的Challenge和加密算法,所以也就存在不同协议的Net-NTLM hash,即Net-NTLM v1 hash,Net-NTLM v2 hash。

        Kerberos:

                (1)Kerberos是一种网络身份验证协议,他提供了更安全和更复杂的身份验证机制,已经成为windows领域中主要的标准。

                (2)在Kerberos身份验证中,用户首先通过用户名和密码向Kerberos认证中心(Key Distribution Center,KDC)进行身份验证。KDC会向用户颁发一个特殊的票据(ticket),该票据用于后续与其他网络服务进行通信。

                (3)当用户尝试访问网络资源时,客户端会向KDC请求服务票据(service ticket)KDC会验证用户的身份,并向用户颁发包含加密凭据的服务票据,使其可以访问所有请求的资源。

                (4)Kerberos通过使用密钥加密通信,以及使用票据和票据授信等机制,提供了更高的安全性,相比于NTLM,Kerberos更难以被中间人攻击利用。

        密文存在的位置:SAM保留了计算机本地所有用户的凭证信息,可以理解为一个数据库。

C:\Windows\System32\config\SAM

        
2. 我们通过hashdump 抓取出所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么

hashdump模块:

        通过利用目标系统上的漏洞或提权后的权限,来读取系统内存种SAM数据并提取密码哈希值。它通常利用的原理通常是通过注入恶意代码到目标系统的内存中,或者利用系统漏洞来获取密码哈希值。

hashdump抓取的密文分为LMhash和NThash:

        LM Hash(LAN Manager Hash):微软为了提高windows操作系统的安全性而采用的散列加密算法,其本质是DES加密。尽管LM Hash较容易破解,但是为了保证系统的兼容性,windows只是将LM Hash禁用了,LM Hash明文密码被限制再14位以内,也就是说如果停止使用LM Hash,将用户的密码设置位14位以上就可以了。

        NTLMHash:微软为了在提高安全性的同时保证兼容性而设计的散列加密算法,NTLMHash是基于MD4加密算法进行加密的。

为了保证系统的兼容性,windows只是将LM hash禁用了,但仍然会生成LM hash并且是固定值aad3b435b51404eeaad3b435b51404ee,所以在hashdump抓取结果可以看见两个密文模块。  

3. 为什么第一个模块永远是一样的aad3

为了保证系统的兼容性,windows只是将LM hash禁用了,但仍然会生成LM hash并且是固定值aad3b435b51404eeaad3b435b51404ee,所以第一个模块永远都是add3。


4. 这两个模块的加密算法有什么不同,如何加密的

        LM和NTLM都是使用hash算法加密的,但是LM是将明文转为16字节固定长度的hash值,而NTLM Hash使用更复杂的算法和更长的哈希值来存储密码,通常是32个字符的长度。

这篇关于windows登录的明文密码存储过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936628

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

springboot启动流程过程

《springboot启动流程过程》SpringBoot简化了Spring框架的使用,通过创建`SpringApplication`对象,判断应用类型并设置初始化器和监听器,在`run`方法中,读取配... 目录springboot启动流程springboot程序启动入口1.创建SpringApplicat

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp