文章总结: 本文档介绍了NimShellCodeLoader,一款入选KCon兵器谱的基于Nim语言的WindowsShellcode免杀加载器。项目支持23种加载技术及AES等加密方案,利用编译时加密对抗检测。具备模块化架构与自定义图标功能,适用于合法渗透测试与红队演练,实战与学习价值高。 综合评分: 85 文章分类: 免杀,渗透测试,红队,安全工具,二进制安全
NimShellCodeLoader:基于Nim的Windows Shellcode免杀加载器
原创
aeverj aeverj
红队工坊
2026年2月11日 12:09 北京
入选2022年KCon兵器谱 ⚠️ 仅限用于技术研究和获得正式授权的测试活动
📖 项目简介
在网络安全攻防演练和渗透测试中,如何绕过杀毒软件的检测一直是一个技术难题。传统的shellcode加载器往往容易被安全软件识别和拦截,而NimShellCodeLoader正是为了解决这一问题而诞生的。
NimShellCodeLoader是一款使用Nim语言编写的Windows平台shellcode免杀加载器,能够快速生成免杀可执行文件。它凭借Nim语言的独特优势和精心设计的架构,在2022年成功入选KCon兵器谱,成为安全研究人员手中的利器。
✨ 核心特点
🎯 1. 丰富的加载方式(23种)
项目内置了23种不同的shellcode加载技术,涵盖了从基础到高级的多种实现方式:
传统注入技术:
- • 🔹 Direct Load(直接加载)
- • 🔹 APC-Inject Load(APC注入)
- • 🔹 Early Bird APC-Inject Load(早鸟APC注入)
- • 🔹 Thread Hijack-Inject Load(线程劫持注入)
- • 🔹 OEP Hijack-Inject Load(入口点劫持注入)
回调函数执行技术(ACE – Alternative Code Execution):
- • 🔹 CertEnumSystemStore-ACE
- • 🔹 CopyFile2-ACE
- • 🔹 CreateTimerQueueTimer-ACE
- • 🔹 EnumChildWindows-ACE
- • 🔹 EnumDesktopWindows-ACE
- • 🔹 EnumFontFamiliesExW-ACE
- • 🔹 … 等多种枚举回调方式
其他高级技术:
- • 🔹 Fiber Load(纤程加载)
- • 🔹 CreateThreadPoolWait Load(线程池等待)
这些加载方式为安全研究人员提供了丰富的选择,可以根据不同的测试场景选择最合适的技术。
🔐 2. 多种加密方案
为了增强免杀效果,项目支持三种加密技术:
- • 凯撒密码(Caesar):经典的替换加密算法
- • AES-256-CTR加密:工业级对称加密标准
- • 异或加密(XOR):轻量级快速加密方案
每次生成文件时,密钥都是随机生成的,确保每次编译出的可执行文件都拥有不同的hash值,有效对抗基于特征码的检测。
🎨 3. 图标自定义
支持为生成的可执行文件自定义图标,让生成的文件看起来更加”正常”,降低被怀疑的可能性。
🔧 4. 高度可扩展
项目采用模块化设计,开发者可以轻松添加自己的加载方式:
- 1. 在
loaders/目录下创建新的Nim文件 - 2. 引用
public模块获取解密后的shellcode - 3. 在
Compiler.ini中添加编译配置
这种设计使得项目能够持续进化,适应不断变化的安全环境。
🏗️ 项目架构
项目采用清晰的目录结构,便于理解和维护:
NimShellCodeLoader/
├── bin/ # 存放生成的可执行文件
├── loaders/ # 23种shellcode加载器实现
├── encryption/ # 加密算法实现(AES、Caesar、XOR)
├── core/ # 核心公共模块(public.nim)
├── gui/ # C#图形界面程序
├── config/ # 配置文件(Compiler.ini)
└── pic/ # 文档图片资源
核心模块解析
core/public.nim – 项目的心脏
- • 负责在编译时调用加密脚本
- • 将加密后的shellcode嵌入到可执行文件中
- • 在运行时自动解密并提供给加载器使用
- • 处理图标嵌入等功能
loaders/ – 加载技术库
- • 每个文件实现一种独特的shellcode执行技术
- • 统一引用
public模块获取解密后的payload - • 代码简洁,易于学习和扩展
encryption/ – 加密引擎
- • 独立的加密脚本,编译时执行
- • 生成随机密钥,确保每次编译结果不同
- • 支持多种加密算法,灵活切换
🚀 使用方法
环境准备
- 1. 安装Nim编译器
- • 下载Nim安装包和MinGW64编译器
- • 配置环境变量
- 2. 安装依赖库
nimble install nimcrypto
nimble install winim
快速上手
使用非常简单,只需三步:
- 1. 打开生成器 – 运行
codeLoader.exe - 2. 拖入文件 – 将shellcode文件和图标文件拖入窗口
- 3. 选择生成 – 选择加载方式和加密方式,点击生成
生成的可执行文件会自动保存到bin/目录中。
🎓 技术亮点
为什么选择Nim语言?
- 1. 编译为原生代码:性能接近C/C++,无需运行时环境
- 2. 语法简洁优雅:比C++更易读,比Python更高效
- 3. 静态编译:生成的文件体积小,依赖少
- 4. 较低的检出率:相比传统的C/C++,Nim编写的恶意代码更容易绕过检测
编译时加密的优势
项目采用编译时加密策略:
- • 加密过程在编译阶段完成
- • 每次编译使用不同的随机密钥
- • 加密后的数据直接嵌入可执行文件
- • 运行时才进行解密,内存中才出现明文shellcode
这种设计大大增强了免杀效果,同时保持了代码的简洁性。
📊 项目更新历程
- • 2026年2月11日:项目重构,增加AES和XOR加密方式
- • 2023年12月28日:图标自定义功能上线
- • 2023年8月26日:支持Nim v2.0版本,去除base64编码,减小文件体积
- • 2022年6月20日:增加2种新的shellcode加载方式
- • 2022年2月3日:大更新,增加14种加载方式
- • 2021年1月23日:项目初始版本,包含3种加载方式
项目持续维护更新,不断适应新的安全环境。
🎯 应用场景
合法用途
- 1. 渗透测试:在获得授权的情况下,测试目标系统的安全防护能力
- 2. 红队演练:模拟真实攻击场景,检验蓝队的防御和响应能力
- 3. 安全研究:研究杀毒软件的检测机制,提升防御技术
- 4. 教学培训:作为网络安全课程的实践案例
🔮 未来规划
项目的TODO列表显示了未来的发展方向:
- • ✅ 图标自定义功能(已完成)
- • ✅ 增加更多加载方式(已完成)
- • ✅ 增加加密方式(已完成)
- • ⏳ 增加反沙箱等功能(计划中)
项目将继续演进,添加更多实用功能。
💡 学习价值
对于网络安全学习者来说,这个项目具有很高的学习价值:
- 1. Nim语言实践:学习如何使用Nim进行系统级编程
- 2. Windows API应用:深入理解Windows底层API的使用
- 3. 加密技术:掌握多种加密算法的实现和应用
- 4. 免杀技术:了解免杀的基本原理和实现方法
- 5. 模块化设计:学习如何设计可扩展的安全工具
关注公众号
回复关键字nimshell获取项目地址
🌟 总结
NimShellCodeLoader是一个设计精良、功能强大的安全研究工具。它不仅提供了23种不同的shellcode加载技术,还支持多种加密方案和高度的可扩展性。无论是用于渗透测试、红队演练,还是安全研究和教学,都是一个值得信赖的选择。
项目的成功入选KCon兵器谱,证明了其在安全社区中的认可度。如果你是一名安全研究人员或渗透测试工程师,这个工具绝对值得你深入研究和使用。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:红队工坊 aeverj aeverj《NimShellCodeLoader:基于Nim的Windows Shellcode免杀加载器》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论