SOC Prime Bias: Critical

16 Jan 2026 16:25

How real software downloads can hide remote backdoors

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
How real software downloads can hide remote backdoors
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Summary

Attackers are operating a lookalike RustDesk download site (rustdesk.work) that delivers a trojanized installer: a legitimate RustDesk setup bundled with a malicious loader dubbed Winos4.0. When executed, the dropper plants logger.exe and Libserver.exe, then loads the backdoor in memory to reduce on-disk artifacts. The implant establishes command-and-control to 207.56.13.76 over TCP/5666, enabling persistent remote access. This activity is driven by social engineering and brand impersonation, not a RustDesk software vulnerability.

Investigation

Analysts obtained the malicious binary rustdesk-1.4.4-x86_64.exe and observed it writing a legitimate RustDesk installer plus a weaponized logger.exe to disk. The logger.exe component spawns Libserver.exe, which then stages WinosStager DLLs and a large in-memory payload without persisting those modules to disk. Network telemetry confirmed outbound communications to 207.56.13.76:5666, assessed as the campaign’s C2 channel. Investigators extracted key IOCs, including the spoofed domain (rustdesk.work), dropped filenames, and associated file hashes.

Mitigation

Enforce verified software acquisition practices and download RustDesk only from the official source (rustdesk.com). Apply application allowlisting (or equivalent controls) to prevent execution of untrusted binaries, particularly “installer” files originating from user-writable directories. Monitor and restrict outbound traffic to TCP/5666, and add detections/block rules for connections to rustdesk.work. Block 207.56.13.76 and the malicious domain across DNS, proxy, and firewall controls.

Response

Create detections for execution of logger.exe and Libserver.exe, and alert on any network connections to 207.56.13.76:5666. Proactively hunt across endpoints for the trojanized installer (and any available SHA-256 indicators) and validate whether RustDesk was installed from non-approved sources. If compromise is confirmed, isolate affected hosts, terminate the malicious process tree, remove related artifacts, and rotate potentially exposed credentials (especially any accounts used during installation or subsequent remote sessions).

"graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ffdd99 classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Nodes action_initial_access["<b>Action</b> – Initial Access<br/><b>Technique</b>: T1204 User Execution"] class action_initial_access action tech_user_execution["<b>Technique</b> – T1204 User Execution<br/>Victim runs malicious content"] class tech_user_execution technique tech_malicious_link["<b>Technique</b> – T1204.001 Malicious Link<br/>Link leads to download of malicious installer"] class tech_malicious_link technique tech_trojanized_installer["<b>Technique</b> – T1204.002 Trojanized Installer<br/>Installer appears legitimate but contains payload"] class tech_trojanized_installer technique malware_logger_exe["<b>Malware</b> – logger.exe<br/>Captures input and performs privilege actions"] class malware_logger_exe malware tech_process_masquerade["<b>Technique</b> – T1036.011 Masquerading<br/>Process name is spoofed to appear legitimate"] class tech_process_masquerade technique tech_argument_spoof["<b>Technique</b> – T1564.010 Spoof Arguments<br/>Command line arguments are falsified"] class tech_argument_spoof technique tech_tls_injection["<b>Technique</b> – T1055.005 Thread Local Storage Injection<br/>Code injected via TLS"] class tech_tls_injection technique tech_appcert_dll["<b>Technique</b> – T1546.009 AppCert DLL Execution<br/>Uses AppCert DLLs for autou2011execution"] class tech_appcert_dll technique tech_permission_hijack["<b>Technique</b> – T1574.005 Hijack Execution Flow<br/>Exploits installer file permission weakness"] class tech_permission_hijack technique action_defense_evasion["<b>Action</b> – Defense Evasion<br/>Multiple techniques to avoid detection"] class action_defense_evasion action action_persistence["<b>Action</b> – Persistence<br/>Establishes longu2011term foothold"] class action_persistence action tech_registry_rc["<b>Technique</b> – T1037.004 Registry RC Scripts<br/>Runs scripts via registry"] class tech_registry_rc technique tech_active_setup["<b>Technique</b> – T1547.014 Active Setup<br/>Autostart via Active Setup"] class tech_active_setup technique tech_preos_boot["<b>Technique</b> – T1542 Preu2011OS Boot<br/>Hooks into boot process"] class tech_preos_boot technique action_credential_access["<b>Action</b> – Credential Access<br/>Steals user credentials"] class action_credential_access action tech_keylogging["<b>Technique</b> – T1056.001 Keylogging<br/>Records keystrokes"] class tech_keylogging technique tech_credential_dump["<b>Technique</b> – T1003 OS Credential Dumping<br/>Extracts password hashes"] class tech_credential_dump technique action_collection["<b>Action</b> – Collection<br/>Gathering user data"] class action_collection action tech_screen_capture["<b>Technique</b> – T1113 Screen Capture<br/>Takes screenshots"] class tech_screen_capture technique tech_video_capture["<b>Technique</b> – T1125 Video Capture<br/>Records video"] class tech_video_capture technique tech_audio_capture["<b>Technique</b> – T1123 Audio Capture<br/>Records audio"] class tech_audio_capture technique action_c2["<b>Action</b> – Command and Control<br/>Communicates with remote server"] class action_c2 action tech_nonstandard_port["<b>Technique</b> – T1571 Nonu2011Standard Port<br/>Uses TCP port 5666"] class tech_nonstandard_port technique tech_ftp_style["<b>Technique</b> – T1071.002 FTPu2011style Protocol<br/>Encodes traffic like FTP"] class tech_ftp_style technique tech_port_knocking["<b>Technique</b> – T1205.001 Port Knocking<br/>Signals C2 via port sequence"] class tech_port_knocking technique malware_memory_resident["<b>Malware</b> – Memory Resident Payload<br/>Loads directly into RAM"] class malware_memory_resident malware tech_registry_hide["<b>Technique</b> – Hidden Config in Registry<br/>Stores settings in registry"] class tech_registry_hide technique %% Connections action_initial_access –>|uses| tech_user_execution tech_user_execution –>|includes| tech_malicious_link tech_user_execution –>|includes| tech_trojanized_installer tech_malicious_link –>|delivers| malware_logger_exe tech_trojanized_installer –>|bundles| malware_logger_exe malware_logger_exe –>|performs| tech_process_masquerade malware_logger_exe –>|performs| tech_argument_spoof malware_logger_exe –>|injects via| tech_tls_injection malware_logger_exe –>|uses| tech_appcert_dll malware_logger_exe –>|exploits| tech_permission_hijack malware_logger_exe –>|enables| action_defense_evasion action_defense_evasion –>|establishes| action_persistence action_persistence –>|uses| tech_registry_rc action_persistence –>|uses| tech_active_setup action_persistence –>|uses| tech_preos_boot action_defense_evasion –>|enables| action_credential_access action_credential_access –>|uses| tech_keylogging action_credential_access –>|uses| tech_credential_dump action_defense_evasion –>|enables| action_collection action_collection –>|captures| tech_screen_capture action_collection –>|captures| tech_video_capture action_collection –>|captures| tech_audio_capture action_defense_evasion –>|enables| action_c2 action_c2 –>|communicates via| tech_nonstandard_port tech_nonstandard_port –>|uses protocol| tech_ftp_style action_c2 –>|uses| tech_port_knocking malware_logger_exe –>|resides in| malware_memory_resident malware_memory_resident –>|stores config in| tech_registry_hide "

Attack Flow

Simulation Execution

Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.

Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic.

  • Attack Narrative & Commands:

    1. Delivery & Execution: An attacker delivers a trojanized RustDesk installer (rustdesk-1.4.4-x86_64.exe) via a phishing email. The file is saved to %TEMP% and executed with elevated privileges.
    2. Payload Drop: Upon execution, the installer extracts two malicious binaries—logger.exe and Libserver.exe—into the same directory and immediately launches them as child processes.
    3. Persistence (T1546.016): logger.exe writes a Run‑key entry (HKCUSoftwareMicrosoftWindowsCurrentVersionRun) pointing to itself, ensuring persistence after reboot.
    4. Code Injection (T1574.005 / T1055.005): Libserver.exe injects a reflective DLL into explorer.exe to gain high‑privilege execution and opens a reverse shell to the attacker’s C2.
    5. Evasion (Masquerading – T1036.011): All binaries retain the “RustDesk” naming convention to blend with legitimate software.
  • Regression Test Script: The script below automates steps 1‑3, producing the three required process‑creation events. It uses PowerShell to copy pre‑staged malicious binaries (simulated with benign placeholders for safety) and launches them with the proper parent‑child relationship.

    # -------------------------------------------------
    # Simulation Script – Trojanized RustDesk Installer
    # -------------------------------------------------
    # Prerequisite: Two benign placeholder executables placed in C:Malware (named logger.exe & Libserver.exe)
    #   In a real red‑team test these would be the actual malicious payloads.
    # -------------------------------------------------
    
    $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe"
    $payloadDir    = "$env:TEMPrustdesk_payload"
    $loggerPath    = "$payloadDirlogger.exe"
    $libserverPath = "$payloadDirLibserver.exe"
    
    # 1. Deploy a dummy installer (simply a copy of a benign exe)
    Write-Host "[*] Deploying fake RustDesk installer..."
    New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null
    Copy-Item -Path "C:WindowsSystem32notepad.exe" -Destination $installerPath -Force
    
    # 2. Simulate payload drop – copy placeholder binaries
    Write-Host "[*] Dropping payloads..."
    Copy-Item -Path "C:Malwarelogger.exe"    -Destination $loggerPath    -Force
    Copy-Item -Path "C:MalwareLibserver.exe" -Destination $libserverPath -Force
    
    # 3. Execute installer (creates parent process)
    Write-Host "[*] Running installer..."
    $installer = Start-Process -FilePath $installerPath -PassThru
    
    # 4. Launch logger.exe as child of installer
    Write-Host "[*] Launching logger.exe (child of installer)..."
    Start-Process -FilePath $loggerPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow
    
    # 5. Launch Libserver.exe as child of installer
    Write-Host "[*] Launching Libserver.exe (child of installer)..."
    Start-Process -FilePath $libserverPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow
    
    Write-Host "[+] Simulation complete. Verify alerts in SIEM."
  • Cleanup Commands: Remove the temporary files and terminate any lingering processes.

    # -------------------------------------------------
    # Cleanup Script – Remove simulation artifacts
    # -------------------------------------------------
    $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe"
    $payloadDir    = "$env:TEMPrustdesk_payload"
    
    Write-Host "[*] Stopping spawned processes..."
    Get-Process -Name "logger","Libserver","rustdesk-1.4.4-x86_64" -ErrorAction SilentlyContinue |
        Stop-Process -Force
    
    Write-Host "[*] Deleting files..."
    Remove-Item -Path $installerPath -Force -ErrorAction SilentlyContinue
    Remove-Item -Recurse -Force -Path $payloadDir -ErrorAction SilentlyContinue
    
    Write-Host "[+] Cleanup complete."