freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Nimcrypt2:一款功能强大的PE封装器加载器
2022-04-11 23:28:06
所属地 广西

关于Nimcrypt2

Nimcrypt2一款功能强大的PE封装器和加载器,该工具基于Nim开发,除了PE之外,该工具还支持对.NET、和原始Shellcode进行封装和加载。该工具能够通过尝试绕过AV/EDR来检测系统的安全性能。

该项目的前身为Nimcrypt,而Nimcrypt2则基于Nimcrypt增加了直接系统调用支持,并允许加载常规PE文件以及原始Shellcode。

功能介绍

1、NtQueueApcThread Shellcode执行

2、进程PID欺骗

3、第三方DLL屏蔽

4、使用系统调用(NimlineWhispers2 & GetSyscallStub)

5、系统调用名称随机化

6、支持加载.NET和常规PE文件

7、支持使用动态密钥生成技术的AES加密

8、支持LLVM模糊处理工具

9、字符串加密

10、沙箱绕过

已测试的操作系统平台

Windows 11 (10.0.22000)

Windows 10 21H2 (10.0.19044)

Windows 10 21H1 (10.0.19043)

Windows 10 20H2 (10.0.19042)

Windows 10 19H2 (10.0.18363)

Windows Server 2019 (10.0.17763)

工具安装&依赖

当前版本的Nimcrypt2仅支持在安装了Nim的Linux操作系统上运行,在安装Nim之前,我们必须确保已经通过包管理器安装了下列软件包:

sudo apt install gcc mingw-w64 xz-utils git

接下来,我们可以使用choosenim来安装Nim:

curl https://nim-lang.org/choosenim/init.sh -sSf | sh

echo "export PATH=$HOME/.nimble/bin:$PATH" >> ~/.bashrc

export PATH=$HOME/.nimble/bin:$PATH

Nimcrypt2还有一些其他的依赖组件,我们可以通过Nimble来安装:

nimble install winim nimcrypto docopt ptr_math strenc

安装完所有的工具依赖组件之后,我们就可以使用下列命令将Nimcrypt2的源码克隆至本地:

git clone https://github.com/icyguider/Nimcrypt2.git

接下来,我们就要使用下列命令来编译Nimcrypt2了:

nim c -d=release --cc:gcc --embedsrc=on --hints=on --app=console --cpu=amd64 --out=nimcrypt nimcrypt.nim

可选配置

如需使用Obfuscator-LLVM选项,我们必须在系统中安装Obfuscator-LLVM和wclang。下列步骤可以指引你在Kali Linux系统上完成安装与配置:

1、将Obfuscator-LLVM克隆至本地,然后完成代码构建;

2、编译完成后,备份现有版本的clang,然后将新的Obfuscator-LLVM版的clang拷贝到“/usr/bin/”;

3、安装wclang,并将其代码路径添加至PATH中;

4、备份现有clang库文件,将新构建的Obfuscator-LLVM库拷贝到“/usr/lib/clang/OLD_VERSION/”;

除此之外,我们还需要将下列文件内容添加到你的nim.cfg文件中,并将nim指向你的wclang代码:

amd64.windows.clang.exe = "x86_64-w64-mingw32-clang"

amd64.windows.clang.linkerexe = "x86_64-w64-mingw32-clang"

amd64.windows.clang.cpp.exe = "x86_64-w64-mingw32-clang++"

amd64.windows.clang.cpp.linkerexe = "x86_64-w64-mingw32-clang++"

此时,我们就可以运行下列命令来查看输出信息了:

x86_64-w64-mingw32-clang -v

工具帮助信息

___                                           

                   .-'   `'.                                        

                  /         \                                       

                  |         ;                                       

                  |         |           ___.--,                     

         _.._     |0) ~ (0) |    _.---'`__.-( (_.                   

  __.--'`_.. '.__.\    '--. \_.-' ,.--'`     `""`                   

 ( ,.--'`   ',__ /./;   ;, '.__.'`    __                            

 _`) )  .---.__.' / |   |\   \__..--""  ""'--.,_                    

`---' .'.''-._.-'`_./  /\ '.  \ _.-~~~````~~~-._`-.__.'             

      | |  .' _.-' |  |  \  \  '.               `~---`              

       \ \/ .'     \  \   '. '-._)                                  

        \/ /        \  \    `=.__`~-.   Nimcrypt v2               

   jgs  / /\         `) )    / / `"".`\                             

  , _.-'.'\ \        / /    ( (     / /  3-in-1 C#, PE, & Raw Shellcode Loader

   `--~`   ) )    .-'.'      '.'.  | (                              

          (/`    ( (`          ) )  '-;                             

           `      '-;         (-'                                   

 

Nimcrypt v 2.0

 

Usage:

  nimcrypt -f file_to_load -t csharp/raw/pe [-o <output>] [-p <process>] [-n] [-u] [-s] [-e] [-g] [-l] [-v]

  nimcrypt (-h | --help)

 

Options:

  -h --help                显示帮助信息

  --version                现实版本信息

  -f --file filename          要加载的文件

  -t --type filetype          文件类型(csharp, raw, 或pe)

  -p --process process     Shellcode要注入的进程名称

  -o --output filename      编译后的exe文件名

  -u --unhook              解除ntdll.dll钩子

  -v --verbose             执行过程中启用Verbose消息

  -e --encrypt-strings       使用strenc模块加密字符串

  -g --get-syscallstub       使用GetSyscallStub代替NimlineWhispers2

  -l --llvm-obfuscator       使用Obfuscator-LLVM来编译代码

  -n --no-randomization    启用系统调用名称随机化

  -s --no-sandbox         禁用沙盒检测

项目地址

Nimcrypt2:GitHub传送门

参考资料

https://github.com/icyguider/nimcrypt

https://github.com/byt3bl33d3r/OffensiveNim

https://github.com/S3cur3Th1sSh1t/Nim-RunPE

https://github.com/S3cur3Th1sSh1t/NimGetSyscallStub

https://twitter.com/ShitSecure/status/1482428360500383755

https://github.com/ajpc500/NimlineWhispers2

https://github.com/dom*96/choosenim

# 系统安全 # 封装工具 # Shellcode封装 # 代码加载
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录