SOC Prime Bias: Medium

24 Mar 2026 14:48

From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Summary

A broad malvertising operation abuses Google Ads tied to tax-form searches to distribute a fake ScreenConnect installer. That installer deploys a multi-stage crypter, which then loads a BYOVD utility called HwAudKiller. The tool installs a signed Huawei audio driver and uses kernel-level access to terminate AV and EDR processes. Once security controls are disabled, the attackers dump LSASS credentials and harvest credentials across the network with NetExec. The activity highlights how commodity malware delivery can be paired with a custom kernel driver to obtain stealthy access, suppress defenses, and maintain persistence.

Investigation

Huntress researchers followed the redirect path from anukitax.com to bringetax.com and confirmed delivery of a fraudulent ScreenConnect MSI package. The dropped crypteds.exe uses a 2 GB memory allocation trick for evasion and launches shellcode indirectly through timeSetEvent before loading HwAudKiller. That payload writes Havoc.sys into %TEMP% and registers a kernel service named Havoc to terminate a hard-coded list of security processes. In a second intrusion, the attackers gained access through a VPN compromise, reused the same driver, expanded the kill list to include FortiEDR processes, dumped LSASS using comsvcs.dll, and moved laterally with NetExec.

Mitigation

Organizations should block or tightly allow-list legitimate ScreenConnect deployments and monitor for unfamiliar trial instance-* relay hostnames. Security teams should watch for kernel drivers loaded from temporary paths and alert on Sysmon Event ID 6 and Windows service installation activity. Strict execution controls should be enforced on files written to C:\Windows\SystemTemp\ScreenConnect and %TEMP%. User awareness efforts should also reinforce that Google Ads search results should not be trusted sources for tax-related downloads.

Response

If a rogue ScreenConnect installer is found, immediately isolate the endpoint, collect crypteds.exe and any dropped Havoc.sys driver, and stop the Havoc service. Begin credential-reset procedures for potentially compromised accounts and revoke exposed access. Then scan the wider environment for additional ScreenConnect relay connections, NetExec execution, and signs of LSASS dumping. Finally, document and share discovered IOCs with internal and external threat intelligence channels.

"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef driver fill:#ffddaa %% Node definitions initial_access["<b>Technique</b> – T1659 Content Injection<br/><b>Description</b>: Malicious Google Ads redirect users searching for tax forms to a cloaked landing page that serves a rogue ScreenConnect MSI installer."] class initial_access action tool_google_ads["<b>Tool</b> – Name: Google Ads<br/><b>Purpose</b>: Deliver malicious ad linking to landing page."] class tool_google_ads tool malware_screenconnect["<b>Malware</b> – Name: ScreenConnect MSI<br/><b>Type</b>: Remote access installer."] class malware_screenconnect malware user_execution["<b>Technique</b> – T1204 User Execution<br/><b>Description</b>: Victim runs the downloaded form_w9.msi installing ScreenConnect."] class user_execution action remote_desktop["<b>Technique</b> – T1219.002 Remote Desktop Software<br/><b>Description</b>: Attacker gains interactive remote control via compromised ScreenConnect session."] class remote_desktop action obfuscation["<b>Technique</b> – T1027 Obfuscated Files or Information<br/><b>Description</b>: Payload uses XOR encrypted shellcode, custom compression and reflective loading."] class obfuscation action compile_after_delivery["<b>Technique</b> – T1027.004 Compile After Delivery<br/><b>Description</b>: Payload compiled postu2011delivery to avoid static detection."] class compile_after_delivery action reflective_loader["<b>Process</b> – Name: Reflective Loader<br/><b>Description</b>: Loads encrypted shellcode at runtime."] class reflective_loader process persistence_service["<b>Technique</b> – T1543 Create or Modify System Process<br/><b>Description</b>: Malware creates Windows service that loads signed Huawei driver to run with SYSTEM."] class persistence_service action driver_havoc["<b>Driver</b> – Name: Havoc.sys<br/><b>Description</b>: Signed Huawei kernel driver loaded from %TEMP%."] class driver_havoc driver credential_dump["<b>Technique</b> – T1547.008 LSASS Driver<br/><b>Description</b>: Driver uses comsvcs.dll via rundll32 to dump LSASS memory."] class credential_dump action tool_comsvcs["<b>Tool</b> – Name: comsvcs.dll<br/><b>Purpose</b>: Invoked by rundll32 for LSASS dump."] class tool_comsvcs tool process_rundll["<b>Process</b> – Name: rundll32.exe<br/><b>Description</b>: Executes comsvcs.dll for credential dumping."] class process_rundll process discovery_netscan["<b>Technique</b> – T1018 Remote System Discovery<br/><b>Description</b>: NetScan enumerates internal hosts."] class discovery_netscan action tool_netscan["<b>Tool</b> – Name: NetScan<br/><b>Purpose</b>: Scan network for live hosts."] class tool_netscan tool lateral_rdp["<b>Technique</b> – T1021.001 Remote Services RDP<br/><b>Description</b>: Use RDP to move laterally."] class lateral_rdp action tool_rdp["<b>Tool</b> – Name: RDP<br/><b>Purpose</b>: Remote desktop protocol for lateral movement."] class tool_rdp tool lateral_nxc["<b>Technique</b> – T1210 Exploitation of Remote Services<br/><b>Description</b>: Use NetExec (nxc) to execute commands on remote machines."] class lateral_nxc action tool_nxc["<b>Tool</b> – Name: NetExec (nxc)<br/><b>Purpose</b>: Execute commands over SMB or RDP."] class tool_nxc tool defense_terminate["<b>Technique</b> – T1027 Additional Defense Evasion<br/><b>Description</b>: Kernel driver terminates security processes such as Defender, Kaspersky, SentinelOne."] class defense_terminate action %% Connections initial_access –>|uses| tool_google_ads tool_google_ads –>|delivers| malware_screenconnect malware_screenconnect –>|installed via| user_execution user_execution –>|enables| remote_desktop remote_desktop –>|provides channel for| obfuscation obfuscation –>|uses| compile_after_delivery compile_after_delivery –>|loads via| reflective_loader reflective_loader –>|creates| persistence_service persistence_service –>|loads driver| driver_havoc driver_havoc –>|enables| credential_dump credential_dump –>|uses| tool_comsvcs tool_comsvcs –>|executed by| process_rundll process_rundll –>|facilitates| discovery_netscan discovery_netscan –>|uses| tool_netscan discovery_netscan –>|enables| lateral_rdp lateral_rdp –>|uses| tool_rdp lateral_rdp –>|enables| lateral_nxc lateral_nxc –>|uses| tool_nxc driver_havoc –>|performs| defense_terminate "

Attack Flow

Detections

Possible IP Lookup Domain Communications Attempted (via dns)

SOC Prime Team
23 Mar 2026

Possible BYOVD – Bring Your Own Vulnerable Driver Attack (via audit)

SOC Prime Team
23 Mar 2026

Possible Data Infiltration / Exfiltration / C2 via Third Party Services / Tools (via dns)

SOC Prime Team
23 Mar 2026

Alternative Remote Access / Management Software (via process_creation)

SOC Prime Team
23 Mar 2026

Possible Credential Dumping Using Comsvcs.dll (via cmdline)

SOC Prime Team
23 Mar 2026

Possible BYOVD – Bring Your Own Vulnerable Driver Attack (via file_event)

SOC Prime Team
23 Mar 2026

Possible System Process Enumeration (via cmdline)

SOC Prime Team
23 Mar 2026

Possible Telegram Abuse As Command And Control Channel (via dns_query)

SOC Prime Team
23 Mar 2026

Windows Service Pointing to a Driver in a Suspicious Location was Created (via cmdline)

SOC Prime Team
23 Mar 2026

Possible Data Infiltration / Exfiltration / C2 via Third Party Services / Tools (via proxy)

SOC Prime Team
23 Mar 2026

Windows Service Pointing to a Driver Was Created (via cmdline)

SOC Prime Team
23 Mar 2026

Possible Lsass Process Enumeration (via cmdline)

SOC Prime Team
23 Mar 2026

IOCs (DestinationIP) to detect: From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill

SOC Prime AI Rules
23 Mar 2026

IOCs (HashSha256) to detect: From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill

SOC Prime AI Rules
23 Mar 2026

IOCs (SourceIP) to detect: From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill

SOC Prime AI Rules
23 Mar 2026

Malvertising Campaign Delivering Rogue Software and Credential Harvesting [Windows Process Creation]

SOC Prime AI Rules
23 Mar 2026

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. Initial Access via Malvertising: The victim clicks a malicious ad while searching for tax forms, which triggers a drive‑by download of form_w9.msi.
    2. Installation of Rogue Software: The MSI silently installs a ScreenConnect‑like remote‑support tool and drops crypteds.exe and sent.exe to the %TEMP% directory.
    3. Credential Harvesting: crypteds.exe is launched to dump LSA Secrets.
    4. DLL Side‑Loading via Rundll32: To evade static detection, the attacker loads a malicious DLL using rundll32.exe with the system DLL comsvcs.dll as the entry point, which will execute the embedded payload.

    The exact commands (simulated on a test machine) are:

    # 1. Deploy the malicious MSI (simulated)
    Start-Process -FilePath "C:Tempform_w9.msi" -ArgumentList "/quiet" -Wait
    
    # 2. Launch the credential‑dumping tool
    Start-Process -FilePath "$env:TEMPcrypteds.exe" -ArgumentList "/dump" -Wait
    
    # 3. Load the malicious payload via rundll32 using comsvcs.dll
    rundll32.exe "C:windowsSystem32comsvcs.dll",LaunchApplication "$env:TEMPsent.exe"
  • Regression Test Script: The script below automates the above steps and ensures that the generated telemetry matches the detection rule expectations.

    # Regression Test Script – Simulates the Malvertising Campaign
    # -----------------------------------------------------------
    # 0. Prerequisite: Ensure Sysmon is running with command‑line logging enabled.
    
    # Variables
    $msiPath   = "$env:TEMPform_w9.msi"
    $dumpTool  = "$env:TEMPcrypteds.exe"
    $payload   = "$env:TEMPsent.exe"
    $dllPath   = "C:windowsSystem32comsvcs.dll"
    
    # Helper: Create dummy files to mimic the malicious binaries
    New-Item -Path $msiPath   -ItemType File -Force | Out-Null
    New-Item -Path $dumpTool  -ItemType File -Force | Out-Null
    New-Item -Path $payload   -ItemType File -Force | Out-Null
    
    Write-Host "[*] Installing malicious MSI (simulated)..."
    Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait
    
    Write-Host "[*] Executing credential‑dumping tool..."
    Start-Process -FilePath $dumpTool -ArgumentList "/dump" -Wait
    
    Write-Host "[*] Performing DLL side‑loading via rundll32..."
    rundll32.exe "`"$dllPath`"",LaunchApplication "`"$payload`""
    
    Write-Host "[+] Simulation complete. Verify detection via the SIEM."
  • Cleanup Commands: Remove the dummy artifacts and stop any lingering processes.

    # Cleanup Script
    $paths = @("$env:TEMPform_w9.msi","$env:TEMPcrypteds.exe","$env:TEMPsent.exe")
    foreach ($p in $paths) {
        if (Test-Path $p) { Remove-Item -Path $p -Force }
    }
    
    # Terminate any stray rundll32 processes spawned by the test
    Get-Process -Name rundll32 -ErrorAction SilentlyContinue |
        Where-Object {$_.Path -eq "$env:SystemRootSystem32rundll32.exe"} |
        Stop-Process -Force