CVE-2022-26937 Windows NFS 栈溢出漏洞分析

本文分析了CVE-2022-26937,这是一个Windows NFS中的栈溢出漏洞,攻击者可构造RPC数据包来利用,导致服务器失陷。文章介绍了NFS通信流程,详细讲解了漏洞发生的原因,即在处理ipv6响应包时未验证地址字符串长度,引发栈溢出。修复方案是在更新中增加了对返回地址长度的验证。
摘要由CSDN通过智能技术生成

简介

NFS全称Network File System,即网络文件系统,用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程访问保存在存储设备上的数据。

CVE-2022-26937是微软5月份修复的Windows
NFS中一个对NLM响应处理不当的栈溢出漏洞,攻击者可通过精心构造RPC数据包来利用此漏洞,从而劫持程序流程令服务器失陷。本文将从介绍NFS通信流程开始,对CVE-2022-26937漏洞进行分析,希望能够帮助读者了解NFS协议以及其通信流程中可能存在的不安全问题。

问题咨询和282G网络安全资料的领取点击此处即可

**01 **NFS通信流程

NFS是基于RPC远程过程调用协议来实现通信,RPC工作机制如下:

1661851977_630dd949c2b3d3e59d739.jpg!small?1661851978606

1. 客户端程序通过执行RPC系统调用的方式发送调用号与参数到服务端。

2. 服务端在收到客户端的系统调用请求后,本地执行对应系统调用,然后将结果返回给服务进程。

3. 服务进程将收到的结果封装后发送给客户端。

4. 客户端接受执行结果,继续执行。

这其中PRC结构如下表所示

Offset      Size(bytes) Description  
0x00        4           XID  
0x04        4           Message Type (Call: 0)  
0x08        4           RPC Version  
0x0C        4           Program (e.g., 100000: portmap)  
0x10        4           Program Version  
0x14        4           Procedure  
0x18        4           Credentials Flavour (e.g., AUTH_UNIX: 1)  
0x1c        4           Credentials Length (q)  
0x20        q           Credentials  
0x20+q      4           Verifier Flavour (e.g., AUTH_NULL: 0)  
0x24+q      4           Verifier Length: w  
0x28+q      w           Verifier  
0x28+q+w    N           Program-specific data

有了如上结构,我们就可以伪造客户端跟服务器进行通信,比如构造如下请求。

1661851990_630dd956a958e9a5dbd20.jpg!small?1661851991644

由上,我们伪造客户端发送GETPORT CALL NLM的系统调用,来获取服务器NLM运行端口,服务器执行对应系统调用后将端口号发送给客户端。

NLM结构如下表

Offset           Size(bytes) Description  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值