BEIH/F:总线枚举接口劫持/伪造
BEIH/F:总线枚举接口劫持/伪造
作者:Azy
日期:2009-5-31
如果说Audio Mixer劫持(AMH)是一种较为被动的穿越,那么BEIH/F则是主动的攻击。通过BEIH/F可以穿越地上HIPS/主动防御产品加载驱动。
该方法原理与amh是相同的,最后驱动的加载也是走ExpWorkerThread->PipDeviceActionWorker->IopLoadDriver这条路径,从而绕过了HIPS/主防产品的拦截。但触发攻击的方式完全不同。
OS中存在一些音频驱动,它们的Start=3,并且Enum键下的值均为0。这些驱动是在系统需要的时候动态枚举并安装总线接口,然后加载相应的驱动文件。
那么如何触发动态枚举安装接口并加载这些驱动呢?答案就是给swenum驱动发送一个特别的I/O Control Code来触发。在InputBuffer中填入欲加载驱动所在接口的GUID值,然后发I/O control Irp到swenum驱动,便可完成一次触发。内核在接到上述Irp后会扫描总线并动态进行接口安装,然后调用IoInvalidateDeviceRelations来触发最后的驱动安装。
由于这一过程完全是人为可控,并且总线枚举的GUID信息全部存储在注册表中,因此我们可以事先篡改仿造HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SW键及HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses下面对应的GUID值及其它接口信息。这样一来,便可成功完成一次BEIH/F攻击。
demo download
BEIH/F:总线枚举接口劫持/伪造相关推荐
- 连接CPU和计算机的总线,什么是计算机总线 总线和接口的区别
什么是计算机总线 这个和计算机主机的构造有关系,首先,我们都知道计算机的cpu由两个部分组成,一个是控制单元,另一个是算术逻辑单元,cpu的控制单元负责计算机各个组件的协调与沟通,什么是沟通?就是数据 ...
- AXI接口协议详解-AXI总线、接口、协议
转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线.接口.协议 AXI 总线 上面介绍了AMBA总线中的两种, ...
- 总线与接口(内部总线、系统总线、外部总线)
这种分类方式是根据离芯片远近等级分类的. 1.1 内部总线 内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连. 1.1.1 I2C总线 I2C(Inter-IC)总线10多年前由Ph ...
- AXI总线详解-总线和接口以及协议
总线.接口和协议,这三个词常常被联系在一起,但是我们心里要明白他们的区别. 总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线.地址线.控制线等构成.接口是一种连接标准,又 ...
- 硬盘接口 PCI-E接口 PCI-E总线 MiniPCIe接口
固态硬盘的出现,彻底打破了机械硬盘多年来在电脑硬件领域的统治地位.相比于机械硬盘,固态硬盘更高的传输性能,让普通用户和发烧玩家的使用体验均得到了成倍的提升. 在这场存储的革命中,为了实现更快的速度.更 ...
- 固态硬盘的总线、接口、协议之间的关系和区别
本文主要摘录自Up主硬件茶谈的视频,原视频链接:点我跳转 在硬盘选购时,主要考虑三个规格.分别是总线(bus).协议(protocol).接口(interface). 概览 协议.总线和接口都能限 ...
- 嵌入式系统设计中常用总线和接口
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU 直接连接,那么连线将会错综复杂,甚至难以实现.为了简化硬件电路设计.简化系统结构,常用一组线 ...
- rs232通信接口单片机51c语言,AT89C51单片机控制的CAN总线RS232接口电路设计
内容介绍 原文档由会员 jiji888 发布 AT89C51单片机控制的CAN总线/RS232接口电路设计 1.44万字 我自己原创的毕业设计,今年最新的,仅在本站独家提交,大家放心使用 目录 引言1 ...
- Linux音频驱动之四:I2S 总线操作接口
本文是基于mini2440开发板Linux版本号是linux-2.6.32.2的学习笔记 一. I2S driver 的probe函数 映射虚拟内存,IIS寄存器的起始地址是:0x55000000 s ...
最新文章
- 网格弹簧质点系统模拟(Spring-Mass System by Verlet Integration)附源码
- 十月 android版本分布,安兔兔发布2018年10月份Android手机性能排行榜
- java paint 怎么用_java如何使用paint方法画图
- python 字符串格式符
- mysql 上一篇_mysql取上一篇和下一篇的查询
- linux vfs open函数,Linux VFS中open系统调用实现原理
- Java Stream API进阶篇
- 工作感想:浅论Java教学工作
- mysql 40014无效,Oracle问题-ORA-14400:插入的分区关键字未映射到任何分区
- 51Nod 1256 乘法逆元 Label:exgcd
- 虚拟机修改hosts文件
- MATLAB基础篇——线性代数应用
- Proximal Algorithms
- python中unicode编码的url如何正确解码
- 生命的活力-负熵-秩序-结构
- Vue3.0笔记(B站天禹老师)
- linux里进程状态为sl,Linux ps state sl+是什么意思
- 微信群发c语言,微信群群发.py
- Elasticsearch深度探秘搜索技术如何手动控制全文检索结果的精准度
- 十一、MySQL触发器
热门文章
- 《缠中说禅108课》17:走势终完美
- toad for mysql 彻底卸载_toad for mysql 下载
- python编译安装详解_linux 编译安装python3.6的教程详解
- Java实现贪吃蛇小游戏
- 数据库原理第六章课后题答案(第四版)
- Unittest数据驱动
- JAVA编程常见错误集锦
- Excel制作小学数学加减法计算题库,实现孩子每日计算训练不重样
- “战”在新高地,星沙加“数”前行
- devc 如何编写java,Android For JNI(1)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序...