首页
社区
课程
招聘
[原创]一种劫持 explorer 过启动的想法
发表于: 2021-1-14 22:48 13619

[原创]一种劫持 explorer 过启动的想法

2021-1-14 22:48
13619

如果熟悉早期的病毒,一定对 lpk.dll 病毒有印象。

系统本身的 lpk.dll 文件位于 C:\WINDOWS\system32\lpk.dll ,而当年lpk.dll 病毒是将自身复制到全盘都是,借助的是dll hijack技术以及绝大多数 exe 文件都会调用 lpk.dll 的条件。


dll hijack(此处不再赘述其原理)的方法现在主要被用于绕过UAC提取,白加黑等操作。然而在整理权限维持方法时,我突然想到,如果对开机自启的应用进行劫持,是否可以达到过启动的目的。

理论存在,实践开始。我的实验目标选定了 explorer ,桌面这个进程开机自启,而且从进程链来看也显得正常。实验步骤也很简单,写入dll,然后等待计算机重启或者直接重启 explorer 进程。关于 dll 的选择,这里我选择的是 TextShaping.dll ,其会被 explorer 调用,且被替换后有很明显的特征(可以看后文图片)。

explorer.exe 位于电脑中的 C:\Windows\ 文件夹中,默认调用的是 C:\Windows\System32\TextShaping.dll 。


使用 Process Monitor 可以明显看到,正常 explorer.exe 的启动过程会试图从自身目录寻找 TextShaping.dll ,也就是 C:\Windows\TextShaping.dll 。


这与我的预期相符,只有向 C:\Windows\TextShaping.dll 这个位置写入一个 dll 即可劫持 explorer 。

我们简单的构造一个 dll ,创建互斥量(因为函数会被多次调用,不加互斥有概率直接卡死),并使用 WinExec 打开 calc 作为测试。


之后写一个写入dll的程序,并附加重启explorer的操作。(dll文件保存在Resources中)


程序需要 Administrator 权限来写入 C:\Windows\ 目录,开了个win10 x64的虚拟机,安装了最新版360卫士和杀毒,并没有对行为提示(倒是两个文件都被报毒查杀了。。。)。然后在 C:\Windows\ 目录确认文件存在。


执行成功的话,直接回到桌面,会看到下图的样子(这也是为什么选择这个dll,我们可以明显的看到桌面上的文件名等文字部分都消失了)。


任务管理器中可以看到 calc 已经被执行了,但是这里不知道因为什么,并没有弹出界面,不过这只是小问题就先不管了。

综合来看,通过这种手法来实现过启动是可行的。当然实际操作还有许多地方要处理,比如文件的免杀,dll 函数的转发,以及其他细节。

应对策略:现有的360其实对类似的操作有着防范,比如 explorer 调用的很多其他 dll 写入该目录是会有提示的。

最简单的解决方式就是向监控列表添加 dll 文件,或者直接监控所有复制到类似敏感目录的操作,并弹窗提示。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-1-15 16:08 被qwqdanchun编辑 ,原因: 补充
收藏
免费 3
支持
分享
最新回复 (5)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
为什么我的电脑里没有TextShaping.dll呀?
而且就算写了一个放在那里,重启explorer后,explorer也不会加载它
2021-8-17 17:21
0
雪    币: 299
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
r然并卵
2021-8-21 17:12
0
雪    币: 498
活跃值: (2319)
能力值: ( LV12,RANK:356 )
在线值:
发帖
回帖
粉丝
4
calc.exe没有弹窗是因为有session隔离,不出意外的话,calc应该是SYSTEM权限。
2021-8-24 17:05
0
雪    币: 20
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
都有admin权限了创建几个开机启动程序和服务和驱动都不是问题。所以核心还是提权。
2021-8-26 06:19
0
游客
登录 | 注册 方可回帖
返回
//