目录

前言

一、Windows本地认证

认证流程

SAM文件

LM Hash与NTLM Hash

二、Windows网络认证

三、Kerberos域认证

票据传递攻击(PtT)


前言

主要围绕着windows认证中的本地认证、网络认证、kerberos协议原理进行分析

一、Windows本地认证

认证流程

winlogin.exe接收用户输入(windows登录界面)——> 输入账号密码登录 ——> lsass.exe进程将明文密码转为hash ——> 与sam文件对比 ——> 一致成功登录

首先,用户注销、重启、锁屏后,操作系统会让winlogon显示登录界面,也就是输入框,接收输入后,将密码交给lsass进程,这个进程中会存一份明文密码,将明文密码加密成NTLM Hash,与SAM中的NTLM Hash进行比较。

  • winlogon.exe(Windows Logon Process)是 Windows NT 用户登陆程序用于管理用户登录和退出。
  • lsass.exe(Local Security Authority Subsystem Service,本地安全认证子系统服务),它用于本地安全和登陆策略该程序运行内存中会记录用户输入的 hash
  • 这两个程序都是以system权限运行

SAM文件

上面说了lsass进程会将用户输入的密码转换为hash然后再与sam数据库进行对比,那这个数据文件在哪了?

%SystemRoot%\system32\config\sam

cmd运行,输入%SystemRoot%\system32\config进入对应目录,如下为SAM文件

这个SAM文件中保留了计算机本地所有用户的凭证信息,可以理解为是一个数据库。

LM Hash与NTLM Hash

windows 系统下的hash 密码格式:

用户名称:RID:LM-HASH值:NTLM-HASH值

ps:Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。

lsass进程将密码转换为hash,其实就是转换为NTLM Hash与SAM中的NTLM Hash进行比较。

  • LM Hash是windows最早用的加密算法由IBM设计,安全性低,主要用于server 2003及以前。目前大多数的Windows都采用NTLM协议认证,LM协议已经基本淘汰了。
  • NTLM哈希是微软为了在提高安全性的同时保证兼容性而设计的散列加密算法。NTLM Hash是基于MD4加密算法进行加密的。个人版从Windows Vista以后,服务器从Windows Server 2003以后,Windows操作系统的认证方式均为NTLM Hash。

NLTM哈希的产生

假设我的密码是admin,那么操作系统会将admin转换为十六进制,经过Unicode转换后,再调用MD4加密算法加密,这个加密结果的十六进制就是NTLM Hash

admin -> hex(16进制编码) = 61646d696e
61646d696e -> Unicode = 610064006d0069006e00
610064006d0069006e00 -> MD4 = 209c6174da490caeb422f3fa5a7ae634

二、Windows网络认证

当我们访问同一局域网的一台主机上的SMB共享时提供凭证通过验证才能成功进行访问,这就涉及到windows的网络认证。

传送门 ——> https://chenchena.blog.csdn.net/article/details/123274876

三、Kerberos域认证

在域中,网络对象可以相互访问,但是在真实情况中,需要对某些部门的计算机进行限制,例如:销售部门不能访问技术部门的服务器。这个中间就需要Kerberos认证协议来验证网络对象间的权限。

网络对象分为:用户、用户组、计算机、域、组织单位以及安全 策略等。

Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。

传送门 ——> https://chenchena.blog.csdn.net/article/details/123543552

票据传递攻击(PtT)

票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法。PtT最常见的用途可能是使用黄金票据白银票据,通过PtT访问主机相当简单。

未完~

参考:

  • 彻底理解Windows认证 – 议题解读 - SecPulse.COM | 安全脉搏
  • 浅析黄金票据与白银票据 - Shu1L's blog

Windows认证原理相关推荐

  1. windows认证原理kerberos协议详解

    这里写目录标题 什么是kerberos协议 kerberos协议简略流程以及详细流程 kerberos协议局限性 什么是kerberos协议 kerberos是一种网络认证协议,通过密钥系统为客户端以 ...

  2. [WCF安全系列]认证与凭证:用户名/密码认证与Windows认证

    如果要给认证下一个定义,我个人的倾向这样的定义:认证是确定被认证方的真实身份和他或她申明(Claim)的身份是否相符的行为.认证方需要被认证方提供相应的身份证明材料,以鉴定本身的身份是否与声称的身份相 ...

  3. 【干货】彻底理解Windows认证-议题解读

    在内部分享的<彻底理解Windows认证>议题解读,本次议题围绕着Windows认证分别讲解了: Pass The Hash Silver Tickets.Golden Tickets. ...

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

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

  5. Windows认证基础知识

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

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

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

  7. windows认证之本地认证

    目录 1.window认证流程 2.LM Hash和NTLMHash 2.1LM Hash原理 2.2.NTLM Hash原理 windows认证包括本地认证.网络认证和域认证三个部分windows认 ...

  8. 一次简单的计网实践——浅谈校园网认证原理、ipv6机制绕过认证限制、双路由器宿舍组网

    注:本文所涉及的"任何设备",指在学生正常活动的区域内使用的设备. 一.山东大学威海校区校园网ipv4认证原理 1.认证系统介绍 山大威海校区内的校园网认证页面地址均为http:/ ...

  9. 读书笔记之《Windows内核原理与实现》

    最近学习<Windows内核原理与实现>发现其博大精深,粗略过了一遍,很多东西比较茫然,看书之余把书中涉及的函数,结构,全局变量的所在页数总结出来,便于以后查阅. 由于半自动半手工,难免有 ...

最新文章

  1. 详解 Date 对象
  2. 录取率查询和申请结果查询平台分享
  3. java web轻量级开发面试教程内容精粹:哪些简历得不到面试机会
  4. 基于 Docker Compose 实践 .NET Core 的现代化架构 2:在容器中集成 Skywalking APM
  5. Python 一键转化代码为流程图
  6. 揭秘OCR的策略规则
  7. 10件产品3件次品,7件正品,不放回的取,第三次取得次品的概率-----三种解法
  8. 80x86汇编小站站长简单介绍
  9. pcd格式点云的显示程序
  10. Python批量自定义文件夹图标
  11. 美通社企业新闻汇总 | 2019.1.3
  12. 线性代数系列(一)--线性组合
  13. HTTP的几种请求方法
  14. DYA10面向对象中--断点调试
  15. 知识图谱-生物信息学-医学顶刊论文(Briefings in Bioinformatics-2021):MPG:一种有效的自我监督框架,用于学习药物分子的全局表示以进行药物发现
  16. 嗅觉计算机应用,昆虫嗅觉神经的计算机三维重建 - 应用昆虫学报.pdf
  17. 【从零开始玩量化17】如何python+QMT完成自动化交易?(全网最详细入门教程)
  18. 【转】我的技术学习方法 — Anytao
  19. Linux环境下socket服务器搭建
  20. 制作bat文件的方法

热门文章

  1. #define定义宏常量和宏函数
  2. bzoj4544: 椭圆上的整点
  3. Oracle中序列的操作以及使用前对序列的初始化
  4. HashMap源码逐行分析
  5. php fflush失败,php fflush 函数_PHP教程
  6. 有道词典工具(命令行+GUI)
  7. Xcode warning: code will never be executed.
  8. 什么叫做POJO类?
  9. OLEDB 参数化查询
  10. 国庆节去哪浪?让 Python 帮你分析分析