Nimplant : A Cross-Platform Implant Written In Nim

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

CommandSyntaxDescription
catcat [file]Retrieve the output of a file.
cdcd [dir]Change working directory.
cpcp [source] [destination]Copy a file from source to destination. Modal popup.
curlcurl [url] [method] [headers] [body]Execute a single web request.
downloaddownload [path]Download a file off the target system.
exitexitExit a callback.
getenvgetenvGet all of the current environment variables.
jobsjobsList all running jobs.
killkill [pid]Attempt to kill the process specified by [pid].
lsls [path] [recurse]List files and folders in [path] with optional param to list recursively. Defaults to current working directory.
mkdirmkdir [dir]Create a directory.
mvmv [source] [destination]Move a file from source to destination. Modal popup.
pspsList process information.
pwdpwdPrint working directory.
rmrm [path]Remove a file specified by [path]
shellshell [command]Run a shell command which will translate to a process being spawned with command line: cmd.exe /r[command]
unsetenvsetenv [envname] [value]Sets an environment variable to your choosing.
sleepsleep [seconds]Set the callback interval of the agent in seconds.
unsetenvunsetenv [envname]Unset an environment variable.
uploaduploadUpload 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.

R K

Recent Posts

How to Install Docker on Ubuntu (Step-by-Step Guide)

Docker is a powerful open-source containerization platform that allows developers to build, test, and deploy…

8 hours ago

Uninstall Docker on Ubuntu

Docker is one of the most widely used containerization platforms. But there may come a…

8 hours ago

Admin Panel Dorks : A Complete List of Google Dorks

Introduction Google Dorking is a technique where advanced search operators are used to uncover information…

1 day ago

Log Analysis Fundamentals

Introduction In cybersecurity and IT operations, logging fundamentals form the backbone of monitoring, forensics, and…

2 days ago

Networking Devices 101: Understanding Routers, Switches, Hubs, and More

What is Networking? Networking brings together devices like computers, servers, routers, and switches so they…

3 days ago

Sock Puppets in OSINT: How to Build and Use Research Accounts

Introduction In the world of Open Source Intelligence (OSINT), anonymity and operational security (OPSEC) are…

3 days ago