首页 > 系统相关 >Windows基础

Windows基础

时间:2024-03-03 15:55:23浏览次数:25  
标签:Hash TGT Windows 基础 KDC Session Key 加密

NTLM协议

LM 加密算法

  LM Hash 的明文密码被限制在14位以内。如果LM Hash 的值为 aad3b435b51404eeaad3b435b51404ee,说明 LM Hasg 为空或者被禁用了。

加密流程

  以 P@ss1234 来演示 LM Hash 的加密流程:
    1)将用户的明文口令转化为大写,并转化为16进制字符串。
    2)如果转化后的16进制字符串长度不足14B(长度28),用0来填充。
    3)将14B分为两组,每组7B,然后转换为2进制,每组二进制长度为56bit。
    4)将每组二进制数据按7bit为一组,分为8组,每组末尾加0,在转化为16进制,这样就成了8B长度的16进制数据了。
  5)将上面生成的两组8B的16进制数据,分别作为DES加密秘钥对字符串 "KGS!@#$%" 进行加密。然后将DES加密后的两组密文进行拼接,得到最后的 LM Hash值。

NTLM Hash

  LM Hash 过于不安全,微软从 Windows Vista 和 Windows Server 2008开始,默认禁用了 LM Hash ,只存储 NTLM Hash,而 LM Hash 的位置为空:aad3b435b51404eeaad3b435b51404ee。
  NTLM Hash 是基于 MD4 加密算法进行加密的。

加密流程

  以P@ss1234为例演示:
    1)将用户密码转化为16进制。
    2)将 ASCII 编码的16进制格式的字符串转化为 Unicode 编码。
    3)对 Unicode 编码的16进制字符串进行标准的 MD4 单向 Hash 加密。

Windows 系统存储 NTLM Hash
  用户的密码经过加密后存储在 C:\\Windows\\system32\\config\\SAM 文件中。

  用户输入密码进行认证的过程中,都是在本地进行的。系统将用户输入的密码转化为NTLM Hash ,然后与 SAM 文件中的 NTLM Hash 进行比较。

  当用户进行注销、重启、锁屏后,操作系统会让winlogon.exe 显示登录界面,也就是输入框。当 winlogon.exe 接受输入后,将密码交给 lsass.exe 进程,lsass.exe 进程会存一份明文几码,将明文密码加密成 NTLM Hash ,与 SAM 数据库进行比较和认证。

Kerberos

  在 Kerberos 协议中,主要有一下三个用户:
    - 访问服务的客户端
    - 提供服务的服务端
    - 提供认证服务的KDC(密钥分发中心):KDC 是一种网络服务,它向活动目录内的用户和计算机提供会话票据和零时会话密钥,其服务账户为 krbtgt。 KDC 作为活动目录域服务的一部分运行在每个域控制服务器上。

  krbtgt 是创建活动目录时系统自动创建的一个账户,其作用是 KDC 的服务账户。密码是系统随机生成的,无法正常登录主机。

  是基于票据(Ticket)认证的。客户端想要访问服务端的某个服务,需要购买服务端认可的ST(Server Ticket)。也就是说,客户端访问服务之前先要买好票,等待服务验票之后才能访问。但是票不能直接购买,需要先有 TGT(Ticket Granting Ticket) 才能购买。也就是说客户端买票之前先要一张 TGT。 TGT 和 ST 都是由 KDC 签发的,因为 KDC 运行在域控上,所以 TGT 和 ST 都是域控发放的。

  Kerberos 使用 88 端口, 密码重置使用 464 端口。。。

  Kerberos 协议的认证流程:
img

  1)当用户想访问某个服务时,输入用户名和密码,本机就会向 KDC 的 AS 发送一个 AS-REQ 认证请求。
    AS-REQ 认证请求的其中一个字段 PA-DATA-pA-TIMESTAMP:预认证,就是使用用户 Hash 加密时间戳作为 value 发送 KDC 的AS。然后 AS 从活动目录中查询用户的 Hash 来解密时间戳,如果能解密,并且在一定的时间方位内,则通过认证。但是使用的是用户的 Hash 来加密,所以导致了哈希传递攻击(PTH)。

  2)KDC 接受到 AS-REQ 请求后,AS 会从活动目录中查询用户的 Hash 来解密时间戳,如果能解密,并且在一定的时间方位内,则通过认证。然后发送 AS-REP 包给客户端,其中最重要的是 TGT 和 Logon Session Key。TGT 中加密的部分是使用 kbrtgt 密钥加密的。而 Logon Session Key 是使用用户密钥加密的。

  3)客户端收到 AS-REP 包后,使用用户密钥解密 enc_Login Session Key(也是最外层加密的部分),得到 Login Session Key ,并且获得了 TGT。之后再本地缓存 TGT 和 Login Session Key。此时客户端就可以凭借这张 TGT 向 KDC 购买相应的 ST。ST 是 KDC 的 TGS 授权发放的。

  4)TGS 接收到客户端的 ST-REQ 请求后,会使用 krbtgt 密钥解密 TGT 中加密的部分,得到 Login Session Key 和 PAC 等信息,加解密成功则说明该 TGT 是 KDC 颁发的。然后验证 PAC 签名,签名正确表示未被篡改。最后使用 Login Session Key 解密 时间戳等信息,验证时间戳是否在一定时间范围内。如果验证成功,则发放 ST。

  5)客户端收到 ST 后,使用缓存的 Login Session Key 解密 enc_Server Session Key 部分,得到 Server Session Key这是这一阶段的认证密钥,同时也拿到 ST。客户端同样会缓存这两样。客户端访问服务是发起 AP-REQ 请求,其中包含 ST 和 使用 Server Session Key 加密的时间戳。

标签:Hash,TGT,Windows,基础,KDC,Session,Key,加密
From: https://www.cnblogs.com/qianyuzz/p/18050144

相关文章

  • Markdown基础语法学习小结
    一、前言Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。--摘自百度百科对于程序员来说,学习并记录到博客中是非常好的学习习惯,能提升学习效果,本来想要自己搭建一个博客网站,但重心在于学习上,就不花太多时间精力......
  • LTSC2021安装Windows Terminal
    Microsoft.VCLibs.x64.14.00.DesktopAdd-AppPackage.\Microsoft.VCLibs.x64.14.00.Desktop.appxMicrosoft.UI.XamlAdd-AppPackage.\Microsoft.UI.Xaml.2.8.x64.appxWindowsTerminalAdd-AppxPackage.\Downloads\Microsoft.WindowsTerminal_1.19.10573.0_8wekyb3d8......
  • 对于 Windows 系统的入侵排查,以下是一些基础的排查方法
    对于Windows系统的入侵排查,以下是一些基础的排查方法:检查系统日志:WindowsEventViewer中有各种日志,包括安全日志、应用程序日志等。检查这些日志是否有异常登录、异常操作等记录。扫描恶意软件:运行杀毒软件和反间谍软件来扫描系统,确保系统没有受到恶意软件感染。......
  • 对于Windows系统的入侵痕迹溯源,以下是一些基础技术原理
    对于Windows系统的入侵痕迹溯源,以下是一些基础技术原理:日志分析:通过分析Windows系统的各类日志,包括安全日志、事件日志、系统日志等,可以追踪潜在的入侵行为和异常活动。关注登录记录、权限变更、文件访问等操作,以发现不明示的活动。网络流量分析:监控网络流量,并分析与Windows......
  • Windows 系统日志是记录操作系统活动的重要组成部分,对于入侵排查和溯源来说,分析系统日
    Windows系统日志是记录操作系统活动的重要组成部分,对于入侵排查和溯源来说,分析系统日志是非常关键的一步。以下是针对Windows系统日志分析和溯源的基础技术原理:事件日志:Windows操作系统生成多个类型的事件日志,包括应用程序日志、安全日志和系统日志。了解不同类型的事件日......
  • PowerShell中,你可以使用以下命令来操作Windows防火墙并记录流量信息
    在PowerShell中,你可以使用以下命令来操作Windows防火墙并记录流量信息:操作Windows防火墙:查看当前的防火墙规则:powershellCopyCodeGet-NetFirewallRule创建新的防火墙规则:powershellCopyCodeNew-NetFirewallRule-DisplayName"MyFirewallRule"-DirectionInbound-A......
  • Windows隐形重定向
    “Windows隐形重定向”通常指的是Windows操作系统中的一种技术,用于允许用户在文件系统中访问一个路径时,实际上将其重定向到另一个位置。这种重定向通常是透明的,用户并不会意识到发生了重定向。这种技术有多种应用场景,其中一种常见的情况是在操作系统中进行虚拟化或隔离。例如,当......
  • Windows配置R语言、RStudio开发环境
      本文介绍R语言及其集成开发环境RStudio的下载、安装方法。  R语言是一个属于GNU操作系统的开源软件,在数据统计与分析、可视化等方面具有优秀的表现;而RStudio则是R语言的集成开发环境(IDE),可以帮助我们更好地编辑、调试R语言的代码。这二者的关系有点类似于Python与Spyder的关......
  • python的基础知识
    python的保留字与运算符的区别保留字是Python语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量、函数、类、模板以及其他对象命名。在实际开发中,如果使用Python中的保留字作为标识符,则解释器会提示“invalidsyntax”的错误......
  • Windows下CMD和Tomcat设置编码为UTF-8
    由于日常编写代码,都是使用UTF-8编码,而CMD默认是GBK编码,导致执行mvn命令时,出现中文乱码问题,而chcp命令只在当次打开有效,每次打开都要重新切换代码页十分不便。对于CMD,可以通过修改注册表的方式,永久修改默认代码页。打开注册表编辑器,定位到\HKEY_CURRENT_USER\Console\%SystemRoot%......