权限提升漏洞之Netlogon协议详解 以及可能出现得漏洞分析

1.Netlogon服务1

  • Netlogon服务为域内的身份验证提供一个安全通道

    • 它被用于执行与域用户和机器身份验证相关的各种任务 ,最常见的是让用户使用NTLM协议登录服务器

    • 默认情况下,Netlogon服务在域内所有机器后台运行


2.Netlogon服务2

  • Netlogon服务为域内的身份验证提供一个安全通道

    • 它被用于执行与域用户和机器身份验证相关的各种任务 ,最常见的是让用户使用NTLM协议登录服务器

    • 默认情况下,Netlogon服务在域内所有机器后台运行

      • 该服务的可执行文件路径为C:\Windows\system32\lsass.exe

3.Netlogon认证流程1

  • Neglogon 客户端和服务端之间通过 Microsoft Netlogon Remote Protocol(MS-NRPC)来进行通信。

    • MS-NRPC并没有使用与其他RPC相同的解决方案

    • 在进行正式通信之前,客户端和服务端之间需要进行身份认证并协商出一个Session Key

      • 该值用于保护双方后续的RPC通信流量。

该服务的可执行文件路径为C:\Windows\system32\lsass.exe


4.Netlogon认证流程2

  • Neglogon 客户端和服务端之间通过 Microsoft Netlogon Remote Protocol(MS-NRPC)来进行通信。

    • MS-NRPC并没有使用与其他RPC相同的解决方案

    • 在进行正式通信之前,客户端和服务端之间需要进行身份认证并协商出一个Session Key

      • 该值用于保护双方后续的RPC通信流量。

5.简要的Netlogon认证流程3

  • 域内机器客户端

  • 客户端发送Client Challenge

  • 服务端发送Server Challenge

  • Session Key=Encrypt(SharedSecret,Client Challenge,Server,Challenge)

  • 客户端发送Client Credential=(Encrypt(Session Key,Client Challenge))

  • 服务端发送Server Credential=(Encrypt(Session Key,Server Challenge))

  • 域控服务端

  • 1)由客户端启动网络登录会话,客户端调用NetrServerReqChallenge函数给服务端发送随机的8字节的Client Challenge值。

  • 2)服务端收到客户端发送的NetrServerReqChallenge函数调用指令后,服务端也调用NetrServerReqChallenge 函数发送随机的8字节的Server Challenge值。

  • 3)此时,客户端和服务端均收到了来自对方的Challenge值 ,然后双方都使用共享的密钥secret(客户端机器账户的Hash)以及来自双方的Challenge值通过计算得到SessionKey [Session Key=KDF(secret,(Client Challenge+Server Challenge))]。

    • 此时,客户端和服务端均拥有了相同的Client Challenge、Server Challenge、Session Key
  • 4)客户端使用Session Key 作为密钥加密Client Challenge 得到Client Credential并发送给服务端。

    • 服务端收到客户端发来的Client Credential后,本地使用Session Key 作为密钥加密Client Challenge 计算出 Client Credential

    • 然后比较本地计算出的Client Credential和从客户端发送来的Client Credential 是否相同。

    • 如果两者相同,则说明客户端拥有正确的凭据以及Session Key

  • 5)服务端使用Session Key 作为密钥加密Server Challenge 得到Server Credential并发送给客户端

    • 客户端收到服务端发来的Server Credential后,本地使用Session Key作为密钥加密Server Challenge 计算出Server Credential

    • 然后比较本地计算出的Server Credential和从服务端发送来的Server Credential是否相同。

    • 如果两者相同,则说明服务端拥有相同的Session Key.

  • 6)至此,客户端和服务端双方互相认证成功并且拥有相同的Session Key,此后使用Session Key 来加密后续的RPC通信流量


6.协议漏洞分析

  • 到底是以上哪步出现了问题导致漏洞的产生呢?后面空了再来说说这个问题哟
相关推荐
恰薯条的屑海鸥1 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十四期-XXE模块)
网络·学习·安全·web安全·渗透测试
20242817李臻1 小时前
20242817李臻-安全文件传输系统-项目验收
数据库·安全
网安INF4 小时前
ElGamal加密算法:离散对数难题的安全基石
java·网络安全·密码学
DevSecOps选型指南10 小时前
2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
网络·安全·web安全·开源·代码审计·软件供应链安全
ABB自动化10 小时前
for AC500 PLCs 3ADR025003M9903的安全说明
服务器·安全·机器人
恰薯条的屑海鸥10 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
阿部多瑞 ABU11 小时前
主流大语言模型安全性测试(三):阿拉伯语越狱提示词下的表现与分析
人工智能·安全·ai·语言模型·安全性测试
网安INF12 小时前
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
java·web安全·网络安全·flink·漏洞
lubiii_12 小时前
墨者学院-密码学实训隐写术第二题
web安全·网络安全·密码学
moongoblin13 小时前
行业赋能篇-2-能源行业安全运维升级
运维·安全·协作