• Stars
    star
    168
  • Rank 225,507 (Top 5 %)
  • Language
    Nim
  • License
    BSD 3-Clause "New...
  • Created about 4 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A cross-platform implant written in Nim

Deprecated

This agent is deprecated as it's only compatible with Mythic 2.1 and the main developer is not able to continue working on it. If somebody wants to make the updates (in the python side of things, not nim code) to the latest Mythic, we can mark it as not deprecated anymore.

Nimplant

Nimplant is a cross-platform (Linux & Windows) implant written in Nim as a fun project to learn about Nim and see what it can bring to the table for red team tool development. Currently, Nimplant lacks extensive evasive tradecraft; however, overtime Nimplant will become much more sophisticated.

Installation

To install Nimplant, you'll need Mythic installed on a remote computer. You can find installation instructions for Mythic at the Mythic project page.

From the Mythic install root, run the command:

./install_agent_from_github.sh https://github.com/MythicAgents/Nimplant

Once installed, restart Mythic to build a new agent.

Highlighted Agent Features

  • Cross-platform
  • Fully asynchronous
  • Can generate agents compiled from both C and C++ source code

Commands Manual Quick Reference

Command Syntax Description
cat cat [file] Retrieve the output of a file.
cd cd [dir] Change working directory.
cp cp [source] [destination] Copy a file from source to destination. Modal popup.
curl curl [url] [method] [headers] [body] Execute a single web request.
download download [path] Download a file off the target system.
exit exit Exit a callback.
getenv getenv Get all of the current environment variables.
jobs jobs List all running jobs.
kill kill [pid] Attempt to kill the process specified by [pid].
ls ls [path] [recurse] List files and folders in [path] with optional param to list recursively. Defaults to current working directory.
mkdir mkdir [dir] Create a directory.
mv mv [source] [destination] Move a file from source to destination. Modal popup.
ps ps List process information.
pwd pwd Print working directory.
rm rm [path] Remove a file specified by [path]
shell shell [command] Run a shell command which will translate to a process being spawned with command line: cmd.exe /r[command]
unsetenv setenv [envname] [value] Sets an environment variable to your choosing.
sleep sleep [seconds] Set the callback interval of the agent in seconds.
unsetenv unsetenv [envname] Unset an environment variable.
upload upload Upload a file to a remote path on the machine. Modal popup.

Supported C2 Profiles

Currently, only one C2 profile is available to use when creating a new Nimplant agent: HTTP.

HTTP Profile

The HTTP profile calls back to the Mythic server over the basic, non-dynamic profile. When selecting options to be stamped into Nimplant at compile time, all options are respected with the exception of those parameters relating to GET requests.


More coming soon!

Roadmap

  • [] Ability to compile to Objective-C for macOS capabilities
  • [] Integration of Donut to allow user to generate shellcode as output
  • [] Communication via WebSockets
  • [] Screenshotting capabilities
  • [] Remote process injection capabilities

More Repositories

1

Apollo

A .NET Framework 4.0 Windows Agent
C#
440
star
2

thanatos

Mythic C2 agent targeting Linux and Windows hosts written in Rust
Rust
310
star
3

Athena

C
172
star
4

Medusa

Medusa is a cross-platform C2 agent compatible with Python 2.7 and 3.8, compatible with Mythic
Python
158
star
5

poseidon

Poseidon is a Golang agent targeting Linux and macOS
Go
110
star
6

hermes

Swift 5 macOS agent
Swift
98
star
7

merlin

Cross-platform post-exploitation HTTP Command & Control agent written in golang
Go
84
star
8

venus

A Visual Studio Code Extension agent for Mythic C2
Python
63
star
9

apfell

JavaScript for Automation (JXA) macOS agent
Python
60
star
10

orthrus

Uses Apple's MDM protocol to backdoor a device with a malicious profile.
Python
49
star
11

freyja

Freyja is a Golang, Purple Team agent that compiles into Windows, Linux and macOS x64 executables.
Go
45
star
12

typhon

Payload designed for targeting Jamf enrolled devices.
Python
35
star
13

nemesis

Nemesis agent for Mythic
Python
23
star
14

sliver

Sliver agents for Mythic
Python
22
star
15

hercules

Mythic Developer Series: Workshop Golang Agent
Go
21
star
16

arachne

Webshell agent in aspx and php
Python
16
star
17

leviathan

JavaScript
15
star
18

scarecrow_wrapper

Go
14
star
19

atlas

C#
13
star
20

bloodhound

Bloodhound agent for Mythic
Python
13
star
21

pickle_wrapper

Python
8
star
22

ghostwriter

Ghostwriter agent for Mythic
Python
8
star
23

zippy

A 'trainer' agent which is great for showing customers a nice fake 'ransom' screen. Requires target machine to have head - since support for OpenGL 2.1 is currently required by Godot.
GDScript
7
star
24

service_wrapper

.NET Service EXE wrapper for shellcode payloads
Python
5
star
25

.github

3
star