首页
社区
课程
招聘
[原创]360ini.dll注入explorer技术分析
发表于: 2022-10-23 22:39 12814

[原创]360ini.dll注入explorer技术分析

2022-10-23 22:39
12814

前两天看了火绒安全实验室写的一篇分析360安全卫士极速版“诱导式”推广的文章,里面提到了一个下载安装模块360ini.dll会注入Windows资源管理器explorer.exe进程,利用系统进程下载360安装包,如下图所示。不过文章中仅仅只提到了360ini.dll模块会区分32位和64位的explorer进程进行注入,对于核心的注入技术细节没有再进一步深入,因此这篇文章尝试通过动静态等方式分析360选择的注入explorer的技术方式。
图片描述

原文在这里:

360安全卫士极速版"诱导式"推广 静默安装且对抗安全软件

先说结论:

还是利用NtSuspendThread、NtSetContextThread、NtResumeThread等组合函数劫持explorer负责消息处理的UI线程执行流,不过在shellcode执行结束后会将控制权返还给explorer。

火绒已经分析出了x86、x64注入的核心函数,参数为目标进程pid。

图片描述

跟进x64的函数看一下,首先是一堆栈上赋值操作,推测应该是用了编译时字符串混淆。这一大段数据猜测是后续用于注入的shellcode。

图片描述

随后调用openprocess、openthread函数打开目标线程。

图片描述

选择目标线程的时候则是利用GetThreadTimes函数获取线程创建时间,返回最早创建的线程tid。

图片描述

之所以选择该线程可能是因为大部分时候都是处于WaitMessage等待事件消息的状态。

图片描述

获取目标线程pid后两次调用常规函数跨进程申请内存、写内存。第一次写注入dll的路径,第二次写加载dll的shellcode1。

图片描述

动态调试可以看到申请了地址0x3a20000大小64K的读写内存。

图片描述

并向其中写入了注入dll的路径。

图片描述

第二次申请了地址为0x2b2000大小64K的可执行内存。

图片描述

向其中写入加载dll的shellcode1。

图片描述

写完dll路径和shellcode1后,进入sub_10003D50核心注入函数。首先挂起目标线程、获取目标线程的寄存器等上下文。随后继续申请内存写shellcode2。最后在改写完shellcode2和寄存器上下文之后设置线程将要执行的上下文,恢复目标线程。

图片描述

下图可看到申请的shellcode2地址为0x3a30000,功能为创建到0x2b2000的shellcode1的线程。

图片描述

这里可以看到原始的线程上下文EIP为0x773F932A指向user32.dll空间,将其修改为0x3A30000即shellcode2的地址。

图片描述

最后一步设置目标线程的上下文,恢复线程即完成x64的整个注入explorer进程操作。

最后看下两段shellcode,shellcode2也就是劫持了原始执行流的shellcode调用了CreateThread函数,目标地址为shellcode1,参数为dll路径。

图片描述

并在创建完成后返回到原始执行流也就是user32.dll空间下的0x773F932A地址。

图片描述

shellcode1则直接调用LoadLibraryW在explorer中加载dll。

图片描述

到这x64注入explorer进程的流程基本就结束了。下载的安装包证据如图。

图片描述

不过最后还有一个疑点,shellcode2的地址申请的是读写权限的内存,不知道为啥执行的时候内存就变成读写可执行的了。这一点很疑惑,有没有大佬知道为啥的。

360ini.dll本身有反调试手段,如果后续想要动态调试的话需要patch或者动态过掉两个TLS回调函数,并且在dllmain中过掉这两个反调试函数。

图片描述

360ini.dll为了阻碍静态分析,系统api大部分都是在dll加载时动态获取动态调用的,单纯用ida很难分析,并且某些关键api函数还利用了类似于wrapper层去调用ntdll的系统调用。不过好在静态代码还能看,没有上花里胡哨的混淆或者壳之类的。

sha256:f3690fae9bec82693a771f5f5839239ca18f90624a6aef631dcd0f19820eb38a


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

收藏
免费 10
支持
分享
最新回复 (8)
雪    币: 198
活跃值: (124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
厉害厉害,360也太狠了
2022-10-26 09:21
0
雪    币: 1475
活跃值: (14652)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
3
那么问题来了,这算不算非法入侵计算机信息系统罪,这么大的一个业绩在这,gj机关这都不抓一手吗
2022-10-26 09:33
2
雪    币: 1721
活跃值: (1560)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
SSH山水画 那么问题来了,这算不算非法入侵计算机信息系统罪,这么大的一个业绩在这,gj机关这都不抓一手吗
同问
2022-10-26 09:55
0
雪    币: 2325
活跃值: (2304)
能力值: ( LV6,RANK:89 )
在线值:
发帖
回帖
粉丝
5
申请的就是rwx  右边权限显示错了
2022-10-26 10:21
1
雪    币: 1258
活跃值: (1434)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
想多了,是谁点鼠标下载,执行的? 
2022-10-26 11:47
0
雪    币: 1556
活跃值: (2297)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
SSH山水画 那么问题来了,这算不算非法入侵计算机信息系统罪,这么大的一个业绩在这,gj机关这都不抓一手吗
哎怎么说呢,某些驱动更过分。这里被抓着实自己有问题,下个载还得用explorer的?
2022-10-26 17:07
0
雪    币: 7063
活跃值: (2958)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
膜拜大佬
2022-10-28 10:20
0
雪    币: 10213
活跃值: (4366)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

 

最后于 2022-11-6 18:48 被superlover编辑 ,原因:
2022-11-6 13:38
0
游客
登录 | 注册 方可回帖
返回
//