SOC Prime Bias: Medium

10 Apr 2026 16:43

Fake Windows Support Site Delivers Password-Stealing Malware

Author Photo
SOC Prime Team linkedin icon Follow
Fake Windows Support Site Delivers Password-Stealing Malware
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Summary

A typosquatted website impersonating Microsoft Support is pushing a fake Windows Update MSI. Once installed, the MSI deploys an Electron-based app that triggers a VBS starter, launches a renamed Python interpreter, and loads credential-theft modules. Stolen data is routed through Render, Cloudflare Workers, and GoFile, while persistence is set via a Run registry value and a Startup shortcut. The activity is tailored to French-speaking users.

Investigation

Researchers obtained WindowsUpdate 1.0.0.msi and confirmed it drops an Electron wrapper (WindowsUpdate.exe) plus a VBS launcher (AppLauncher.vbs). The Electron process then spawns a hidden Python runtime (_winhost.exe), which imports common information-stealing libraries to collect browser credentials, Discord tokens, and payment data. Network telemetry shows initial host profiling to www.myexternalip.com and ip-api.com, followed by C2 traffic to datawebsync-lvmv.onrender.com and sync-service.system-telemetry.workers.dev, with exfiltration observed to store8.gofile.io. Persistence is established by creating a SecurityHealth value under HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run and placing Spotify.lnk in the user Startup folder.

Mitigation

Remove the SecurityHealth Run value and delete Spotify.lnk from the user’s Startup folder. Delete the WindowsUpdate directory under AppData\Local\Programs and remove the temporary WinGettools folder. Reset stored passwords, enable MFA/2FA, and run a full scan using updated anti-malware protections.

Response

If alerts trigger on the suspicious MSI, VBS execution, or creation of the Run key, isolate the host, capture volatile data, and perform forensic triage of relevant AppData paths. Block the identified C2 domains and track traffic to the listed recon services. Remove persistence artifacts and reinforce safe update workflows to prevent repeat execution.

"graph TB %% Class definitions classDef action fill:#99ccff classDef process fill:#ffcc99 classDef persistence fill:#c2f0c2 classDef collection fill:#ffd580 classDef credential fill:#ffb3ba classDef defense fill:#d9d9d9 classDef c2 fill:#ffeb99 classDef exfil fill:#c2c2f0 %% Nodes action_user_click["<b>Action</b> – T1566.001 Phishing: User clicks malicious link"] class action_user_click action process_msiexec["<b>Process</b> – T1218.007 Msiexec: Executes malicious MSI package via msiexec.<br/><b>Description</b>: Windows Installer executable used to install or execute malicious MSI packages."] class process_msiexec process process_vbs["<b>Process</b> – T1059.005 Visual Basic: Runs VBS launcher script.<br/><b>Description</b>: Execute commands via Windows Script Host using VBScript."] class process_vbs process process_electron["<b>Process</b> – T1036.003 Masquerading Rename System Utilities: Launches Electron wrapper disguised as a legitimate app."] class process_electron process process_python["<b>Process</b> – T1036.003 Masquerading Rename System Utilities: Spawns renamed Python process _winhost.exe."] class process_python process persistence_registry["<b>Persistence</b> – T1547.001 Registry Run Keys/Startup Folder: Adds Run key named SecurityHealth."] class persistence_registry persistence persistence_shortcut["<b>Persistence</b> – T1547.009 Shortcut Modification: Creates shortcut Spotify.lnk for autou2011run."] class persistence_shortcut persistence collection_ip["<b>Collection</b> – T1590.005 IP Addresses: Gathers external IP information."] class collection_ip collection credential_browser["<b>Credential</b> – T1555.003 Credentials from Web Browsers: Extracts saved browser passwords."] class credential_browser credential credential_discord["<b>Credential</b> – T1539 Steal Web Session Cookie: Retrieves Discord authentication tokens."] class credential_discord credential defense_terminate["<b>Defense Evasion</b> – T1564.011 Delete Artifact: Terminates securityu2011related processes."] class defense_terminate defense defense_obfuscation["<b>Defense Evasion</b> – T1027.014 HTML Smuggling, T1027.007 Dynamic API Resolution, T1140 Deobfuscate/Decode: Executes obfuscated JavaScript payload."] class defense_obfuscation defense c2_communicate["<b>C2 Communication</b> – T1102.003 Web Service: Communicates with commandu2011andu2011control over HTTP."] class c2_communicate c2 exfil_cloud["<b>Exfiltration</b> – T1567.002 Exfiltration to Cloud Storage: Uploads stolen data to cloud storage."] class exfil_cloud exfil %% Connections action_user_click –>|leads_to| process_msiexec process_msiexec –>|executes| process_vbs process_vbs –>|launches| process_electron process_electron –>|spawns| process_python process_python –>|establishes| persistence_registry process_python –>|creates| persistence_shortcut process_python –>|performs| collection_ip process_python –>|performs| credential_browser process_python –>|performs| credential_discord process_python –>|performs| defense_terminate process_python –>|uses| defense_obfuscation defense_obfuscation –>|communicates| c2_communicate c2_communicate –>|exfiltrates| exfil_cloud "

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:
    An adversary has obtained a foothold on the user’s workstation and wishes to maintain persistence across reboots while evading casual inspection. They drop a malicious payload named WindowsUpdate.exe into the user’s AppData folder, then create a Run‑key named SecurityHealth that points to this payload, deliberately mimicking the legitimate “Windows Security Health” service. Because the rule watches for exactly this key path, the activity should be flagged.

    ```powershell
    # 1. Drop the malicious payload (simulated with a harmless text file for testing)
    $payloadPath = "$env:APPDATAMicrosoftWindowsUpdateWindowsUpdate.exe"
    New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null
    Set-Content -Path $payloadPath -Value "This is a dummy malicious executable for testing." -Encoding ASCII
    
    # 2. Create the malicious Run key that masquerades as SecurityHealth
    $runKey = 'HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun'
    New-ItemProperty -Path $runKey -Name 'SecurityHealth' -Value $payloadPath -PropertyType String -Force
    ```
  • Regression Test Script:

    ```powershell
    # -------------------------------------------------
    # Regression Test – Registry Persistence Masquerade
    # -------------------------------------------------
    # Purpose: Reproduce the exact telemetry that the Sigma rule expects.
    # Works on Windows 10/11 with admin privileges.
    
    # Define payload location
    $payload = "$env:APPDATAMicrosoftWindowsUpdateWindowsUpdate.exe"
    
    # Ensure the directory exists
    if (-not (Test-Path (Split-Path $payload))) {
        New-Item -ItemType Directory -Path (Split-Path $payload) -Force | Out-Null
    }
    
    # Create a dummy executable (in a real test this would be the malicious binary)
    Set-Content -Path $payload -Value "MALICIOUS_BINARY_PLACEHOLDER" -Encoding ASCII
    
    # Register the Run key with a masqueraded name
    $runKeyPath = 'HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun'
    New-ItemProperty -Path $runKeyPath -Name 'SecurityHealth' -Value $payload -PropertyType String -Force
    
    Write-Host "Malicious Run key created. Expect detection alert shortly."
    # -------------------------------------------------
    ```
  • Cleanup Commands:

    ```powershell
    # Remove the malicious Run key
    Remove-ItemProperty -Path 'HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun' -Name 'SecurityHealth' -ErrorAction SilentlyContinue
    
    # Delete the dummy payload file and its folder
    $payloadDir = Split-Path "$env:APPDATAMicrosoftWindowsUpdateWindowsUpdate.exe"
    Remove-Item -Path $payloadDir -Recurse -Force -ErrorAction SilentlyContinue
    
    Write-Host "Cleanup completed."
    ```