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本地认证的更多相关文章

  1. Windows认证 | Windows本地认证

    Windows的登陆密码是储存在系统本地的SAM文件中的,在登陆Windows的时候,系统会将用户输入的密码与SAM文件中的密码进行对比,如果相同,则认证成功. SAM文件是位于%SystemRoot ...

  2. 转:细说ASP.NET Windows身份认证

    转自:https://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html 细说ASP.NET Windows身份认证 阅读目录 开始 认识A ...

  3. 细说ASP.NET Windows身份认证

    上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证. Forms身份认证虽然使用广泛,不过,如果是在 Windows Ac ...

  4. 深入详解windows安全认证机制ntlm&Kerberos

    0x01 为什么要理解windows 安全认证机制: 加深对后续各种漏洞利用的理解深度,还是那句话,要知其然,更要知其所以然,不废话,咱们直接开始 0x02 windows认证协议主要有以下两种: 基 ...

  5. 使用webapi实现windows本地用户管理

    1. 引言 最近一段时间设计和实现公司内部的基于OAuth2.0的统一身份认证中心,经梳理,公司部分自研系统可以使用OAuth2.0的方式进行身份认证,还有一部分系统无源代码,未开放接口,使用wind ...

  6. 类型:.net;问题:asp.net window验证;结果:细说ASP.NET Windows身份认证

    细说ASP.NET Windows身份认证 阅读目录 开始 认识ASP.NET Windows身份认证 访问 Active Directory 在ASP.NET中访问Active Directory ...

  7. [转帖]Windows安全认证是如何进行的?[Kerberos篇]

    Windows安全认证是如何进行的?[Kerberos篇] NTLM 的简单看了一下 基本上了解了.. 这个KERBEROS 的看不太懂 感觉说的我也有点迷糊.. 虽然是对称加密的 但是不清不楚的.. ...

  8. 2018-2019-2 20165215《网络对抗技术》Exp10 Final Windows本地内核提权+Exploit-Exercises Nebula学习与实践

    目录 PART ONE :Windows本地内核提权 漏洞概述 漏洞原理 漏洞复现 windbg调试本地内核 查看SSDT表和SSDTShadow表 查看窗口站结构体信息 利用Poc验证漏洞 漏洞利用 ...

  9. 【Windows身份认证】NTLM

    前言 前几天自己在学习域渗透时突然对Windows的身份认证机制产生了兴趣,但看了好几天自己还是懵懵懂懂,期间自己看了许多师傅的优质文章,也做了一些例子的复现,于是有了这篇文章,可以说是自己的笔记或总 ...

  10. Windows 本地安装mysql8.0

    前言 看了网上许多关于Windows 本地安装mysql的很多教程,基本上大同小异.但是安装软件有时就可能因为一个细节安装失败.我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的.现我将 ...

随机推荐

  1. Qt项目升级到Qt6经验总结

    1 直观总结 增加了很多轮子,同时原有模块拆分的也更细致,估计为了方便拓展个管理. 把一些过度封装的东西移除了(比如同样的功能有多个函数),保证了只有一个函数执行该功能. 把一些Qt5中兼容Qt4的方 ...

  2. Vetur can't find `tsconfig.json` or `jsconfig.json` in XXX

    vue界面启动项目 visual code报错 如下图,找到 Ignore Project Warning 前边打上对勾

  3. postgresql-10.12-2-windows-x64安装成功后在安装postgis-bundle-pg96x64-setup-2.5.3-1时提示Spatial database creation failed

    问题描述: postgresql-10.12-2-windows-x64安装成功后在安装postgis-bundle-pg96x64-setup-2.5.3-1时提示Spatial database ...

  4. 即时通讯技术文集(第40期):推送技术合集(Part2) [共18篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第 40 期. [- 1 -] 一个基于长连接的安全可扩展的订阅/推送服务实现思路 [链接] h ...

  5. OpenMMLab AI实战营 第七课笔记

    OpenMMLab AI实战营 第七课笔记 目录 OpenMMLab AI实战营 第七课笔记 import os import numpy as np from PIL import Image im ...

  6. 小程序获取定位完整的封装js(uniapp)

    1.小程序获取定位,首先需要在微信公众平台,申请getLocation接口(开发管理->接口设置) 2.在manifest.json打开源码视图,增加代码 "mp-weixin&quo ...

  7. 夜莺监控支持 ES 日志告警了

    夜莺项目( https://github.com/ccfos/nightingale )发布了 v8.0.0-beta.3 版本,这个版本主要是支持了 ES 日志告警,下面给大家介绍一下. 新版本下载 ...

  8. LESLIE NOTE ——你的笔记只属于你自己

    LESLIE NOTE 网站:http://www.leslienote.com 简介: [只有数据可控,才是最放心的] [只有多多备份,才是最安全的] LESLIE NOTE 是一款本地笔记软件, ...

  9. Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到 Guid

    Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到 Guid 在软件开发中,数据库主键的选择,Guid 还是自增整数 ID,一直是一个备受开发者关注和讨 ...

  10. Linux部署Python项目

    项目部署 项目部署对于操作通常是由运维人员来进行统一管理装配的,但是对于一个开发人员来讲,基础的项目部署还是要会的. 这里我主要讲解python的项目是如何部署的,至于项目哪里来的,这就要看观众如何抉 ...