权限提升漏洞之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.协议漏洞分析

  • 到底是以上哪步出现了问题导致漏洞的产生呢?后面空了再来说说这个问题哟
相关推荐
一只栖枝3 小时前
网络安全 vs 信息安全的本质解析:数据盾牌与网络防线的辩证关系关系
网络·网络安全·信息安全·it·信息安全认证
安全系统学习3 小时前
【网络安全】Mysql注入中锁机制
安全·web安全·网络安全·渗透测试·xss
怦然星动_6 小时前
DHCP中继及动态分配
网络安全
深圳安锐科技有限公司7 小时前
深圳安锐科技发布国内首款4G 索力仪!让斜拉桥索力自动化监测更精准高效
运维·安全·自动化·自动化监测·人工监测·桥梁监测·索力监测
潘锦7 小时前
海量「免费」的 OPENAI KEY,你敢用吗?
安全·openai
冰橙子id7 小时前
linux系统安全
linux·安全·系统安全
Johny_Zhao8 小时前
Ubuntu系统安装部署Pandawiki智能知识库
linux·mysql·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm·pandawiki
游戏开发爱好者88 小时前
iOS App首次启动请求异常调试:一次冷启动链路抓包与初始化流程修复
websocket·网络协议·tcp/ip·http·网络安全·https·udp
2501_915106328 小时前
频繁迭代下完成iOS App应用上架App Store:一次快速交付项目的完整回顾
websocket·网络协议·tcp/ip·http·网络安全·https·udp
上海锝秉工控9 小时前
防爆拉线位移传感器:工业安全的“隐形守护者”
大数据·人工智能·安全