0x00 Nim介绍

本次利用到的是Nim语言

  1. Nim 是一门开源的编程语言
  2. Nim 的独到之处在于它可以编译成其他编程语言代码(主要是 C 语言和 JavaScript)
  3. 将 Nim 与 C 语言或 JavaScript 代码集成在一起可以获得最大的价值
  4. Nim 可以生成高质量的 C 语言代码,避免出现 C 语言的典型错误(如内存泄露和数组指针错误)

    0x01 下载Nim

    https://nim-lang.org/install.html

解压之后把bin目录添加到path
image.png

0x02 安装C、C++编译器

Nim编译器需要C编译器才能编译软件

https://github.com/GorvGoyl/MinGW64/releases

把下载的文件解压到nim下的dist文件夹,把MinGW64下的bin添加到path
image.png

0x03 编译

下载NimShellCodeLoader

https://github.com/aeverj/NimShellCodeLoader/releases

下载解压后进入 NimShellCodeLoader_Winx64\NimShellCodeLoader\encryption 目录,利用下面 的代码进行编译

  1. nim c -d:release --opt:size Tdea.nim
  2. nim c -d:release --opt:size Caesar.nim

image.png

0x04 免杀

利用 Nim+NimShellCodeLoader 可以有10多种免杀方式绕过全网杀软,这里演示其中一种 cobaltstrike生成 raw 格式 64位 的 payload.bin 文件 打开 codeLoader.exe 图形化界面,将 payload.bin 直接拖进来 这里选择的是直接加载 TDEA — Direct Load 选好加载方式和加密方式,点击 generate 即可导出
image.png
输出生成的可执行文件在 NimShellCodeLoader_Winx64\NimShellCodeLoader\bin 目录

0x05 结果

时间:2021年10月28日,过火绒、360静态等,过不了360的云查杀,没啥用

0x06 参考

https://mp.weixin.qq.com/s/zXlxtrVc5iBNL9n1iWGDtQ

0x07 思考

这玩意由于Nim比较小众才不会被杀,现在已经被360杀了。生成的文件肯定被加入模糊hash特征了。要免杀得话估计还得修改源码。