0x01 漏洞描述
CVE-2024-26229:Windows CSC服务特权提升漏洞,csc.sys驱动程序中带有METHOD_NEITHER I/O控制代码的IOCTL地址验证不正确。
当IOCTL使用METHOD_NEITHER选项进行I/O控制时,IOCTL有责任验证提供给它的地址,如果验证缺失或不正确,攻击者可以提供任意内存地址,从而导致代码执行或拒绝服务。
从下文链接和本次测试看,应该从
Win10 ≥1809
版本之后都有受到影响,包括到Win11的23H2,1809之前的版本由于没测试环境(不太确定),目前只测试了以下4个版本。
Windows 10 1909(Success)
Windows 10 20H2(Success)
Windows 11 22H2(Success)
Windows 11 23H2(Success)
[...SNIP...]
0x03 漏洞复现
这个提权漏洞的利用需要目标主机启用
csc
服务,可以使用
sc qc csc
命令查询,START_TYPE为
DISABLED
禁用(左图),
SYSTEM_START
启用(右图)。
2008/2012没有这服务(无法利用),2016/2019/2022倒是有这服务,但是默认都禁用了,而且没法启动,WinObjEx64中也没有找到
csc
,Win10有。
二、利用方式
只需将免杀木马文件名改为
cmd.exe
放在exp目录下即可,默认优先执行这个目录下的
cmd.exe
,如果该目录下没有cmd.exe才会去执行System32下的
cmd.exe
。
刚出的CVE-2024-26229-BOF,比上边这工具利用起来更简单更好(
内存执行,无需落地
),使用
inline-execute
执行BOF文件即可
将当前Beacon提升为SYSTEM。
默认源码编译的CVE-2024-26229.exe在Win10 20H2利用成功,但在Win10 1909执行时会提示找不到
vcruntime140.dll
,需手动上传这个文件
。
有的exp在执行时会遇到缺少dll文件的情况,我们可以尝试在Visual Studio将编译模式改为
MTd
,默认为
MDd
模式,不过
MTd
编译的文件要比
MDd
大不少。
问题2:
Win10 1909上传
vcruntime140.dll
后再执行exp并没有再报错,但还是之前的低权限...
,这种情况可能是
Token
不对,可以用
windbg
看下偏移。
打开windbg -> Ctrl+E -> CVE-2024-26229.exe -> 输入
dt _eprocess
命令,可以看到Win10 1909的
Token
偏移为
0x360
,不同Windows版本
Token
偏移也不同。
Win10 1909 token:0x360
Win10 20H2 token:0x4b8
Win11 22H2 token:0x4b8
Win11 23H2 Token:0x4b8
[...SNIP...]
注:
通过Google查找相关资料,看了下各个版本的
Token
偏移,应该是从
Win10 2004 (20H1)
这个版本开始
Token
偏移才发生的变化,之前的是
0x360
,之后的都是
0x4b8
。
然后将
CVE-2024-26229-exploit