Skip to main content

BabaDeda Malware: Loader and RAT pack

Executive Summary
#

Following malware-traffic-analysys.net blogs about SmartApeSG ClickFix linked to unidentified RAT, i investigated the infection chain in depth and found overlaps with the BabaDeda malware. The unidentified RAT appears to be the CNCMachineRMS RAT as dubbed by LevelBlue, delivered by the BabaDeda Loader analyzed by Morphisec. I noticed that the loader and the RAT share the same characteristics: the API hashing algorithm, the encrypted stack strings mechanism,a custom Scripting Engine and a distinctive storage configuration tree, which would suggest the same malware toolkit.


BabaDeda Loader
#

Stripped of the specific file names each campaign used, the schema adopted is the same: a ClickFix lure ๐ŸŽฃ tricks a user into launching a legitimately signed executable, which sideloads trojanized DLL’s that in turns retrive and run the xored BabaDeda loader. Morphisec inspects the loader in details, here some points:

  • ๐Ÿงฐ Legitimate host abuse โ€” a signed application is used to launch the malicious code from a trusted process
  • ๐Ÿ”— DLL sideloading chains โ€” multiple DLLs, some spoofed with fake version resources to impersonate real libraries, force-loaded via IAT redirection or static imports rather than suspicious runtime LoadLibrary calls.
  • ๐Ÿ“ฆ Shellcode staged as data, not code โ€” the actual shellcode never appears as a standalone executable; it’s held inside a data file and only deccrypted at runtime.
  • โ†ฉ๏ธ Indirect callback execution โ€” instead of calling the payload directly, the loader passes its address as a callback to a benign Win32 enumeration API (e.g. EnumTimeFormatsEx, EnumSystemCodePagesW). Windows itself invokes the payload from inside a system DLL, so no attacker-authored code ever calls it.
  • ๐Ÿ•ต๏ธ Environment fingerprinting and evasion โ€” computer name, username, system paths, tick count, sandbox/VM checks, geolocale checks (exit on specific countries), keyboard layout checks, security-product enumeration.
  • ๐Ÿ—‚๏ธ External config-driven staging โ€” a custom “storage” file format, tells the loader what to persist, what to run, and where the real payload lives.
  • ๐Ÿ”„ Self-reasserting persistence โ€” Run keys and scheduled tasks are recreated on a timed loop, not just set once, so partial remediation doesn’t stick.
  • ๐ŸŽญ Disguised persistence values โ€” the registry value name / scheduled task name mimics the legitimate host application and is pulled from config, not hardcoded, so it can vary per campaign.

In the campaign reported by malware-traffic-analysis.net on the 2026/07/31 legit @eset SysInspector.exe was abused to sideload a trojanized log2..dll, which in turns retrived obfuscated BabaDeda loader inside Preview.Strings.dat, decrypted it and ran it via EnumTimeFormatsEx from the forged dll SMInfrastructure.dll. BabaDeda Loader, than parsed additional contents from Tracks_Interface.bak (custom storage configuration tree), one of which is the final payload RAT.


BabaDeda RAT
#

LevelBlue profiles final RAT payload , dubbed CNCMachineRMS, in depth. According with their analysis, here a recap of the main capabilities:

  • ๐Ÿ–ฅ๏ธ Interactive shell โ€” remote command execution.
  • ๐Ÿ“ File manager โ€” browse, read, transfer files.
  • ๐Ÿ“ธ Screen capture โ€” including an automatic screenshot on first contact with C2.
  • ๐Ÿ‘ค Local account backdoor โ€” creates local accounts and adds them to privileged groups.
  • ๐Ÿ”„ Seven persistence vectors โ€” registry Run keys (HKCU/HKLM), scheduled tasks, startup shortcuts.
  • โš™๏ธ Twenty typed loader/task opcodes โ€” remote-driven deployment of MSI, EXE, DLL, PowerShell, and BAT payloads, including download-then-execute variants and zipped-archive delivery.
  • ๐Ÿ—„๏ธ Custom Storage config tree similar format embedded in the binary.
  • ๐Ÿ’พ Local file doubles as a full state database.
  • ๐ŸŒ DNS over HTTPS for C2 resolution. Domain lookups go through dns.google, cloudflare-dns.com, and dns.quad9.net instead of the local resolver โ€” so internal DNS logs never see the C2 domain being queried. WinHTTP fallback if the raw TCP gate fails.
  • ๐Ÿงฌ Custom scripting engine drives everything: Persistence, gate setup, VM checks.
  • ๐Ÿงพ Deep host/environment profiling โ€” AD identity (domain, SID, elevation), hardware and firmware serials (motherboard/BIOS โ€” survives a reinstall), installed AV via WMI, open ports with owning PID, installed applications, running processes.

This is the extracted configuration of the CNCMachineRMS, for the mentioned case.

{
  "campaign": "first",
  "lsdb_save_path": "{localappdata}\\\\UTProject\\\\utc.bin",
  "lsdb_save_delay_seconds": 200,
  "is_marketing_notify": false,
  "is_tosend_firstlaunch_screenshot": true,
  "enable_acs_onstart": true,
  "gate_connect_period_seconds": 600,
  "gate_connected_duration_seconds": 90,
  "gate_failed_reconnect_delay_seconds": 60,
  "gate_keep_alive_duration_seconds": 90,
  "gate_list": [
    [
      "notepadreleased.com",
      "443"
    ],
    [
      "89.124.79.98",
      "443"
    ]
  ],
  "is_vmcheck": true,
  "vmdetect_sleep_seconds": 660
}

One of the post-operation activities observed during similar campaigns is the deployment of additional payloads, such as commodity stealers, RATs, RMM software and scripts. In this case, CNCMachineRMS was used to distribute a VBScript designed to steal cryptocurrency and wallet information.

legit Eset sysinpector.exe abused by BabaDeda malware
legit Eset sysinpector.exe abused by BabaDeda malware

The stolen data were uploaded to a Wallet Reports panel hosted at hxxp://87.199.205[.]109/panel/

wallet report panel from vbs script
wallet report panel from vbs script

The Common Characteristics
#

BabaDeda Loader and CNCMachineRMS have at least 4 shared characteristics: API hashing, encrypted stack strings, a peculiar storage config tree, and a custom scripting engine. These similarities lead me to believe that they belong to the same BabaDeda Malware family. For this reason i would suggest using the alternative name BabaDeda RAT for the RAT.

๐Ÿ”ข API hashing
#

APIs are resolved at runtime via hashing with modified FNV-1aalgorithm:

api hashing via modified FNV-1a algorithm
api hashing via modified FNV-1a algorithm

๐Ÿ” Stack strings
#

Strings are constructed on the stack at the point of use via a custom LCG+XOR scheme.

stack strings decryption with LCG+XOR scheme
stack strings decryption with LCG+XOR scheme

๐Ÿ—„๏ธ The storage configuration tree
#

A custom container file format with structural details:

CharacteristicValues
Disguise extensions.bak .db .bin .dat .raw .pak
Entry header size0x58 bytes
Entry table offset0x78
ObfuscationArithmetic formulas gated by a build-specific key

โš™๏ธ A custom scripting engine
#

Use of same small task-based domain-specific language, here a part of the extracted code:

task autorun_to_registry[active=true,async=true]
{
    loop
    {
        delayer::delay_in_seconds(150);
        autorunToRegistry();
    }
}

task block_execution[active=true,async=false]
{
    int $resid = runtime::resource_get_id(@input);
    complex $exe_bytes = runtime::resource_get_bytes($resid);
    previewer::load_re_firmcode($exe_bytes);
    delayer::delay_infinite();
}

Conclusion
#

Taken individually, either report reads as “a BabaDeda campaign.” Taken together, the shared API hashing scheme, the shared encrypted stack-string mechanism, the byte-for-byte identical storage container format, and โ€” most tellingly โ€” a shared custom scripting engine interpreting that container the same way, all point to something more specific: BabaDeda Malware pack with Loader + RAT.

IoCs
#

filesha256
553003097200721800.zip24f9e1a7d122d0340251828fde0a0c45f69967c14f4a1b2dfe606772bdb0b275
SysInspector.exe (legit)548e2a1b4113c16d421df342e4beed5aaa393db29810936788bf2b7f720537a9
log-2..dll2e2788460a1545482e358e9f72367b7db26d84a1e226a745ab4a3c3a9585ac86
SMInfrastructure.dllc092b9e93712da5e78914a508f8349ec4af77fd92a0f50e6e6ebd5c4997cd6ba
Preview.Strings.datb6bb68193efd14ba21f4e08fceae210789a293707c304cad63a9fcd95c18419d
Tracks_Interface.bak25194b5c4cd07a61ffb958823004bf4a53a4251aba6aff09600887632ea53fd0
babadeda loader6d5d2279f323e6482aeda8188c2c97aaf3d03d429ac4869efcec8dce5c2587a6
CNCMachineRMS6d5d2279f323e6482aeda8188c2c97aaf3d03d429ac4869efcec8dce5c2587a6
  • C2 domain: notepadreleased[.]com
  • C2 IP: 89.124.79[.]98
  • C2 port: 443
  • wallet stealer ip: 87.199.205[.]109

sample also shared on malware bazar

addittional links: