后门及持久化访问4----Com组件劫持
1|0代码及原理介绍
COM是Component Object Model(组件对象模型)的缩写,COM组件由DLL和EXE形式发布的可执行代码所组成。每个COM组件都有一个CLSID,这个CLSID是注册的时候写进注册表的,可以把这个CLSID理解为这个组件最终可以实例化的子类的一个ID。这样就可以通过查询注册表中的CLSID来找到COM组件所在的dll的名称。所以要想COM劫持,必须精心挑选CLSID,尽量选择应用范围广的CLSID。这里,我们选择的CLSID为:{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7},来实现对CAccPropServicesClass 和 MMDeviceEnumerator的劫持。系统很多正常程序启动时需要调用这两个实例。例如计算器。
Dll存放的位置://%APPDATA%Microsoft/Installer/{BCDE0395-E52F-467C-8E3D-C4579291692E}
接下来就是修改注册表,在指定路径添加文件,具体代码如下:
别问我为什么不写在两个函数里,因为我不会。
DLL文件代码(这里的DLL代码就是用的上次的那个DLL文件)
2|0运行效果图
运行生成的EXE文件(管理员运行),注意-go是安装劫持,-down是移除劫持.
运行后,会生成以下目录:
然后将自己写好的DLL文件放入当前目录中
会生成以下注册表项
运行计算器,调用qianxiao996.dll 弹出对话框:
移除COM劫持
3|0检查及清除方法
由于COM对象是操作系统和已安装软件的合法部分,因此直接阻止对COM对象的更改可能会对正常的功能产生副作用。相比之下,使用白名单识别潜在的病毒会更有效。
现有COM对象的注册表项可能很少发生更改。当具有已知路径和二进制的条目被替换或更改为异常值以指向新位置中的未知二进制时,它可能是可疑的行为,应该进行调查。同样,如果收集和分析程序DLL加载,任何与COM对象注册表修改相关的异常DLL加载都可能表明已执行COM劫持。
__EOF__

本文链接:https://www.cnblogs.com/qianxiao996/p/13574568.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!