首页
社区
课程
招聘
[求助]内存dll的远程线程注入,如何使用MemoryModule开源库?
发表于: 2018-2-4 21:03 10046

[求助]内存dll的远程线程注入,如何使用MemoryModule开源库?

2018-2-4 21:03
10046
思路:把dll文件放到exe的资源文件里,使用MemoryModule加载到内存,远程注入到其他软件的进程里,注射完exe关闭,这样本地和其他软件的进程中就不会查到dll,从而做到隐藏运行。
在VS2015中把DLL以资源的方式加入EXE工程文件,然后直接加载到内存,用CreateRemoteThread注入到远程进程中,使用的是开源库MemoryModule加载DLL到内存中的,不知道怎么使用MemoryLoadLibrary这个函数?
PTHREAD_START_ROUTINE  lpStartAddr = PTHREAD_START_ROUTINE((int)MemoryLoadLibrary);
if (!lpStartAddr)
{
MessageBox(NULL, TEXT("GetProcAddress失败!"), TEXT("LOG"), MB_OK);
return FALSE;
}
hThread = CreateRemoteThread(hProcess, NULL, 0, lpStartAddr, lpBufAddr, 0, &dwThreadID);
if (!hThread)
{
MessageBox(NULL, TEXT("CreateRemoteThread失败!"), TEXT("LOG"), MB_OK);
return FALSE;
}

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

最后于 2018-8-11 22:17 被hayde编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (23)
雪    币: 54
活跃值: (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
MemoryLoadLibrary(filedll_data,data_size)
2018-2-4 21:06
0
雪    币: 10
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么和CreateRemoteThread结合使用呢?
2018-2-4 22:05
0
雪    币: 6
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
MemoryLoadLibrary返回的是HMODULE吧,不是函数地址
2018-2-4 22:49
0
雪    币: 2056
活跃值: (1471)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
远程 需要处理很多东西,比如重定位,之类的。这是 网上 流传的  提取出来的shellcode ,把shellcode和dll数据写入对方进程  然后远程线程 去 call shellcode。 load一个参数 内存地址,free 一个参数,    这俩可以直接 call,      getproc 俩参数 句柄,名字。注意名字  要写入对方进程 才行。  。需要构造 call 代码并写入 
上传的附件:
2018-2-5 10:40
1
雪    币: 1046
活跃值: (1261)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
6
这个库好low啊,异常都不支持。
内存注入你可以用下github有个叫反射注入的
2018-2-5 16:09
0
雪    币: 10
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
StriveXjun 这个库好low啊,异常都不支持。 内存注入你可以用下github有个叫反射注入的
各有各的优点,反射式注入的DLL必须是自己特定编译,带自我加载功能的,而我说的这个是不需要对DLL做任何处理的,可以操作任意普通DLL
2018-2-5 22:22
0
雪    币: 36
活跃值: (1021)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
mark
2018-2-5 22:39
0
雪    币: 1046
活跃值: (1261)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
9
hayde 各有各的优点,反射式注入的DLL必须是自己特定编译,带自我加载功能的,而我说的这个是不需要对DLL做任何处理的,可以操作任意普通DLL
如果不是自己的DLL,我有2种思路
1.去编译一份反射注入的DLL,把shellcode扣下来,做成一个区段,补到你要注入的DLL上去。    缺点不支持加壳程序
2.估计就是你想要的内存注入。  这个方法难点是  让目标进程加载起来  注入DLL的导入表依赖库。 
先申请远程内存,用这个地址,在本进程    镜像对齐、重定位、修复导入表这些就不用说把。
重点来了:  你要写一段shellcode在  调用dllmain前面载入这个DLL的依赖库,或者你用远程线程注入的方法把每个依赖库都加载起来(不推荐这种方法)。
2018-2-6 20:20
0
雪    币: 10
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
已删除
2018-2-7 17:57
0
雪    币: 10
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
hayde 其实我就是想知道我现在已经把EXE资源文件中的dll用MemoryModule加载到了内存,我该怎么使用CreateRemoteThread做线程注入
已删除
2018-2-7 17:58
0
雪    币: 10
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
已删除
2018-2-7 17:59
0
雪    币: 10
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
StriveXjun 如果不是自己的DLL,我有2种思路 1.去编译一份反射注入的DLL,把shellcode扣下来,做成一个区段,补到你要注入的DLL上去。 缺点不支持加壳程序 2.估计就是你想要的内存注入。 这个 ...
其实我就是想知道我现在已经把EXE资源文件中的dll用MemoryModule加载到了内存,我该怎么使用CreateRemoteThread做线程注入
2018-2-7 17:59
0
雪    币: 54
活跃值: (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
那就用这个shellcode  吧  ,实在有其它需求就自己改改吧  http://www.mengwuji.net/thread-2825-1-1.html
2018-2-7 18:47
0
雪    币: 285
活跃值: (1090)
能力值: ( LV13,RANK:405 )
在线值:
发帖
回帖
粉丝
15
去找DLL的入口点地址,作为线程函数,MemoryModule这个库的实现,和反射式注入很像,不同的就在于映射到内存,前者是dropper本身,后者是payload本身,所以,你需要做的事找到入口点,或者更改库的代码,你可以看我最新的帖子里对于这个的分析
2018-2-7 19:45
0
雪    币: 2435
活跃值: (630)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
16
这种调用方式,你需要先注入一个loade  dll吧
2018-2-28 11:38
0
雪    币: 10
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
FANTASYING 这种调用方式,你需要先注入一个loade dll吧
不用,资源文件加载dll就可以了
2018-3-14 11:40
0
雪    币: 49
活跃值: (261)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我也想知道,有大牛在吗
2018-4-16 15:51
0
雪    币: 12
活跃值: (388)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
要自己写shellcode loader
最后于 2018-5-6 13:10 被MaMy编辑 ,原因:
2018-5-6 13:10
0
雪    币: 35
活跃值: (612)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
楼主解决了吗  我也想实现中功能
2018-6-15 14:02
0
雪    币: 7246
活跃值: (5073)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
利用系统DLL模块基址都一样的"BUG",把该库里面所有的API调用都改成动态调用,然后抠出来shellcode,远程到目标进程,把动态调用的API地址当做参数传进去即可,为了方便抠shellcode,最好还是把MemoryModule里面的  重定位、修复导入表  等函数合并成一个函数,如果可以,把所有API全部改成NTDLL的API,这样注入CSRSS这进程都没毛病.
2018-6-20 23:44
0
雪    币: 10
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
顶一下!
2018-8-19 16:17
0
雪    币: 1736
活跃值: (847)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
MemoryModule 仅做为当前进程内存加载用的,远程注入,你需要把这个MemoryModule弄成shellcode版本,扔到目标进程执行
2018-8-31 15:18
0
雪    币: 3
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
9楼说的很明白了,另外你还需要注意,在目标进程中开内存,开线程也要猥琐,要不然还是会被日。
2018-8-31 19:25
0
游客
登录 | 注册 方可回帖
返回
//