NimWhispers - direct system calls

Nimwhispers_Blog_Post_image

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.

Evasion

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...

imagensecforcepost.png
Nov. 3, 2008

Black box penetration testing vs white box penetration testing

Differences between black box and white box penetration tests

See more
Server-Side-JavaScript-Injection.png
June 2, 2020

Server Side JavaScript Injection

With the appearance of NodeJS, JavaScript gained very significant popularity as a server-side, back-end powering language. This turned some client slide data injection vulnerabilities into server side vulnerabilities such as XSS into Server Side JavaScript Injection.

See more