迷雾少年 发表于 2018-2-22 13:59:50

另类DLL注入(非CreateRemoteThread)

本帖最后由 迷雾少年 于 2018-2-22 15:57 编辑

很久没法贴子了,趁开学前发个小帖子。。。嗯

我们知道传送的dll注入就是利用
1.LoadLibrary 函数基地址在每个进程空间都是一样
2.在目标进程分配DLL路径存下DLL路径
3.利用CreateRemoteThread函数调用LoadLibrary函数然后把dll路径参数传入

但是这种老掉牙的方法容易检测且太老了
今天早上突然灵光一闪想到一种办法可以不利用 CreateRemoteThread 函数的

具体步骤如下:
1.找到一个目标进程肯定会调用的函数我这里暂时称这个函数为 目标函数(这个太容易了)
2.在目标进程分配一段内存空间
3.构造一段代码 代码内容是 调用LoadLibrary函数 将这段代码写入第二部分配的空间里
4.保存目标函数的前5个字节
5.在我们构造的那段代码的后面写入这5个字节
        现在我们 第 2 步 分配的 空间的内容是   调用LoadLibrary加载我们的DLL -> 目标函数的前5个字节(代码)
6.再在结尾加个jmp跳会到目标函数的下一行代码
       现在我们 第 2 步 分配的 空间的内容是   调用LoadLibrary加载我们的DLL -> 目标函数的前5个字节(代码)->jmp回到目标函数执行正常代码



文字可能很粗糙
那看图吧

我这里以QQ.EXE为测试对象目标函数选为




代码我已经写好了
一步步走
首先是输入目标进程ID和DLL路径 这里我已经把DLL放在QQ的目录里了所以填相对地址就可以了



然后 在目标进程分配一段空间写入dll路径


然后就是 构造好代码写入目标的一段空间里 这里还没修改目标函数 所以不会出现问题


注意我图中红色框标注的就是我们构造的代码
前面的2个push是和后面2个pop对应 为的就是保持堆栈平衡 不然崩溃
而 push
    mov
call
就是调用loadlibrary的

具体是这样的
0DDA0000 - 55                  - push ebp
0DDA0001 - 54                  - push esp
0DDA0002 - 68 0000D90D         - push 0DD90000 { ["1.DLL"] }
0DDA0007 - B8 80599175         - mov eax,KERNEL32.LoadLibraryA { }
0DDA000C - FF D0               - call eax
0DDA000E - 5C                  - pop esp
0DDA000F - 5D                  - pop ebp
0DDA0010 - 8B FF               - mov edi,edi
0DDA0012 - 55                  - push ebp
0DDA0013 - 8B EC               - mov ebp,esp
0DDA0015 - B8 C5F2C073         - mov eax,USER32.IsWindowEnabled+5 { }

0DDA001A - FF E0               - jmp eax

红色的是保持堆栈平衡
绿色的是跳回到目标函数


最后就是修改目标函数头5个字节了





最后就是这样







代码回复见

**** Hidden Message *****

如果你觉得有用,记得点赞哦

迷雾少年 发表于 2018-2-22 14:02:58

本帖最后由 迷雾少年 于 2018-2-22 15:56 编辑

其实。。。。。。。。。。{:10_256:}

alltolove 发表于 2018-2-22 14:05:29

有些网站,只要你一进入他就能修改你的注册表,他是怎么做到的? 望楼主教我{:5_96:}

迷雾少年 发表于 2018-2-22 14:07:01

alltolove 发表于 2018-2-22 14:05
有些网站,只要你一进入他就能修改你的注册表,他是怎么做到的? 望楼主教我

这个应该是利用浏览器的漏洞吧,我不懂这个

迷雾少年 发表于 2018-2-22 15:16:03

{:10_266:}没人顶吗。。。

MSK 发表于 2018-2-22 16:09:32

小弱鸡吓得不敢说话{:10_245:}

大佬~

8386559 发表于 2018-3-1 09:11:45

这个看看再说吧

to.billy 发表于 2018-3-24 22:10:57

{:10_266:}{:10_266:}

可耻烟灰 发表于 2018-4-3 11:43:38

顶你个肺!支持一下楼主!

zlxyaaa 发表于 2019-11-27 16:34:26

好代码,看看,学习中

uglyme 发表于 2021-2-8 09:52:47

我想看看这个

只是一个酱油 发表于 2021-3-1 00:02:41

{:10_247:} 开头的描述有点看不懂!我先收藏下来慢慢看

zhuzhuxia111 发表于 2021-3-11 17:47:59

大佬6666

godsonde 发表于 2021-3-12 08:46:12

从群里看到有人推荐这个方法,赶紧过来看看

zhx0an 发表于 2021-3-16 21:18:42

学习下,谢谢

565266718 发表于 2021-8-22 18:53:30

看看代码。。。

lace520 发表于 2022-3-18 15:12:21

正好需要
页: [1]
查看完整版本: 另类DLL注入(非CreateRemoteThread)