点我

本地认证即用户的账户密码存储在本机电脑中,无论电脑是否联网,都可输入正确的账户密码进行登录。

工作组内的电脑采用的就是本地认证

本地认证流程

winlogon.exe

Windows Logon Process(即winlogon.exe),是Windows NT 用户登陆程序,用于管理用户登录和退出。

该进程的正常路径应是C:\Windows\System32,且是以 SYSTEM 用户运行

lsass.exe

lsass.exe是一个系统进程,用于微软Windows系统的安全机制。 它用于管理本地安全策略和认证策略。

这些策略包括密码策略、账户策略、用户权限、域策略等等,除此之外,还对用户进行身份验证,以确保只有授权的用户才能访问系统资源。

lsass程序的作用:

1、将winlogon传过来的明文账户密码进行加密,然后和SAM文件中的密文账户密码作对比,如果对比成功则登录成功。

2、将收到的明文账户密码在本地内存中一份作为备用

SAM文件

对于Windows,SAM文件是位于C:\windows\system32\config\sam,用于存储本地所有用户的凭证信息。

但对应普通用户而言,不能进行增加、修改、查看、复制。

详解
  • SAM文件是Windows的用户账户数据库,所有用户的登录名及口令等相关信息都会保存在这个文件中。
  • SAM文件中的密码并不是以明文的形式存在,而是加密后存储在SAM文件中
  • 文件中的账户存储格式为:

    用户名:LM-HASH值:NTLM-HASH值,例如:administrator:LM-HASH值:NTLM-HASH值

SAM文件和lsass.exe文件关系

LM-HASH

对于Windows操作系统通常使用两种方法对用户的明文密码进行加密处理,一部分为LM-HASH,另一部分为NTLM-HASH。

SAM文件中的hash值结构为username:RID:LM-HASH:NTLM-HASH

LM-HASH概述

挑战/响应验证机制

LM Hash的全名为"LAN Manager Hash",是微软为了提高 Windows操作系统的安全性而采用的散列加密算法,其本质是DES加密

尽管 LM Hash较容易被破解,但为了保证系统的兼容性,Windows只是将LM Hash禁用了(从 Windows vista和 Windows Server2008版本开始, Windows操作系 统默认禁用 LM Hash)。

LM Hash明文密码被限定在14位以内,也就是说,如果要停止使用 LM Hash,将用户的密码设置为14位以上即可。

如果 LM Hash被禁用了,攻击者通过工具抓取的LM Hash通常为 “aad3b435b51404eead3b435b51404ee”(表示 LM Hash为空值或被禁用) 。

操作系统所用HASH

为了解决LM加密和身份验证方案中固有的安全弱点,Microsoft 于1993年在Windows NT 3.1中引 入了NTLM协议。

下面是各个版本对LM和NTLM的支持:

加密类型2000XP2003VistaWin72008Win82012Win102016Win11
LM-HASH
NTLM-HASH
LM-HASH值的加密流程

用户密码例如:a1b2c3..

1、将明文口令转换为大写

A1B2C3..

2、将大写的字母转换为16进制

41 31 42 32 43 33 2E 2E

3、密码不足14字节,要求 用0补齐

41 31 42 32 43 33 2E 2E 00 00 00 00 00 00

4、将上述编码分为2组7字节

第一组:41 31 42 32 43 33 2E

第二组:2E 00 00 00 00 00 00

5、将每一组7个字节的16进制转换为2进制,每7bit一组末尾加0,再转换为16进制

第一组:41 31 42 32 43 33 2E

二进制:01000001001100010100001000110010010000110011001100101110
每7bit一组末尾补0
01000000
10011000
01010000
01000110
00100100
00011000
11001100
01011100

合并后:0100000010011000010100000100011000100100000110001100110001011100
转为16进制:409850462418CC5C

第二组:2E 00 00 00 00 00 00

二进制:00101110000000000000000000000000000000000000000000000000
每7bit之后补0
00101110
00000000
00000000
00000000
00000000
00000000
00000000
00000000

合并后:0010111000000000000000000000000000000000000000000000000000000000
转为16进制:2E00000000000000

6、将上述步骤得到的两组8字节编码,分别作为DES加密,key为魔术字符串 KGS!@#$% 进行加密。

KGS!@#$% 的16进制为4B47532140232425,最后将两组加密后的密文进行拼接,即得到LM-HASH值

第一组:FCEECFE68DE61CD8

第二组:5AACD84CD494924F

两组进行拼接

用户密码 a1b2c3..的LM-HASH值为FCEECFE68DE61CD85AACD84CD494924F

NTLM-HASH

概述

NTLM Hash是微软为了在提高安全性的同时保证兼容性而设计的散列加密算法。

NTLM Hash 是基于MD4加密算法进行加密的,个人版从 Windows vista以后,服务器版从 Windows Server 2003以后, Windows操作系统的认证方式均为 NTLM Hash

加密规则

1、将明文口令转换为16进制

以a1b2c3..为例

16进制:61 31 62 32 63 33 2e 2e

2、将16进制转换为Unicode格式,即在每个字节之后添加0X00

6100310062003200630033002E002E00

3、对Unicode字符串作为MD4加密,生成32位的16进制值

b6fedcbb1ab4f59dd213d03eb992b759

SAM文件值

用户名为administrator

密码为a1b2c3..

存储后的密文格式为 administrator:500:FCEECFE68DE61CD85AACD84CD494924F:B6FEDCBB1AB4F59DD213D03EB992B759

hash值对比

使用工具提取系统中sam文件的存储值

QuarksPwDump.exe

mimikatz.exe

分类: 内网渗透

评论

-- 评论已关闭 --

目录