Windows认证机制

首先,我们简短介绍下Windows的认证机制。主要有以下三种,

  • 本地认证
  • 网络认证
  • 域内认证 如图所示:

Kerberos协议

Kerberos 是一种由 MIT(麻省理工大学)提出的一种网络身份验证协议。它旨在通过使用密钥加密技术为客户端/服务器应用程序提供强身份验证。

  • 基于票据的认证服务
  • 基于对称加密算法的加密体系
  • 用于分布式用户身份认证

参与方

  • 客户端
  • KDC(密钥分发中心)
  • 服务端

三段交互认证

  • 认证服务KAS
  • 票据授予服务TGS
  • 获取服务票据ST

KRBTGT账户: KDC的服务账户,KDC中一般用KRBTGT账户的NTLM Hash加密会话密钥

长期密钥Long-term key: 一般是用户的登录密码

会话密钥Session key: 用于某次会话的密钥,属于短期密钥,一次会话结束后作废

票据许可票据TGT:KDC-AS颁发的该客户端身份许可的票据

服务票据ST:KDC-TGS颁发的给该客户端的具体到某一服务的票据

认证服务KAS

  • KRB_AS_REQ(请求)

Client->AS:Client 先向 KDC 的 AS 发送 Authenticator1(内容为Client hash加密的时间戳)。 Kerberos认证抓包分析如下(数据包字段详解请见www.cnblogs.com/Yang34/p/14… )

  • KRB_AS_REP(应答)

AS-> Client:AS根据用户名在AD中寻找是否在白名单中,然后根据用户名提取到对应的NTLM Hash,然后会生成一个随机数session key,然后返回给Client由Client的ntlm hash加密的session key-as作为AS数据,再返回TGT(使用KDC中krbtgt的NTLM Hash加密session key和客户端的信息,客户端的信息里面包含了时间戳等信息)。抓包分析如下:

  • AS验证的简述 在 KDC(AD) 中存储了域中所有用户的密码 HASH,当 AS 接收到 Client 的请求之后会根据 KDC 中存储的密码来解密,解密成功并且验证信息。 验证成功后返回给 Client两个东西,一个是由 Client 密码 HASH 加密的 session key-as 和 TGT(由 KRBTGT HASH 加密的 session key 和 TimeStamp 等信息)。

票据授予服务TGS

  • KRB_TGS_REQ(请求)

Client 接收到了加密后的session key-as 和 TGT 之后,先用自身密码 HASH解密得到session key ,TGT 是由 KDC 中KRBTGT的HASH加密,所以Client 无法解密。这时 Client 再用session key加密的TimeStamp,然后再和TGT 一起发送给 KDC 中的 TGS(TicketGranting Server)票据授权服务器换取能够访问 Server 的票据。抓包分析如下:

  • KRB_TGS_REP(应答)

TGS 收到 Client 发送过来的 TGT 和 Session key 加密的 TimeStamp 之后,首先会检查自身是否存在 Client 所请求的服务。如果服务存在,则用 KRBTGT的HASH解密 TGT。抓包分析如下:

  • TGS验证的简述 一般情况下 TGS 会检查 TGT 中的时间戳查看 TGT 是否过期,且原始地址是否和 TGT 中保存的地址相同。 验证成功之后将返回Client两个东西,一个是用 session key 加密的 session key-tgs,然后另一个是 Client要访问的Server的密码 HASH 加密的 session key-tgs(前面和session key加密生成的)生成就是ST(TGS)

获取服务票据ST

  • KRB_AP_REQ(请求)

Client -> Server 发送 Authenticator3(session key-tgs 加密 TimeStamp) 和票据 ST(Server 密码 HASH 加密 session key-tgs),Client 收到 session key 加密生成的 session key-tgs 和 Server 密码 HASH 加密 session key-tgs生成的TGS 之后,用 session key 解密得到 session key-tgs,然后把 sessionkey-tgs 加密的 TimeStamp 和 ST(也就是TGS)一起发送给 Server。抓包分析如下:

  • KRB_AP_REP(应答)

Server-> Client server 通过自己的密码解密 ST,得到 sessionkey-tgs, 再用 sessionkey-tgs 解密 Authenticator3 得到 TimeStamp,验证正确返回验证成功。抓包分析如下:

  • 获取ST简述 最后一次验证,server向client再发一次消息是为了完成双向的身份验证。

Kerberos 认证的优点

  • 验证性能较好
  • 双向认证
  • 支持委派

以上内容参考过以下文章,仅用作个人知识梳理。后面的内容应该会讲到Windows认证机制的另外两种,包含ntlm-hash/net ntlm-hash的验证和Kerberos认证机制的一些利用方法等。打码中。。。

Windows认证机制之Kerberos协议相关推荐

  1. 内网渗透——WINDOWS认证机制之KERBEROS

    之前两篇文章整理了NTLM协议的分析与利用 1.内网渗透--WINDOWS认证机制之NTLM 2.利用netsh抓取连接文件服务器的NET NTLM Hash 本篇文章来学习域内认证的Kerberos ...

  2. windows 认证机制

    目录 Windows认证协议 NTLM(NT LAN Manager) Kerberos NTLM认证 Windwos 密码hash NTLM hash NET-NTLM hash 流程 注意 图解 ...

  3. Windows认证机制详解(借物表在文章末尾)

    一.本地认证 基础知识 Windows系统在本地认证过程中,操作系统会要求用户输入密码作为凭证去做身份验证. 在验证过程中,系统并不保存明文密码,而是将用户输入的密码转变为NTLM hash(也叫NT ...

  4. windows认证机制

    目录 哈希处理 LM-hash NTLM-hash kerberos协议 哈希处理 Windows系统默认使用两种方法对用户的密码进行哈希处理,它们分别是 LAN Manager(LM)哈希和 NT ...

  5. Windows域认证机制

    文章目录 Windows认证机制 Windows认证基础 本地认证 网络认证 hashcat破解net-ntlm hash 域认证 Kerberos认证协议的基础概念 Kerbreros认证流程 1. ...

  6. 渗透测试之攻击Windows认证

    Windows系统存在着两种主要认证方式,它们分别是NTLM和Kerbose Windows认证机制 Hash存储位置 本机用户:C:\Windows\system32\config\SAM (系统运 ...

  7. Windows认证基础知识

    Windows认证 本地认证 基础知识 本地登录,操作系统会使用用户输入的密码作为凭证去与系统中的密码进行验证 密码存储位置:%SystemRoot%\system32\config\sam SAM保 ...

  8. node.js学习总结:node.js的内置模块,模块化,npm与包 express,前后端身份认证 JWT认证机制

    node.js学习总结 什么是node.js node.js的内置模块 fs系统模块 path路径模块 http模块 模块化 npm与包 express express路由 express+mysql ...

  9. 身份认证——session认证机制与JWT认证机制(入门到使用)

    首先我们要了解什么是身份认证(Authentication)? 身份认证也叫身份验证或者鉴权,指通过一定的手段来完成对用户身份的验证 我们会使用session和JWT认证机制进行开发,那么我们在什么情 ...

最新文章

  1. 巨亏的旷视科技,是AI独角兽还是物联网企业?
  2. 方差为平方的均值减去均值的平方
  3. ORACLE 使用函数返回表数据
  4. Django:Admin,Cookie,Session
  5. 若依如何修改超级管理员登录密码?
  6. Redis在CentOS 7上的安装部署
  7. 设计模式(行为型模式)——模板方法模式(Template Method)
  8. Dijkstra算法C++实现
  9. Java8 lambda 的使用
  10. 三菱PLC编程软件操作快捷键汇总
  11. python编译器源码分析_Python源码剖析之编译Python
  12. 应届生实习需要注意哪些方面?
  13. win10怎么快速锁定计算机,win10怎么快捷键锁定电脑_win10一键锁屏快捷键是什么-win7之家...
  14. survival | 生存分析(1):生存曲线(上)
  15. 主流智能汽车电子架构
  16. dubbo分布式服务框架(高级特性篇)
  17. Spring-Retry应用
  18. 云南省二级c计算机考试试题,2014云南省计算机等级考试试题 二级C试题最新考试试题库(完整版)...
  19. endnote按照apa6th格式复制_参考文献格式apa6.pdf
  20. 8.轨迹预测,乱七八糟的预测方法

热门文章

  1. 【网申投递汇总】截止目前为止,还可以网申的公司 持续更新
  2. vsftpd.service; disabled; vendor preset: disabled解决方法
  3. “相杀相爱”,从Elastic与AWS的恩仇录看开源许可
  4. python反复猜数_如何python做一个1-100的猜数游戏,告诉我我猜的次数
  5. java jsqlparse,JSqlParser使用
  6. Mac iTunes 不能识别 ID3v2 的解决,用 Meta 给歌曲添加 ID3 信息
  7. 有关Java的基础知识2020/11/25
  8. NW.js 如何导出image,txt,excel资源文件示例
  9. 什么是线程安全(转)
  10. 连接远程Redis服务器超时