技术向:黑客是怎样监控你所有打开EXE程序的?

技术应用背景:

目前已知在杀毒厂商以及游戏厂商的安全对抗过程中,常常需要准确的监控收集并进行检测用户创建打开的EXE应用程序是否是安全的。同时也可以将此技术应用于其他应用的安全对抗方案中。那么如何去准确的监控和收集用户每次点击打开的EXE应用程序信息呢?接下来我就进行还原实现下如何准确的监控并收集用户每次点击打开EXE应用程序技术。

效果展示:

下图展示的是开启监控程序,这是进行监控电脑上包括系统自启动EXE程序以及用户主动点击启动应用程序的信息。

image

功能代码实现:

实现监控用户所有创建打开EXE程序的数据需要以下几个步骤:

1.通过调用CoInitializeEx函数,进行对COM初始化。

2.通过调用 CoCreateInstance函数, 获得WMI的定位器。

3.通过调用IWbemLocator::ConnectServer函数,并指定函数的参数 strNetworkResource 的值为 “root\cimv2”, 从而实现连接到 "IWbemServices"服务器。

  1. 通过调用CoSetProxyBlanket函数,进行设置 IWbemServices的代理,目的是为了WMI 服务能够模拟客户端角色。

5.通过调用 ExecNotificationQuery函数, 来进行查询接收事件。

下图这部分代码主要的目的是为了初始化COM和WMI的设置。

image

下面代码主要实现查询接收事件,也就是通过ExecNotificationQuery查询来循环获取用户所创建打开的所有EXE的数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C6NLAMfH-1678157546090)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/411de217375a48199dd72356924a71a5~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image)]

知识背景清单:

概述:WMI技术算得上是一个很古老的技术,它是由微软提供的,同时也是一种非常可靠的解决方案。WMI它还有一个非常大的优势,可以进行访问远程电脑。它是Windows操作系统中管理数据和操作的基础模块,它提供了一个通过操作系统、网络和企业环境去管理本地或远程计算机的统一接口集。

WMI技术可以应用于:

  • 查询获取正在运行进程信息;
  • 查询获取正在运行线程信息;
  • 查询获取桌面信息;
  • 查询获取环境变量信息;
  • 查询获取驱动信息;
  • 查询获取文件夹信息;
  • 查询获取系统信息和系统服务;
  • 查询获取硬件信息;
  • 查询获取磁盘相关信息。

WMI相关概念

1.WBEM它的全称:Web Based Enterprise Management(基于web的企业管理),它是一种行业规范,建立在企业网络中访问和共享管理信息的标准。

2.WMI它的全称:Windows Management Instrumentation(Windows管理工具),它是WBEM的Windows实现,也就是它要遵守WBEM规则。通过WMI,我们可以获取关于硬件和软件的相关数据,也可以提供关于硬件或软件服务的数据给WMI。

3.COM 它的全称:Component Object Model(组件对象模型),它是由微软推出的一套接口规范,通过设定不同组件之间需要遵守的标准与协议,主要用来跨语言、跨进程之间的模块通信。

WMI相关函数

1.CoInitializeEx函数详解

image

2. CoCreateInstance函数详解

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xyufaSLk-1678157546091)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fb33b438f14040d7a19216a6ab46964e~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image)]

3. ConnectServer函数详解

image

4. CoSetProxyBlanket函数详解 image

5.ExecNotificationQuery函数详解 image

WMI架构解析

下图的WMI架构图来源于MSDN,我们可以从架构图中很清晰的看到WMI主要分为3的层结构。 image

1.WMI providersand Managed object(WMI提供者和管理对象) WMI提供者是一个监控一个或者多个的托管对象的COM接口。

托管对象是指逻辑或者物理组件,例如硬盘驱动器、网络适配器、数据库系统、操作系统、进程或者服务。

WMI提供者通过托管对象提供的数据向WMI服务提供数据,同时将WMI服务的请求传递给托管对象。

WMI提供者是由实现逻辑的DLL和承载着描述数据和操作的类的托管对象格式MOF(Managed Object Format)文件组成。其中这个两个文件都保存在\Windows\System32\wbem目录下。

image

2.WMI Infrastructure(WMI基础结构)

WMI的基础结构是Windows系统的系统组件。它主要包含两个模块:包含WMI Core(WMI核心)的WMI Service(WMI服务)和WMI Repository(WMI存储库)。

WMI存储库是通过WMI Namespace(WMI命名空间)组织起来的。在系统启动时,WMI服务会创建例如root\cimv2、root\default、root\subscription等等命名空间。

WMI服务扮演着WMi提供者、管理应用和WMI存储库之间的协调者角色。一般来说,它是通过一个共享的服务进程svchost来实施工作的。当第一个管理应用向WMI命名空间发起连接时,WMI服务将会启动。当管理应用不再调用WMI时,WMI服务将会关闭或者进入低内存状态。

3.WMI Consumers(WMI使用者)

它位于WMI构架的最顶层,它是WMI技术使用的载体。对于使用C++代码实现我们就可以直接通过COM技术直接与下层进行通信。对于.net平台语言,则要使用System.Management域相关功能与下层进行通信。WMI的使用者,可以进行查询、枚举数据,也可以运行Provider的方法,还可以向WMI订阅消息。其中这些数据操作都是要有相应的Provider来提供。

​最后

为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉CSDN大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)👈

1️⃣零基础入门

① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

因篇幅有限,仅展示部分资料

2️⃣视频配套资料&国内外网安书籍、文档

① 文档和书籍资料

② 黑客技术

因篇幅有限,仅展示部分资料

👉CSDN大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)👈

3️⃣网络安全源码合集+工具包

4️⃣网络安全面试题

5️⃣汇总

所有资料 ⚡️ ,朋友们如果有需要全套 《网络安全入门+进阶学习资源包》,扫码获取~

👉CSDN大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值