NimWhispers - direct system calls


What is NimWhispers?

NimWhispers is an implementation of SysWhispers2 in Nim.

Monitoring and detection

Security products such as EDR software are designed to detect potentially malicious activity running on the host. They do that by monitoring the actions performed by the user, and identifying whether those actions are potentially malicious. In order to monitor the user activities, EDR software hooks well known user-land API functions provided by the operating system.


NimWhispers / SysWhispers are tools designed to help evasion by executing direct system calls instead of calling the user API functions provided by the Operating System.

Implant development

Threat actors pose different levels of sophistication, from script-kiddies using detectable malware to state-sponsored attackers using advanced techniques to bypass the security controls in place. Mature organisations should attempt to protect themselves from every type of threat actor, and NimWhispers helps to enhance the detection capabilities of mature blue teams.

Why use Nim for implants?

I got inspired to use Nim when I noticed the GitHub repository of byt3bl33d3r. Here are a few reasons why Nim is an excellent language for implant development:

For all of the above reasons, I think it is exciting to use Nim for implant development.

Why create Nimwhispers?

A repository already exists that creates syscalls using Nim: @ajpc500. Unfortunately, since it's done inline, it is largely outdated. Also a newer version of SysWhispers aptly named SysWhispersv2 was released in the meantime, which is based on the following:

There was no public repository using the "sort by syscall" technique . Luckily, since I really enjoy creating implants with Nim, this seemed like an obvious gap to fill.

The demo

The tool works similarly to SysWhispersv2 by keeping the same command line arguments.

NimWhispers Demo

NimWhispers Demo

Run demo

The tool

You can download this new Nim tool at: SECFORCE's Github repository

You may also be interested in...

March 25, 2014

Sparta – a Network Infrastructure Penetration Testing Tool

SPARTA is a python GUI application which simplifies network infrastructure penetration testing by aiding the penetration tester in the scanning and enumeration phase.

See more
AWS Cognito
Jan. 19, 2023

AWS Cognito pitfalls: Default settings attackers love (and you should know about)

Diving into some common, but sometimes overlooked, AWS Cognito misconfigurations.

See more