首页
社区
课程
招聘
[原创]分析X绒hrdevmon.sys,突破U盘访问控制,摄像头保护原理
2021-3-19 23:33 7876

[原创]分析X绒hrdevmon.sys,突破U盘访问控制,摄像头保护原理

2021-3-19 23:33
7876

Q1815349357Q


  多年前,部分杀软就推出了U盘访问控制,摄像头保护的功能。

现在较火的端点防护概念,也强调自己设备权限控制的能力,但实现方法见智见仁。


  驱动级控制的原理是类过滤驱动,做内核开发的传统艺能了。

  比如:https://github.com/pwnslinger/USBlocker

  比如百度杀毒的BdCameraProtect.sys,笔者手里这份编译时间是:2013/10/30 (PE FILE_HEADER).


正好看到X绒的hrdevmon.sys,打开看一下。


在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class里搜索hrdevmon,能看到所有被过滤的类。

hrdevmon.sys Attach了如下两种DeviceType:

  - FILE_DEVICE_MASS_STORAGE

  - FILE_DEVICE_KS


对MASS_STORAGE设备的处理里,着重处理了:

  - MJ_FltMassStorageWrite

  - MJ_FltMassStorageDevCtl (IOCTL_SCSI_PASS_THROUGH & IOCTL_SCSI_PASS_THROUGH_DIRECT)

                             Cdb[0] (0xA or 0x2A or 0xAA)

   

参考:

   Windows IOCTL Reference:http://www.ioctls.net/

   SCSI Operation Codes:https://www.t10.org/lists/op-num.htm

  

但是两者都只过滤了写操作,判断偏移是否在MBR或者VBR内,是的话说明有人写MBR/VBR,则上报。

这里有个疑问,由一个函数判断偏移是否在MBR或者VBR里,

Write里是用偏移字节数传递给该函数,DevCtl里则是用扇区数传递给该函数,该函数并没有区分,

这里写错了还是笔者搞错了?

MASS_STORAGE里并不干涉U盘(只要不是写MBR/VBR),那么正好很容易能突破,如下:

https://blog.csdn.net/u011164819/article/details/52045151

或者不想写代码,用winhex(工具->打开磁盘)即可。


FILE_DEVICE_KS这个,内核流设备,是用来保护摄像头的,挂载在注册表Class里的image设备里面。

MJ_FltKsDevCtl里,IOCTL_KS_READ_STREAM,是读取流内容。

这里会往上报操作者pid与tid,然后弹框询问用户,允许或阻止。

hrdevmon里,所有FltKsDevObj是放在一个全局list里(g_pFltKsDOList),有数量限制。


附上idb,侵删


-End-



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-3-19 23:47 被囧囧编辑 ,原因:
上传的附件:
收藏
点赞5
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回