secdrv.sys任意kernel地址覆盖漏洞浅析(0day)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
secdrv.sys任意kernel地址覆盖漏洞浅析(0day)
by flyingkisser 
 
前言:
这几天忙着找工作,没及时看安全公告,这个0day出了好几天才知道,
并且等我想分析时,才发现poc已经出来了。
Anyway,还是把分析过程写一写吧,尽管没什么技术含量,
这里我只分析了主要的地方,也只说说关键的。
 
1.什么是secdrv.sys
secdrv.sys,不知道是干什么的,也懒得去google了,我只发现xp的默认安装
有这个文件,位于%systemroot%/system32/drivers/,并且,我的机器默认没有
加载这个驱动,我也不清楚什么条件下系统会加载这个驱动。
 
2.分析这个漏洞前的准备
a.加载这个驱动,并run(我用的是kmdmanager.exe)
b.开kd(这里就不用softice动态跟了,因为我的虚拟机一运行softice,主机的cpu使用率就100%,
如果有人知道为什么,麻烦来信告诉我))
 
kd> !object /Driver/
在茫茫信息中找到
 18  81218c08 Driver        secdrv
 
kd> dt nt!_driver_object 81218c08 MajorFunction
nt!_DRIVER_OBJECT
   +0x038 MajorFunction : [28] 0xfaf38f28     +0
 
kd> dd 81218c08+38+e*4 l1
81218c78  faf38f28
(因为IRP_MJ_DEVICE_CONTROL=e)
 
因此得知这个驱动对象的Irp的Dispatch函数地址是faf38f28
 
下面,我们直接看看这个Dispatch函数的内部实现就行了
 
3.Dispatch函数的内部实现
首先,通过POC我已经知道发生问题的io control code是0xCA002813
io control code的格式如下:
-------------------------------------------------------
| Bit31-Bit16 | Bit15,Bit14 | Bit14-Bit2 | Bit1,Bit0  |
-------------------------------------------------------
| DeviceType  |   Access    | Function   |   Method   |
-------------------------------------------------------
0xCA002813最后一个字节是13,即bit1,bit0是11,所以使用的Method是METHOD_NEITHER,
即i/o管理器对DeviceIoControl 提供的输入缓冲区和输出缓冲区的内容不进行额外的复制,
即输入缓存区和输出缓冲区都是ring3调用入栈的地址。这时:
InputBuf位于IO_STACK_LOCATION结构的Parameters.DeviceIoControl.Type3InputBuffer成员中
OutputBuf位于_Irp结构的UserBuffer成员中
 
下面来看这个Dispatch函数内部关键的汇编代码  
 
faf38e2c 817df0132800ca  cmp     dword ptr [ebp-10h],0CA002813h ;0xCA002813
faf38e33 7434            je      secdrv+0x5e69 (faf38e69)       ;according to poc,this is the MAGIC_IOCTL,need to jump
 
faf38e69 8b450c          mov     eax,dword ptr [ebp+0Ch]        ;eax=&pIrp->IoStatus
faf38e6c 832000          and     dword ptr [eax],0                      ;pIrp->IoStatus->Status=0
faf38e6f 8b450c          mov     eax,dword ptr [ebp+0Ch]
faf38e72 83600400        and     dword ptr [eax+4],0            ;pIrp->IoStatus->Information=0
faf38e76 8b45e8          mov     eax,dword ptr [ebp-18h]        ;pIrp->CurrentStackLocation
faf38e79 8b4010          mov     eax,dword ptr [eax+10h]        ;eax=csl->Parameters->DeviceIoControl->Type3InputBuffer
faf38e7c 8945f4          mov     dword ptr [ebp-0Ch],eax
faf38e7f 8b45e8          mov     eax,dword ptr [ebp-18h]
faf38e82 8b4008          mov     eax,dword ptr [eax+8]
faf38e85 8945ec          mov     dword ptr [ebp-14h],eax        ;eax=csl->Parameters->DeviceIoControl->InputBufferLength
faf38e88 8b45e8          mov     eax,dword ptr [ebp-18h]
faf38e8b 8b4004          mov     eax,dword ptr [eax+4]
faf38e8e 8945fc          mov     dword ptr [ebp-4],eax          ;eax=csl->Parameters->DeviceIoControl->OutputBufferLength
faf38e91 8b45ec          mov     eax,dword ptr [ebp-14h]
faf38e94 3b45fc          cmp     eax,dword ptr [ebp-4]          ;
faf38e97 7417            je      secdrv+0x5eb0 (faf38eb0)       ;need to jump
 
;if(csl->Parameters->DeviceIoControl->OutputBufferLength==csl->Parameters->DeviceIoControl->InputBufferLength)
;jump here
;即输入Buf和输出Buf的长度需要相等才行
faf38eb0 8b45f4          mov     eax,dword ptr [ebp-0Ch]        ;eax=csl->Parameters->DeviceIoControl->Type3InputBuffer
                                                          &n
三11 win10用签名.zip 三国志11无法直接在win10运行, 把secdrv.sys放到C:\Windows\System32\drivers下就可以了 立即下载

相关推荐

Windows XP 核心驱动 secdrv.sys 本地权限提升漏洞

利用系统漏洞是最直接的方法!微软在2007年下半年发布了一个“Windows XP 核心驱动 secdrv.sys 本地权限提升漏洞”,利用这个本地溢出漏洞,我们可以获得本地的最高权限。

老电脑升级win11一键解决

一些老的电脑无法安装win11,这个文件可以解决。本人亲自测试过。升到win11别忘了磁盘清理一下,需要可以下载。

三国志11 全部数据MySQL命令

san_baowu.sql 三国志11 数据MySQL命令,其中包含宝物、朝代、城市、关口、势力、武将内容。

三国志11各城市火球阵.doc

三国志11各城市火球阵.doc

在win10运行三国志11,真三国无双4等老游戏

在win10运行三国志11,真三国无双4等老游戏 针对win10下打开三国志11,真三国无双4等老游戏的问题,可尝试以下解决办法: 设置兼容模式 以管理员身份运行cmd,输入 sc config secdrv start=auto 后回车 下载 secdrv.sys,置于C:\Windows\system32\drivers\ 文件夹下 下载地址:https://pan.baidu.com/s/17I_ynArLMluSYxtZgr6f1Q 提取码: 7mgy ...

qq_40563228的博客 2万+

【免费下载】 三国志11原版在Windows 11上的成功运行指南

三国志11原版在Windows 11上的成功运行指南 【下载地址】三国志11原版在Windows11上的成功运行指南分享 三国志11原版在Windows 11上的成功运行指南本文详细介绍了如何在Windows 11系统上成功运行原版三国志11的步骤 ...

gitblog_06592的博客 4520

[Ph4nt0m]_secdrv.sys任意kernel地址覆盖漏洞浅析(0day)

以下消息来自幻影论坛[Ph4nt0m]邮件组 secdrv.sys任意kernel地址覆盖漏洞浅析(0day) by flyingkisser 前言: 这几天忙着找工作,没及时看安全公告,这个0day出了好几天才知道, 并且等我想分析时,才发现poc已经出来了。 Anyway,还是把分析过程写一写吧,尽管没什么技术含量, 这里我只分析了主要的地方,也只说说关键的。 1...

weixin_34272308的博客 310

深入浅出secdrv.sys本地提权0day Poc

来源:gyzy's Blog本文已经发表在《***防线》2007年9月刊。作者及《***防线》保留版权,转载请注明原始出处适合读者:溢出爱好者前置知识:汇编语言、Windows内核基本原理深入浅出secdrv.sys本地提权0day Poc文/图 gyzy[江苏大学信息安全系&EST]漏洞出在一款名为secdrv.sys的驱动程序中,secdrv.sys是集成在Win...

weixin_34329187的博客 567

三国志11原版win11成功运行心得

搞了半天,在网上摸索了好久,终于能够在win11上运行三国志11了!!!!!!!!

A_grumpy_Mario的博客 3万+

sys驱动签名工具.zip

sys驱动签名工具.zipsys驱动签名工具.zipsys驱动签名工具.zipsys驱动签名工具.zipsys驱动签名工具.zip

白帽子讲Web安全

白帽子讲Web安全 吴翰清著 ISBN978-7-121-16072-1 2012年3月出版 定价:69.00元 16开 448页 宣传语:安全是互联网公司的生命,也是每一位网民的最基本需求。一位天天听到炮声的白帽子和你分享如何呵护生命,满足最基本需求。这是一本能闻到硝烟味道的书 内 容 简 介 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷...

云计算? 352

win10分辨率不能调整_三国志:游戏在win10系统无法运行咋办?

随着windows系统的不断更新,许多原来在winxp上的经典游戏变得无法运行了。三国志系列游戏也是这样,探索机以前在win10系统上下载了三国志9、10和11,结果通通无法运行。网上有很多解决游戏兼容问题的方法,不过探索机觉得最快、最简单的方法是脱壳补丁法。比如《三国志11》有专门的win7或win10的兼容补丁,下载后解压,把sanpkexe替换到原文件里即可。探索机建议下win10补丁,因为...

weixin_39778214的博客 3743

secoclient返回码超时(在网上找了好几个都没用,这个亲测有用)

1.进入Device Manager ->Network adapters找到SVN Adapter V1.0,右键选择Disable。 2.进入C:\Windows\System32\drivers找到SVNDrv.sys文件并删除,删除后复制新的SVNDrv.sys到对应目录(备注:下为最新的SVNDrv.sys文件) SVNDrv.sys文件链接...

qq_39153893的博客 1万+
上一篇: Base64编码算法
下一篇: Packet Sniffers
iiprogram
博客等级 码龄25年 1066粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值