Dll注入技术之驱动注入

Dll注入技术之驱动注入

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进程

  • 12
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值