windows本地认证
windows本地认证
本地认证概述
本地认证最简单的例子就是我们的电脑上存储着自己的账号密码,无论电脑是否联网,只要能开机,就可以输入账号密码登录到电脑中,工作组就是采用本地认证。
那认证流程是什么样子呢?简单流程如下

winlogon.exe(即Windows Logon Process):是Windows NT 用户登陆程序,用于管理用户登陆和退出.用户注销、重启、锁屏后,操作系统会让winlogon.exe显示登陆界面
lsass.exe是一个系统进程,用于微软Windows系统的安全机制。它用于本地安全和登陆策略
SAM文件是位于C\windows\system32\config\目录下的,用于储存本地所有用户的凭证信息,但是这并不代表着你可以随意去查看系统密码
普通人:不能删,不能改,不能看, 不能复制

SAM文件和lsass.exe进程详解
SAM文件是Windows的用户账户数据库,所有用户的登录名及口令等相关信息都会保存在这个文件中,格式简单如下
用户名称:LM-HASH值:NTLM-HASH值
administrator:LM-HASH值:NTLM-HASH值
SAM文件中的密码并不是以明文的形式存在,他是加密后存储在SAM文件中
Lsass.exe进程的作用非常重要,它主要负责管理本地安全策略和认证机制。这些策略包 括密码策略、账户策略、用户权限、域策略等等。同时,它还负责对用户进行身份验证, 以确保只有授权的用户才能访问系统资源。
1、将winlogon传过来的明文账号密码进行加密,然后和SAM 文件中的密文账号密码作对比。如果对比成功就登陆成功
2、将收到的明文账号密码在本地内存中保留一份用作备用
LM-Hash加密步骤
Windows操作系统通常使用两种方法对用户的明文密码进行加密处理。一部分为 LM-Hash,另一部分为 NTLM-Hash。
在 Windows操作系统中,Hash的结构通常如下: username:RID:LM-HASH:NT-HASH
LM Hash(全称为“LAN Manager Hash”)是微软在早期 Windows 操作系统中引入的一种散列加密算法,旨在提高系统的安全性,其核心基于 DES 加密。然而,LM Hash 安全性较低,容易被破解。从 Windows Vista 和 Windows Server 2008 开始,微软默认禁用了 LM Hash,但为了兼容性,未完全移除该机制。LM Hash 的明文密码长度限制为 14 位以内,因此若要彻底避免使用 LM Hash,可以将用户密码设置为超过 14 位。当 LM Hash 被禁用时,攻击者通过工具捕获的 LM Hash 通常会显示为 “aad3b435b51404eeaad3b435b51404ee”,表示该值为空或被禁用。
为提升安全性并兼顾兼容性,微软设计了 NTLM Hash 作为替代方案。NTLM Hash 基于 MD4 算法进行加密。从 Windows Vista(个人版)和 Windows Server 2003(服务器版)起,Windows 系统默认采用 NTLM Hash 作为认证方式。
1、将明文口令转换为其大写形式 假设这里以明文Admin@123为例,转换为大写格式为:
Admin@123----> ADMIN@123
2、将字符串大写后转换为16进制字符串
ADMIN@123---> 41 44 4D 49 4E 40 31 32 33
3、密码不足14字节要求用0补全
41 44 4D 49 4E 40 31 32 33---> 41 44 4D 49 4E 40 31 32 33 00 00 00 00 00
4、将上述编码分成2组7字节
第一组:41 44 4D 49 4E 40 31
第二组:32 33 00 00 00 00 00
5、将每一组7字节的十六进制转换为二进制,每7bit一组末尾加0,再转换成十六进制 组成得到2组8字节的编码
第一组:0100000010100010000100101010100010010100011100100000000001100010
40A2 12A8 9472 0062
第二组:
0011001000011000110000000000000000000000000000000000000000000000
3218 C000 0000 0000
6、将以上步骤得到的两组8字节编码,分别作为DES加密key为魔术字符串KGS!@#$% 进行 加密 KGS!@#$%的16进制为 4B47532140232425


最终结果6F08D7B306B1DAD4B75E0C8D76954A50
NTLM-Hash加密步骤
NTLM-Hash是微软为了在提高安全性的同时保证兼容性而设计的散列加密算法。 NTLM Hash 是基于MD4加密算 法进行加密的。个人版从 Windows vista以后,服务器版从 Windows Server 2003以后, Windows操作系统的认证方式均为 NTLM Hash。
继续以明文密码Admin@123为例
1、将明文口令转换成十六进制的格式
Admin@123--->41646D696E40313233
2、将16进制转换成Unicode格式,即在每个字节之后添加0x00
41646D696E40313233 --->410064006D0069006E004000310032003300
3、对Unicode字符串作MD4加密,生成32位的十六进制数字串 570a9a65db8fba761c1008a51d4c95ab

接下来我们使用工具去查看下计算是否一致
LM-HASH:6F08D7B306B1DAD4B75E0C8D76954A50 NTLM-HASH: 570a9a65db8fba761c1008a51d4c95ab
使用命令
QuarksPwDump.exe --dump-hash-local

前面有提到:当 LM Hash 被禁用时,攻击者通过工具捕获的 LM Hash 通常会显示为 “aad3b435b51404eeaad3b435b51404ee”,表示该值为空或被禁用。

对比发现NTLM值一样
那怎么看LM-Hash是否一样呢,可以用mimikatz
使用命令运行
minikatz.exe

然后提权到debug
privilege::debug

运行抓密码的命令
sekurlsa::logonPasswords

对比发现LM和NTLM值都一样
windows本地认证的更多相关文章
- Windows认证 | Windows本地认证
Windows的登陆密码是储存在系统本地的SAM文件中的,在登陆Windows的时候,系统会将用户输入的密码与SAM文件中的密码进行对比,如果相同,则认证成功. SAM文件是位于%SystemRoot ...
- 转:细说ASP.NET Windows身份认证
转自:https://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html 细说ASP.NET Windows身份认证 阅读目录 开始 认识A ...
- 细说ASP.NET Windows身份认证
上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证. Forms身份认证虽然使用广泛,不过,如果是在 Windows Ac ...
- 深入详解windows安全认证机制ntlm&Kerberos
0x01 为什么要理解windows 安全认证机制: 加深对后续各种漏洞利用的理解深度,还是那句话,要知其然,更要知其所以然,不废话,咱们直接开始 0x02 windows认证协议主要有以下两种: 基 ...
- 使用webapi实现windows本地用户管理
1. 引言 最近一段时间设计和实现公司内部的基于OAuth2.0的统一身份认证中心,经梳理,公司部分自研系统可以使用OAuth2.0的方式进行身份认证,还有一部分系统无源代码,未开放接口,使用wind ...
- 类型:.net;问题:asp.net window验证;结果:细说ASP.NET Windows身份认证
细说ASP.NET Windows身份认证 阅读目录 开始 认识ASP.NET Windows身份认证 访问 Active Directory 在ASP.NET中访问Active Directory ...
- [转帖]Windows安全认证是如何进行的?[Kerberos篇]
Windows安全认证是如何进行的?[Kerberos篇] NTLM 的简单看了一下 基本上了解了.. 这个KERBEROS 的看不太懂 感觉说的我也有点迷糊.. 虽然是对称加密的 但是不清不楚的.. ...
- 2018-2019-2 20165215《网络对抗技术》Exp10 Final Windows本地内核提权+Exploit-Exercises Nebula学习与实践
目录 PART ONE :Windows本地内核提权 漏洞概述 漏洞原理 漏洞复现 windbg调试本地内核 查看SSDT表和SSDTShadow表 查看窗口站结构体信息 利用Poc验证漏洞 漏洞利用 ...
- 【Windows身份认证】NTLM
前言 前几天自己在学习域渗透时突然对Windows的身份认证机制产生了兴趣,但看了好几天自己还是懵懵懂懂,期间自己看了许多师傅的优质文章,也做了一些例子的复现,于是有了这篇文章,可以说是自己的笔记或总 ...
- Windows 本地安装mysql8.0
前言 看了网上许多关于Windows 本地安装mysql的很多教程,基本上大同小异.但是安装软件有时就可能因为一个细节安装失败.我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的.现我将 ...
随机推荐
- Java保留两位小数的几种写法总结
转载 本文列举了几个方法: 1. 使用java.math.BigDecimal 2. 使用java.text.DecimalFormat 3. 使用java.text.NumberFormat 4. ...
- Linux 管理面板云帮手、APPNODE与宝塔哪个好
阿里云服务器推荐购买99元 由于用作服务器的 Linux 主机通常都没有图形化界面,与日常使用的 Windows .MAC有着很大的差别,一些必备组件的安装或更新就很费时间,后期维护也费神.服务器管理 ...
- Qt/C++编写地图应用/离线地图下载/路径规划/轨迹回放/海量点/坐标转换
一.前言说明 这个地图组件写了很多年了,最初设计的比较粗糙,最开始只是为了满足项目需要,并没有考虑太多拓展性,比如最初都是按照百度地图写死在代码中,经过这几年大量的现场实际应用,以及大量的用户提出的改 ...
- Qt/C++音视频开发49-多级连保存和推流设计(同时保存到多个文件/推流到多个平台)
一.前言 近期遇到个用户需要多级联的保存和推流,在ffmpegsave多线程保存类中实现这个功能,越简单越好,就是在推流的同时,能够开启自动转储功能,一边推流的同时一边录像保存到本地视频文件.最初设想 ...
- Qt编写安防视频监控系统65-子模块9数据调试
一.前言 数据调试模块,用于显示通信串口的数据,自定义不同颜色显示,可以勾选过滤某个串口进行数据查看,也可以选择所有数据,还可以勾选暂停显示复选框用来暂停打印显示信息.数据调试可以很方便的查看串口收发 ...
- Qt编写的项目作品16-Onvif搜索和云台控制工具
一.功能特点 广播搜索设备,支持IPC和NVR,依次返回. 可选择不同的网卡IP进行对应网段设备的搜索. 依次获取Onvif地址.Media地址.Profile文件.Rtsp地址. 可对指定的Prof ...
- CentOS 安装NFS
背景 Kubernetes 对 Pod 进行调度时,以当时集群中各节点的可用资源作为主要依据,自动选择某一个可用的节点,并将 Pod 分配到该节点上.在这种情况下,Pod 中容器数据的持久化如果存储在 ...
- 百万架构师的第二课:设计模式:Spring 源码版本命名规则及下载安装
第二章--SpringWeb应用开发篇 二.Spring 源码版本命名规则及下载安装 2.1.Spring源码版本命名规则 (1) 首先看看某些常见软件的版本号: Linux Kernel: 0.0. ...
- 让我看看有多少人不知道Vue3中也能实现高阶组件HOC
前言 高阶组件HOC在React社区是非常常见的概念,但是在Vue社区中却是很少人使用.主要原因有两个:1.Vue中一般都是使用SFC,实现HOC比较困难.2.HOC能够实现的东西,在Vue2时代mi ...
- [软件工具使用记录] windows离线ollama部署本地模型并配置continue实现离线代码补全
qwen2.5coder发布之后,觉得差不多可以实现离线模型辅助编程了,所以尝试在公司内网部署模型,配合vsocde插件continue实现代码提示.聊天功能. 目前使用qwen2.5coder的32 ...