首页
社区
课程
招聘
[原创]RING3下的模块注入隐藏
发表于: 2019-9-7 15:03 6774

[原创]RING3下的模块注入隐藏

2019-9-7 15:03
6774
先说一下实现步骤:
                               0.准备要注入的模块,在要注入的模块中必须要有   :
                                                                                                               (1).修复此模块IAT表的函数 ;
                                                                                                               (2).CPU执行的跳转接口函数;
                                                                                                               (3).一个全局变量;
                               1.获得被注入的目标进程的句柄,获得目标进程的主线程句柄;

                               2.申请一块大小为要注入的模块的ImageSize的内存;

                               3.将要注入的模块写入到第2步所申请的内存中,注意,要注入的模块可以是外部的磁盘文件,也可以是注入程序自身已经被加载内存的Image镜像,如果是外部磁盘文件则需要按照注入模块的PE节表展开成Image镜像状态再写入到 第2步所申请的内存中,如果是注入程序本身的Image镜像则可以直接copy到第2步申请的内存之中,经过以上3个步骤,要注入的模块已经成为可执行的Image镜像状态

                                4.在被注入的目标进程中申请一块大小和第2步所申请内存的大小相同的内存;

                                5.把第4步申请的内存的首地址当成要注入的模块的ImageBase修复重定位;

                                6.把第3步生成的Image镜像写入到第4步所申请的内存之中;

                                7.挂起目标进程的主线程,并获得这个线程的Context;

                                8.保存第7步所获得的Context结构中的EIP备用,注意,要保存到要注入的模块的全局变量中,也就是第0步所说的那个全局变量;

                                9.修改Context的EIP,使得EIP的值正是第0步所说的跳转接口函数,此跳转函数的代码如下:


extern "C" VOID __declspec(naked) EntryPoint()
{
	__asm
	{
          push dwRetAddress;//dwRetAddress正是第0步中准备好的全局变量
		push ebp;
		mov ebp, esp;
		sub esp, 0xc0;
		pushad;
		pushfd;
		lea edi, dword ptr ss : [ebp - 0xc0];
		mov ecx, 30;
		mov eax, 0xcccccccc;
		rep stos dword ptr es : [edi];
		call  RepirIatTabel;
		jmp  tp;
	lp:
		popfd;
		popad;
		mov esp, ebp;
		pop ebp;
		ret;
	tp:
		jmp lp;
	}
}
                               10.恢复目标进程的主线程;
                               11.可以看到在此跳转接口中调用了一个RepirIatTable的函数,这个函数正是第0步中所说的修复此注入模块的IAT表的函数;
                               12.在修复完IAT表后我们就可以为所欲为地做我们自己想做事情了;

看一下效果动图:

                              
                                 
                                 
                                

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

最后于 2019-9-8 19:22 被Mr.hack编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
直接注入shellcode也可以,参考
https://github.com/w1nds/dll2shellcode
https://github.com/w1nds/ishellcode
2019-9-7 16:04
0
雪    币: 914
活跃值: (2288)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
3
RWX=拉闸,有请下一位选手
2019-9-9 08:42
0
雪    币: 4402
活跃值: (1316)
能力值: ( LV7,RANK:113 )
在线值:
发帖
回帖
粉丝
4
反射式注入DLL请参考 https://silentbreaksecurity.com/srdi-shellcode-reflective-dll-injection
2019-9-9 09:34
0
雪    币: 3082
活跃值: (3623)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
万剑归宗 RWX=拉闸,有请下一位选手
啥意思?
2019-9-9 10:20
0
雪    币: 43
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
Mr.hack 啥意思?
能加你的QQ交流下吗
最后于 2019-11-14 09:08 被紫梦寒编辑 ,原因:
2019-11-14 09:06
0
雪    币: 3082
活跃值: (3623)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
紫梦寒 Mr.hack 啥意思? 能加你的QQ交流下吗
我qq:1358680601
2019-11-14 18:13
0
游客
登录 | 注册 方可回帖
返回
//