Nimcrypt2 is yet another PE packer/loader designed to bypass AV/EDR. It is an improvement on my original Nimcrypt project, with the main improvements being the use of direct syscalls and the ability to load regular PE files as well as raw shellcode.
Before going any further, I must acknowledge those who did the VAST majority of work and research that this project depends on. Firstly, I must thank @byt3bl33d3r for his Offensive Nim repo, and @ShitSecure for all of the code snippets he’s publicly released. That is what the original version of this tool was created from, and the current version is no different. Particularly, the new PE loading functionality used in this tool is just an implementation of ShitSecure’s recently released Nim-RunPE code. I highly encourage sponsoring him for access to his own Nim PE Packer, which is no doubt a much better and more featureful version of this.
Additionally, I would like to thank @ajpc500 for his NimlineWhispers2 project that this tool uses for direct syscalls. I cannot stress enough how this project is simply an amalgamation of the public work of those previously mentioned, so all credit must go to them.
<div class="snippet-clipboard-content position-relative overflow-auto" data-snippet-clipboard-copy-content=" ___ .-' `'. / \ | ; | | ___.–, _.._ |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 ] [-p ] [-n] [-u] [-s] [-v] nimcrypt (-h | –help) Options: -h –help Show this screen. –version Show version. -f –file filename File to load -t –type filetype Type of file (csharp, raw, or pe) -p –process process Name of process for shellcode injection -o –output filename Filename for compiled exe -u –unhook Unhook ntdll.dll -v –verbose Enable verbose messages during execution -n –no-randomization Disable syscall name randomization -s –no-sandbox Disable sandbox checks”>
___
.-' `'.
/ \
| ;
| | ___.--,
_.._ |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] [-v]
nimcrypt (-h | --help)
Options:
-h --help Show this screen.
--version Show version.
-f --file filename File to load
-t --type filetype Type of file (csharp, raw, or pe)
-p --process process Name of process for shellcode injection
-o --output filename Filename for compiled exe
-u --unhook Unhook ntdll.dll
-v --verbose Enable verbose messages during execution< br/> -n --no-randomization Disable syscall name randomization
-s --no-sandbox Disable sandbox checks