From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill
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)
View
Possible BYOVD – Bring Your Own Vulnerable Driver Attack (via audit)
View
Possible Data Infiltration / Exfiltration / C2 via Third Party Services / Tools (via dns)
View
Alternative Remote Access / Management Software (via process_creation)
View
Possible Credential Dumping Using Comsvcs.dll (via cmdline)
View
Possible BYOVD – Bring Your Own Vulnerable Driver Attack (via file_event)
View
Possible System Process Enumeration (via cmdline)
View
Possible Telegram Abuse As Command And Control Channel (via dns_query)
View
Windows Service Pointing to a Driver in a Suspicious Location was Created (via cmdline)
View
Possible Data Infiltration / Exfiltration / C2 via Third Party Services / Tools (via proxy)
View
Windows Service Pointing to a Driver Was Created (via cmdline)
View
Possible Lsass Process Enumeration (via cmdline)
View
IOCs (DestinationIP) to detect: From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill
View
IOCs (HashSha256) to detect: From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill
View
IOCs (SourceIP) to detect: From W-2 to BYOVD: How a Tax Search Leads to Kernel-Mode AV/EDR Kill
View
Malvertising Campaign Delivering Rogue Software and Credential Harvesting [Windows Process Creation]
View
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:
- 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. - Installation of Rogue Software: The MSI silently installs a ScreenConnect‑like remote‑support tool and drops
crypteds.exeandsent.exeto the%TEMP%directory. - Credential Harvesting:
crypteds.exeis launched to dump LSA Secrets. - DLL Side‑Loading via Rundll32: To evade static detection, the attacker loads a malicious DLL using
rundll32.exewith the system DLLcomsvcs.dllas 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" - Initial Access via Malvertising: The victim clicks a malicious ad while searching for tax forms, which triggers a drive‑by download of
-
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