渗透测试之地基免杀篇:MSF-loader底层分析免杀过360
字数 1425 2025-08-15 21:33:30

MSF-Loader底层分析与免杀技术详解

一、前言与背景

Metasploit Framework (MSF) 是一款开源安全漏洞检测工具,广泛应用于渗透测试领域。Metasploit-Loader是使用C语言编写的stager客户端,用于在渗透测试中绕过杀毒软件检测。

本文详细分析MSF-Loader的底层实现,并提供逐步修改源码实现免杀的技术方法,特别是针对360、360杀毒、火绒和deferencer等主流杀软的绕过技术。

二、环境准备

攻击者环境

  • 系统: Kali Linux 2020.4
  • IP: 192.168.175.145
  • 工具:
    • Metasploit Framework
    • mingw-w64编译器
    • Dev-C++ 5.11 (Windows环境)

目标环境

  • 系统: Windows 10
  • 防护软件: 360安全卫士、360杀毒、火绒、deferencer

三、基础源码获取与初步修改

1. 获取源码

git clone https://github.com/rsmudge/metasploit-loader.git

2. 初步源码修改

修改main.c文件:

  1. 删除原始Socket握手包代码
  2. 将连接信息硬编码到argv[1]中
  3. 调整头文件顺序:
#include <winsock2.h>
#include <windows.h>

3. 安装编译器

在Kali上安装mingw-w64:

sudo apt-get install mingw-w64

4. 初次编译

i686-w64-mingw32-gcc main.c -o dayu.exe -lws2_32

5. 测试结果

  • 全球免杀率:25/69
  • 仍被360和火绒检测

四、中级源码免杀技术

1. 使用Dev-C++环境

  1. 下载并安装Dev-C++ 5.11
  2. 创建新的C项目,选择64-bit Console Application
  3. 导入修改后的源码

2. 核心代码分析

核心功能区域:

// 建立socket握手包
// 前四个字节分配到RWX缓冲区
// 源代码偏移五个单位
// socket值复制到缓冲区
// 字节读入缓冲区
// 执行DLL Main

3. 关键修改点

  1. size + 5改为size + 10
  2. buffer[0] = 0xBF;改为buffer[0] = 0x48;
  3. 添加buffer[1] = 0xBF;
  4. buffer + 1, &my_socket, 4改为buffer + 2, &my_socket, 8
  5. buffer + 5改为buffer + 10

4. Dev-C++配置

  1. 工具 -> 编辑器选项
  2. 选择TDM-GCC 4.9.2 64-bit Release
  3. 在连接器命令行添加-lws2_32

5. 测试结果

  • 全球免杀率:27/71
  • 已过火绒,但仍被360和360杀毒检测

五、终极免杀技术

1. 综合修改策略

  1. 删除所有作者注释信息
  2. 结合初步和中级的修改方法
  3. 进一步扩大缓冲区:
    • 偏移量从5改为15
    • 调整buffer值继续扩大

2. 关键修改点

  1. 完全删除文件顶部作者注释
  2. 修改socket为指定IP+端口硬编码
  3. 缓冲区偏移量设为15
  4. 调整buffer相关参数

3. 最终效果

  • 成功绕过360、360杀毒、火绒、deferencer
  • 稳定上线且长时间不被检测

六、技术总结

  1. 源码修改要点

    • 删除特征明显的注释
    • 修改缓冲区结构和偏移量
    • 调整socket连接方式
  2. 免杀思路

    • 通过改变代码结构破坏杀软的特征匹配
    • 增大缓冲区改变内存操作模式
    • 消除所有可能被标记的特征字符串
  3. 持续改进方向

    • 动态改变缓冲区大小
    • 添加代码混淆
    • 使用更隐蔽的连接方式

七、防御建议

对于防御方:

  1. 不要仅依赖杀毒软件的静态检测
  2. 部署行为分析工具检测异常网络连接
  3. 监控可疑的进程内存操作
  4. 保持安全软件更新至最新版本

八、法律与道德声明

本文所有技术仅用于教育目的和安全研究。未经授权对他人系统进行渗透测试是违法行为。读者应遵守所有适用法律和道德准则。

MSF-Loader底层分析与免杀技术详解 一、前言与背景 Metasploit Framework (MSF) 是一款开源安全漏洞检测工具,广泛应用于渗透测试领域。Metasploit-Loader是使用C语言编写的stager客户端,用于在渗透测试中绕过杀毒软件检测。 本文详细分析MSF-Loader的底层实现,并提供逐步修改源码实现免杀的技术方法,特别是针对360、360杀毒、火绒和deferencer等主流杀软的绕过技术。 二、环境准备 攻击者环境 系统 : Kali Linux 2020.4 IP : 192.168.175.145 工具 : Metasploit Framework mingw-w64编译器 Dev-C++ 5.11 (Windows环境) 目标环境 系统 : Windows 10 防护软件 : 360安全卫士、360杀毒、火绒、deferencer 三、基础源码获取与初步修改 1. 获取源码 2. 初步源码修改 修改 main.c 文件: 删除原始Socket握手包代码 将连接信息硬编码到argv[ 1 ]中 调整头文件顺序: 3. 安装编译器 在Kali上安装mingw-w64: 4. 初次编译 5. 测试结果 全球免杀率:25/69 仍被360和火绒检测 四、中级源码免杀技术 1. 使用Dev-C++环境 下载并安装Dev-C++ 5.11 创建新的C项目,选择64-bit Console Application 导入修改后的源码 2. 核心代码分析 核心功能区域: 3. 关键修改点 将 size + 5 改为 size + 10 buffer[0] = 0xBF; 改为 buffer[0] = 0x48; 添加 buffer[1] = 0xBF; buffer + 1, &my_socket, 4 改为 buffer + 2, &my_socket, 8 buffer + 5 改为 buffer + 10 4. Dev-C++配置 工具 -> 编辑器选项 选择TDM-GCC 4.9.2 64-bit Release 在连接器命令行添加 -lws2_32 5. 测试结果 全球免杀率:27/71 已过火绒,但仍被360和360杀毒检测 五、终极免杀技术 1. 综合修改策略 删除所有作者注释信息 结合初步和中级的修改方法 进一步扩大缓冲区: 偏移量从5改为15 调整buffer值继续扩大 2. 关键修改点 完全删除文件顶部作者注释 修改socket为指定IP+端口硬编码 缓冲区偏移量设为15 调整buffer相关参数 3. 最终效果 成功绕过360、360杀毒、火绒、deferencer 稳定上线且长时间不被检测 六、技术总结 源码修改要点 : 删除特征明显的注释 修改缓冲区结构和偏移量 调整socket连接方式 免杀思路 : 通过改变代码结构破坏杀软的特征匹配 增大缓冲区改变内存操作模式 消除所有可能被标记的特征字符串 持续改进方向 : 动态改变缓冲区大小 添加代码混淆 使用更隐蔽的连接方式 七、防御建议 对于防御方: 不要仅依赖杀毒软件的静态检测 部署行为分析工具检测异常网络连接 监控可疑的进程内存操作 保持安全软件更新至最新版本 八、法律与道德声明 本文所有技术仅用于教育目的和安全研究。未经授权对他人系统进行渗透测试是违法行为。读者应遵守所有适用法律和道德准则。