前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dll注入技术之驱动注入

Dll注入技术之驱动注入

作者头像
战神伽罗
发布2019-11-04 11:18:09
2.3K0
发布2019-11-04 11:18:09
举报

0x0 技术简介

实现环境

系统:Windows 7 64bit

工具:VS+WDK

驱动注入

我这里驱动注入的技术是:采用驱动向目标进程插入APC执行LdrLoadDll函数加载Dll模块。

可以注入64位Dll到64位进程或注入32位Dll到32位进程。暂时没有实现跨位数。

APC(异步过程调用)是一种内核机制,它提供了一种在特定线程上下文中执行定制例程的方法。一旦被分派,APC将异步转移目标线程的执行流以调用所选的例程。

apc可分为两大类:

1. 内核模式`APCs: APC`例程最终将执行内核模式代码。这些被进一步分为特殊的内核模式的apc和普通的内核模式的apc,但是我们不会详细讨论 [它们之间的细微差别]

2. 用户模式`APCs: APC`例程最终将执行用户模式代码。只有当拥有apc的线程变得可警报时,才会发出用户模式apc。这是我们将在本节其余部分中讨论的APC类型。

apc主要用于系统级组件,用于执行各种任务(例如促进I/O完成),但也可以用于DLL注入目的。从安全产品的角度来看,内核空间的APC注入提供了一种方便可靠的方法,可以确保特定模块被加载到(几乎)整个系统所需的每个进程中。 0x1 主要思路

R3:加载驱动,打开驱动,控制驱动(发送需要注入的进程Pid和要注入的Dll模块路径给驱动)。

R0:1,通过进程Pid获取EProcess并判断是否为64位进程。

2,附加到目标进程获取其ntdll.dll模块基址及模块中LdrLoadDll函数地址

3,初始化ShellCode,赋值其中的参数和函数地址,申请空间拷贝代码

4,执行ShellCode,查找可用线程插入执行代码APC,插入警醒线程APC 0x2 主要代码

整体流程部分

初始化ShellCode

查找执行线程

插入APC代码部分

0x3 实现效果

注入x64dll到X64进程

注入x86dll到wow64进程

———————————————— 版权声明:本文为CSDN博主「HadesW_W」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/wrsharper/article/details/85792255

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档