【Windows安全】Windows认证原理入门+实战验证

news/2025/3/6 11:20:26/文章来源:https://www.cnblogs.com/o-O-oO/p/18754599

一、基本原理:

Windows密码的路径是:

%SystemRoot%\System32\config\sam  
# 即”SAM路径“

当我们登陆系统时,系统会自动地读取SAM文件中的密码与我们输入的密码进行比对,密码会被转换为HTML HASH(NT LAN Manager)进行存储。
Windows本身不存储用户的明文密码,Windows会将用户的明文密码经过加密算法后存储在SAM数据库中,当用户登陆时,将用户输入的明文密码也加密成NTML HASH,与SAM数据库中的NTLM HASH进行比较 (NTLM Hash的前身是LM HASH,基本已淘汰,算法脆弱,但是xp2003内老系统仍旧存在)。

LM HASH主要存在的安全问题是:密码不区分大小写(因为最开始会把密码统一转换为大写)、密码最长为14位、可通过加密后的值反推加密前的密码位数、DES加密强度较弱等。

二、NTML HASH生成原理三步骤详解

  • 第一步:hex (16进制编码)

  • 第二步:Unicode编码(ASCII转Unicode)

  • 第三步:MD4加密得到NTML HASH

参考:MD4是麻省理工学院教授Ronald Rivest于1990年设计的一种信息摘要算法。它是一种用来测试信息完整性的密码散列函数的实行。其摘要长度为128位,一般128位长的MD4散列被表示为32位的十六进制数字。这个算法影响了后来的算法如MD5、SHA 家族和RIPEMD等。

三、Windows本地认证流程

注销或开机后:弹出输入账号密码的界面,用于接受用户输入 (实际会有个本地进程:winlogon.exe进程,用于管理用户的登陆和退出);

进程(1):winlogon.exe进程,将账号密码给lsass.exe进程进行处理,并将密码缓存在进程中;

进程(2):lsass.exe进程,将密码转换为NTML HASH,读取SAM数据库与用户名进行比较;

若比较结果相同,则将User SID与Group SID发给winlogon.exe,并准备登陆界面;若比较结果不同,则登陆失败。

四、Windows网络认证原理

局域网工作组:缺少信托机构(银行:两者之间进行交易所必须信任的中间人)

工作组的环境是一个逻辑上的网络环境(工作区),隶属于工作组的机器之间无法互相建立一个完美的信任机制,只能点对点,是较为落后的认证方式,没有信托机构。

假设A主机与B主机在一个工作主组环境,A想要访问B主机上的资源,需要将一个存在于B主机上的账户凭证发送至B主机,经过认证才能访问B主机上的资源。传输数据由协议来规范数据如何传递,最常见的服务:SMB服务 端口445。

五、NTLM协议——NT LAN Manager

认证如此简单因此需要协议来规范,于是就产生了NTLM协议。

  • SMB协议:早期在网络上传输的是明文口令;

  • LM协议:后来出现了LAN Manager Challenge/Response挑战和验证机制,简称LM,较脆弱;

  • NLTM协议:后续微软提出WindowsNT挑战/响应验证机制“NTLM”,NTLM支持SMB(SMB是个服务,操作上的)。

六、挑战和响应机制 (NTLM V2)

第一步:协商

确认协议版本,是V1还是V2?

第二步:质询

质询的完整过程:

(1)服务器判断用户是否存在:

客户端向服务器端发送用户主机信息(必须包含用户名),服务器用客户端请求的用户名来判断服务器内是否有这个用户;

若没有这个用户,那么认证过程就是失败的;若有,则继续:

(2)服务器生成16位Challenge:

服务器接受到请求之后生成一个16位随机数Challenge,服务器使用登录用户名对应的NTLM HASH;

(3)服务器生成Net NTLM HASH:

服务器用本机SAM文件数据库内NTLM HASH 加密 16位随机数 Challenge生成Challenge1 即“Net NTML HASH”;

(4)服务器返回16位Challenge:

服务器将之前生成的16位随机数Challenge再发送给客户端;

(5)客户端生成Response:

客户端接受到Challenge之后,使用将要登陆到账户对应的NTLM HASH加密Challenge生成Response,然后将Response发送到服务端 ;

第三步:验证

(6)服务端比对Response是否等于Net NTLM HASH:

比对服务器端收到客户端的Response后,比对NET NTLM HASH与Response是否相等,相等则通过。

实战验证

(1)修改mdmin账户密码为vsrc@2020。

(2)通过Pythonnthash.hash函数能直接得出vsrc@2020对应的NTML HASH为:7b86d7692a8b1de47817434f08671229;

(3)根据NTML HASH的生成原理推算也同样得到7b86d7692a8b1de47817434f08671229;

第一步:将vsrc@2020进行十六进制的转换后输出结果如下;

第二步:将
转码为Unicode得到结果如下;

第三步:将760073007200630040003200300032003000进行MD4加密后得到结果如下;

(4)将lsass保存在内存中的信息dump成为本地lsass.dmp文件;

(5)获取lsass.dmp文件内容并查看mdmin账户密码的NTML HASH值:与分步骤推算的值一致,再一次得到7b86d7692a8b1de47817434f08671229;

验证完成。

参考🔗:

1、https://docs.microsoft.com/en-us/windows/win32/secauthn/microsoft-ntlm
2、https://docs.microsoft.com/en-us/windows/win32/secauthn/microsoft-kerberos 
3、https://www.insecurity.be/blog/2018/01/21/retrieving-ntlm-hashes-and-what-changed-technical-writeup/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894558.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows系统下部分软件(新版wps,有道云笔记等)字体出现断笔,锯齿感,模糊的解决方式

解决方式会放在文后,直接拖拽到最下方即可 问题描述: 我需要把这个问题描述的详细些,这样你们可以通过更多的关键词找到我这个博客。 这个问题困扰了我好几年,最近因为要使用obsidian,但是发现还是有这个问题,终于下定决心去处理它。 首先这个字体的问题并不是模糊,但很…

安川机器人基板JANCD-XEW01-2维修细节查看

安川机器人基板JANCD-XEW01-2维修细节查看一、常见故障安川机器人基板JANCD-XEW01-2在使用过程中可能出现以下常见故障:| 故障类型 | 具体表现 || 电源故障 | 元件老化、电源电压异常等 || 通信故障 | 线路故障或接口损坏导致与其他部分通信出现问题 || 逻辑运算错误 | 软件缺…

vivo 大规模容器集群运维平台实践

容器平台已经成为支持应用运维和部署的重要基础设施,当前 vivo 内部容器平台共有20+生产集群,管理数万物理机节点,运维管理难度不断增大。为提升运维效率和稳定性,容器团队开发了北斗运维管理平台用于解决大规模集群运维问题。北斗容器运维管理平台包含资源管理,集群扩缩容…

20250306

20号胶 给人以希望

中电金信IDC 发布《中国金融大模型发展白皮书》,解锁可信AI能力基座构建指南

随着DeepSeek的横空出世,大模型技术创新与应用落地快速发展。同时国务院国资委深化部署“AI+”专项行动,这不仅加速了金融行业的智能化进程,更为科技企业带来前所未有的业务创新机遇,开启智能金融新时代。此次基于中电金信在金融科技领域的长期实践积累,同时融合IDC 大模型…

web开发前端传过来的数据与数据库数据不完全相同

在上面这种情况下,可以在后端再创建一个新的实体类对象,例如:在上面的例子中,可以设置一个EmployeeDTO类来存储前端传递过来的数据,然后在后端需要对数据库进行操作时,将EmployeeDTO的数据传递给Employee,然后为Employee的剩余的属性进行赋值(例如上面的status,create…

Net8 Spire最新版去水印,去页数限制,转word/pptx/ofd等

新建控制台程序,添加Spire.pdf,最新版本为2024年7月17日下载连接: Net8 Spire最新版去水印,去页数限制,转word/pptx/ofd等 https://download.csdn.net/download/LongtengGensSupreme/90459916 把下载的Spire.Pdf.dll类库版本 10.7.12.1360拖拽到项目中,然后Spire.Pdf.dll右…

国产化信创产品名录与信息安全的关系探讨

随着信息技术的飞速发展,信息安全已成为国家、企业和个人关注的焦点。国产化信创产品在保障信息安全方面发挥着越来越重要的作用。国产化信创产品名录的建立与信息安全之间存在着千丝万缕的联系。深入探讨这种关系,对于推动国产化信创产业发展,提升我国信息安全保障水平具有…

干货!北大出品DeepSeek提示词工程和落地场景PPT分享

《DeepSeek提示词工程和落地场景》 是北大DeepSeek内部讨论的第二个PPT, 由北京大学AI肖睿团队,联合北大青鸟人工智能研究院、北大计算机学院元宇宙技术研究所、北大教育学院学习科学实验室联合出品的DeepSeek系列PPT。内容摘要本次讲座为DeepSeek原理和应用系列研讨的讲座之…

一网打尽——JAVA学习网站博客(内容持续更新)

一般网站不会帮助你系统化的学习Java,下面几个网站上提供的技术文章都比较全面,可以作为非常丰富的参考资料,能帮助你全面提升编程功力的。 1、二哥的Java进阶之路 网址:https://javabetter.cn/home.html2、JavaGuide(Java面试 + 学习指南) 网址:https://javaguide.cn/hom…

echo 0/proc/sys/kernel/hung_task_timeout_secs disables this message

故障现象 服务器异常宕机或重启后无法进入系统,打印信息:echo 0 > /proc/sys/kernel/hung_task_timeout_secs,如图所示故障原因 默认情况下, Linux会最多使用40%的可用内存作为文件系统缓存。当超过这个阈值后,文件系统会把将缓存中的内存全部写入磁盘, 导致后续的IO请…

【运维自动化-作业平台】滚动执行如何使用?

滚动执行是作业平台3.6.2版本新增的功能,主要用于针对多台目标机器需要分批执行的场景(没有滚动执行之前,所有目标主机的执行任务都是并发的)。比如目标10台机器,每次两台两台执行。滚动执行功能两个重要的配置选项是滚动策略和滚动机制,需要根据实际业务场景进行选择。 …