文章来源|MS08067 内网安全知识星球
本文作者:Spark(Ms08067内网安全小组成员)
内网纵横四海 认准Ms08067
关于kerberos协议的原理网上的文章应该已经有很多了,但是因为篇幅较长、步骤复杂、涉及的名词缩写较多等原因,所以对初学者来说不是很友好。本文另寻思路,以故事的形式带大家由浅入深理解kerberos协议。
故事背景:windows本地认证
所谓的本地认证也就是计算机自身的认证。计算机本身是如何进行认证的,密码存储在哪里,是以什么样的形式存储的?
0.1 密码在哪里
路径:
%SystemRoot%\system32\config\sam
当我们登录系统的时候,系统会自动地读取SAM文件中的“密码”与我们输入的“密码”进行对比,如果相同,则认证成功。
0.2 密码的形式
Windows本身不存储用户的明文密码,它会将用户的明文密码经过加密算法转换成NTLM Hash后存储在SAM数据库中。当用户登录时,将用户输入的明文密码也加密成NTLM Hash,与SAM数据库中的NTLM Hash进行比较。
上图是用python将“admin123”转换为NTLM Hash的形式。NTLM Hash长度32位,由数字与字母组成,是支持本地认证及Net NTLM认证协议过程中的一个重要参与物。
0.3 怎样进行认证
Windows Logon Process(即winlogon.exe) 是负责处理安全相关的用户交互界面的组件。Winlogon的工作包括加载其他用户身份安全组件、提供图形化的登陆界面,以及创建用户会话。
LSASS(本地安全认证子系统服务)用于微软Windows系统的安全机制。它负责Windows系统安全策略。它负责用户在本地验证或远程登陆时验证用户身份,管理用户密码变更,并产生访问日志。
整体流程如下:
1. 开机
2. winlogon.exe显示输入用户名密码的图形化页面
3. 用户输入用户名密码
4. lssas.exe将密码加密为NTLM Hash,并与本地SAM数据库中的NTLM Hash进行比较
5. 如果相同,则认证通过
故事一:windows网络认证
在内网渗透中,经常遇到工作组环境。工作组环境是一个逻辑上的网路环境,隶属于工作组的机器之间缺少“信托机构”,无法互相建立一个完美的信任机制,只能点对点,是比较落后的认证方式。
这里什么是信托机构,什么又是点对点认证呢?下面有请故事主角张三。
现张三有一笔钱需要转给李四,他需要有权限访问到