Between May and July 2026, threat actors repeatedly tampered with the files served by AOMEI Backupper's own update infrastructure. The twist that makes this campaign unusually dangerous: the attackers didn't maintain persistent control of the update servers. Instead, they swapped malicious payloads onto the legitimate update path in windows lasting only five to ten minutes at a time. Any Windows system running AOMEI Backupper that happened to check for updates during one of those windows downloaded and executed a backdoor — signed-path, vendor-domain, fully trusted by default.
This is a classic supply-chain playbook executed with surgical precision. Short exposure windows dramatically reduce the attacker's detection surface: there's no persistent malicious infrastructure to block, no long-lived bad file hash to ban, and most vendor integrity checks will pass once the window closes. Google Threat Intelligence Group (GTIG), Mandiant, and ManageEngine's Threat Analysis team collaborated on the research, which should tell you the level of sophistication involved.
If your organization runs AOMEI Backupper — common in SMB environments, MSP stacks, and IT departments that need low-cost disk imaging and backup — you must assume exposure if any endpoint performed an update check during the campaign window and treat this as an incident, not a patching exercise.
Technical Analysis
Affected Products and Platforms
- Product: AOMEI Backupper (Windows backup and disk cloning software)
- Platform: Windows endpoints and servers where Backupper is installed
- Attack window: May through July 2026, in discrete 5–10 minute intervals
- Delivery mechanism: The product's own legitimate update check against vendor-operated update servers
Attack Chain (Defender's View)
- Initial access: Attackers gained the ability to modify files hosted on AOMEI's update servers — the exact intrusion vector into the vendor's infrastructure has not been fully disclosed publicly.
- Payload substitution: During brief windows, the legitimate update payload was replaced or supplemented with a backdoored package. Outside those windows, servers served clean files — frustrating hash-based blocklists and retroactive reputation lookups.
- Trusted delivery: The AOMEI Backupper updater process fetched the package over its normal vendor update channel. Because the traffic flows to legitimate vendor domains from a legitimate, installed process, perimeter controls and application allowlisting offer little resistance by default.
- Execution: The tampered update executed with the privileges of the updater (typically elevated, as backup software requires administrative rights), installing an unauthorized access mechanism — a remote access backdoor giving attackers persistent command-and-control capability.
Why This Technique Is Hard to Catch
- Ephemeral exposure: 5–10 minute windows mean the malicious artifact existed on vendor infrastructure briefly; there's little for threat intel feeds to pin down.
- Trusted parent process: Execution chains begin with the vendor's updater, which most EDR policies treat as benign.
- No CVE involved: This is not a vulnerability in the software — it's a compromise of the vendor's distribution infrastructure. Patching a CVE does nothing here; only integrity verification, behavioral detection, and vendor remediation matter.
- Elevated context: Backup software runs as SYSTEM/administrators in most deployments, so the backdoor inherits a high-privilege beachhead immediately.
Exploitation Status
This is confirmed active exploitation in the wild during May–July 2026. This is not theoretical. Any organization running AOMEI Backupper should treat the campaign as a live incident-response scenario and hunt retroactively across that period. Note: no CVE identifier has been published for this event at time of writing — it is an infrastructure compromise, not a product vulnerability.
Detection & Response
The highest-fidelity hunting angles for this campaign are behavioral: the AOMEI updater spawning unexpected children, executables landing in or launching from AOMEI-controlled directories, and persistence or C2 established by those children. The rules below are tuned to minimize noise — AOMEI's updater legitimately extracts and runs update packages, so we focus on what it should never do: spawn shells, script interpreters, or LOLBins, and establish persistence.
Sigma Rules
---
title: AOMEI Backupper Updater Spawning Shell or Script Interpreter
id: 3f8a2c71-9d4e-4b6a-a1f2-7c5d8e9b0a34
status: experimental
description: Detects the AOMEI Backupper update process spawning command shells, script interpreters, or LOLBins. Consistent with the 2026 supply-chain campaign in which tampered update payloads executed a backdoor via the trusted updater.
references:
- https://thehackernews.com/2026/10/attackers-tampered-with-aomei.html
- https://attack.mitre.org/techniques/T1195/002/
author: Security Arsenal
date: 2026/10/15
tags:
- attack.initial_access
- attack.t1195.002
- attack.execution
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\Backupper.exe'
- '\ABUpdate.exe'
- '\ABUpdateService.exe'
- '\ABNotify.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\schtasks.exe'
- '\wmic.exe'
- '\bitsadmin.exe'
- '\certutil.exe'
- '\msiexec.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare legitimate update workflows invoking msiexec for package installation — validate against file hashes and timestamps within the May-July 2026 window
level: high
---
title: Executable Launched From AOMEI Temporary or Update Staging Directories
id: 8b1d4e62-2a7f-4c39-b5e1-9d3f6a8c2e17
status: experimental
description: Detects execution of binaries from AOMEI Backupper update staging, temp, or user-writable directories. Tampered supply-chain payloads are typically staged in product-controlled or temporary paths before execution.
references:
- https://thehackernews.com/2026/10/attackers-tampered-with-aomei.html
- https://attack.mitre.org/techniques/T1195/002/
author: Security Arsenal
date: 2026/10/15
tags:
- attack.execution
- attack.t1195.002
logsource:
category: process_creation
product: windows
detection:
selection:
Image|contains:
- '\AOMEI Backupper\Update\'
- '\AOMEI Backupper\Temp\'
- '\AOMEI\Temp\'
- '\AppData\Local\Temp\AB'
- '\AppData\Roaming\AOMEI\'
filter_legit:
Image|endswith:
- '\ABUpdate.exe'
- '\Backupper.exe'
condition: selection and not filter_legit
falsepositives:
- Legitimate hotfix stubs during genuine updates — correlate with the campaign timeframe and verify signatures
level: high
---
title: Persistence Established by AOMEI Updater Child Process
id: c4e7a1f3-6b2d-4e58-9c31-2f8b7d4a5e96
status: experimental
description: Detects scheduled task creation, service installation, or Run key registration where the responsible process traces to the AOMEI Backupper updater tree — a hallmark of a backdoor achieving persistence post-install.
references:
- https://thehackernews.com/2026/10/attackers-tampered-with-aomei.html
- https://attack.mitre.org/techniques/T1053/005/
- https://attack.mitre.org/techniques/T1543/003/
author: Security Arsenal
date: 2026/10/15
tags:
- attack.persistence
- attack.t1053.005
- attack.t1543.003
- attack.t1068
logsource:
category: process_creation
product: windows
detection:
selection_schtasks:
CommandLine|contains|all:
- 'schtasks'
- '/create'
selection_sc:
CommandLine|contains|all:
- 'sc.exe'
- 'create'
selection_reg:
CommandLine|contains|all:
- 'reg.exe'
- ' add '
CommandLine|contains:
- '\CurrentVersion\Run'
- 'Winlogon'
- 'Image File Execution Options'
selection_parent:
ParentCommandLine|contains:
- 'AOMEI'
- 'Backupper'
- 'ABUpdate'
condition: 1 of selection_* and selection_parent
falsepositives:
- AOMEI's own backup scheduling tasks created through the product UI (these originate from Backupper.exe interactively, not from an update chain) — verify task names against the product's known 'AOMEI*' task naming
level: critical
KQL Hunt — Microsoft Sentinel / Defender
The query below hunts for the behavioral chain: AOMEI updater processes spawning suspicious children or establishing persistence during and after the campaign window. Run it across your full retention period, not just May–July — backdoors installed during the campaign will still be executing today.
// Hunt: AOMEI Backupper updater spawning suspicious child processes or persistence mechanisms
// Campaign window: May-July 2026, but backdoors persist — run across full retention
let suspiciousChildren = dynamic(["cmd.exe","powershell.exe","pwsh.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","schtasks.exe","sc.exe","wmic.exe","bitsadmin.exe","certutil.exe","reg.exe","msiexec.exe","net.exe","net1.exe"]);
DeviceProcessEvents
| where InitiatingProcessFileName has_any ("Backupper.exe","ABUpdate.exe","ABUpdateService.exe","ABNotify.exe")
or InitiatingProcessCommandLine has_any ("AOMEI","ABUpdate")
| where FileName in~ (suspiciousChildren)
| project Timestamp, DeviceName, AccountName,
UpdaterProcess = InitiatingProcessFileName,
UpdaterCmd = InitiatingProcessCommandLine,
ChildProcess = FileName,
ChildCmd = ProcessCommandLine,
SHA256, FolderPath, ReportId
| order by Timestamp asc;
// Companion hunt: network connections originating from AOMEI processes to non-AOMEI infrastructure
DeviceNetworkEvents
| where InitiatingProcessFileName has_any ("Backupper.exe","ABUpdate.exe","ABUpdateService.exe","ABNotify.exe")
| where RemoteUrl !has_any ("aomei.com","aomeitech.com") and RemoteIP !startswith "10." and RemoteIP !startswith "192.168."
| summarize ConnectionCount = count(), FirstSeen = min(Timestamp), LastSeen = max(Timestamp),
RemoteEndpoints = make_set(RemoteUrl, 20), IPs = make_set(RemoteIP, 20)
by DeviceName, InitiatingProcessFileName
| order by FirstSeen asc;
Velociraptor VQL Hunt
Use this artifact fleet-wide to surface live processes executing from AOMEI staging/temp paths, unsigned binaries inside AOMEI directories, and suspicious parent-child relationships — then triage hits for memory capture and binary acquisition.
-- Hunt: AOMEI Backupper supply-chain backdoor artifacts
-- Surfaces processes running from AOMEI staging/temp paths and unsigned binaries in AOMEI install dirs
SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime,
authenticode(filename=Exe) AS Signature
FROM pslist()
WHERE Exe =~ '(?i)AOMEI|ABUpdate|Backupper'
OR CommandLine =~ '(?i)AOMEI Backupper.*(Temp|Update|Stage)'
OR Exe =~ '(?i)AppData.*(Temp|Roaming).*AOMEI'
-- Companion: enumerate unsigned executables planted in AOMEI install directories
SELECT FullPath, Size, Mtime, Ctime,
authenticode(filename=FullPath) AS Authenticode
FROM glob(globs=[
'C:/Program Files*/AOMEI*/**/*.exe',
'C:/Program Files*/AOMEI*/**/*.dll',
'C:/ProgramData/AOMEI*/**/*.exe',
'C:/Users/*/AppData/Roaming/AOMEI*/**/*.exe'
])
WHERE Authenticode.Description =~ 'Unsigned'
OR Mtime > '2026-05-01' AND Mtime < '2026-08-01'
Remediation & Verification Script
Run this on every endpoint with AOMEI Backupper installed. It inventories the installation, flags unsigned or recently-modified binaries, checks for anomalous scheduled tasks/services/run keys referencing AOMEI paths, and enumerates outbound connections from AOMEI processes. Output feeds your IR triage.
# AOMEI Backupper supply-chain compromise verification script
# Run elevated on all endpoints with AOMEI Backupper installed
# Output: JSON report per host for IR triage
$report = [ordered]@{ Hostname = $env:COMPUTERNAME; Timestamp = (Get-Date).ToString('o') }
# 1. Inventory AOMEI installation and version
$aomei = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" -ErrorAction SilentlyContinue |
Where-Object { $_.DisplayName -match 'AOMEI Backupper' }
$report.InstalledVersion = $aomei.DisplayVersion
$report.InstallLocation = $aomei.InstallLocation
# 2. Flag unsigned or campaign-window-modified binaries in AOMEI directories
$paths = @("$env:ProgramFiles\AOMEI*", "${env:ProgramFiles(x86)}\AOMEI*", "$env:ProgramData\AOMEI*")
$suspiciousFiles = foreach ($p in $paths) {
Get-ChildItem $p -Recurse -Include *.exe,*.dll -ErrorAction SilentlyContinue | ForEach-Object {
$sig = Get-AuthenticodeSignature $_.FullName
if ($sig.Status -ne 'Valid' -or ($_.LastWriteTime -gt '2026-05-01' -and $_.LastWriteTime -lt '2026-08-01')) {
[pscustomobject]@{ Path=$_.FullName; SigStatus=$sig.Status; Signer=$sig.SignerCertificate.Subject; Modified=$_.LastWriteTime }
}
}
}
$report.SuspiciousBinaries = $suspiciousFiles
# 3. Audit scheduled tasks, services, and Run keys referencing AOMEI paths
$report.SuspiciousTasks = Get-ScheduledTask | Where-Object {
$_.TaskName -notmatch '^AOMEI' -and ($_.Actions.Execute -match 'AOMEI|ABUpdate') } |
Select-Object TaskName, @{n='Action';e={$_.Actions.Execute}}, @{n='Args';e={$_.Actions.Arguments}}
$report.SuspiciousServices = Get-CimInstance Win32_Service | Where-Object {
$_.PathName -match 'AOMEI' -and $_.Name -notmatch '^(ABService|Backupper)' } |
Select-Object Name, PathName, StartMode, State
$runKeys = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
$report.SuspiciousRunKeys = foreach ($k in $runKeys) {
(Get-ItemProperty $k -ErrorAction SilentlyContinue).PSObject.Properties |
Where-Object { $_.Value -match 'AOMEI' } | Select-Object Name, Value
}
# 4. Enumerate live network connections from AOMEI processes
$report.AomeiConnections = Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue |
Where-Object { (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Path -match 'AOMEI' } |
Select-Object LocalPort, RemoteAddress, RemotePort, OwningProcess
$report | ConvertTo-Json -Depth 5 | Out-File "C:\IR\AOMEI-Triage-$env:COMPUTERNAME.json" -Force
Write-Host "Triage report written to C:\IR\AOMEI-Triage-$env:COMPUTERNAME.json"
# 5. If compromise indicators found: isolate host, kill AOMEI processes, block update channel pending clean reinstall
# Stop-Process -Name 'Backupper','ABUpdate*','ABNotify' -Force -ErrorAction SilentlyContinue
# New-NetFirewallRule -DisplayName 'IR-Block-AOMEI-Update' -Direction Outbound -Program 'C:\Program Files*\AOMEI*\*.exe' -Action Block
Remediation
- Determine exposure immediately. Identify every endpoint and server with AOMEI Backupper installed. Cross-reference update-check timestamps (EDR network telemetry, proxy logs for AOMEI update domains) against May–July 2026. Any host that fetched an update in that window is a suspect host — treat as potentially compromised.
- Isolate suspected hosts. Do not simply uninstall. Preserve the machine for forensic imaging first — the ephemeral nature of this attack means endpoint artifacts are your only evidence. Pull memory, the AOMEI installation directory, update staging/temp folders, and persistence locations.
- Clean reinstall from verified media. Remove AOMEI Backupper entirely, verify no residual services, tasks, or drivers remain, then reinstall only the latest vendor-published build obtained directly from AOMEI's official site after confirming the vendor's remediation advisory. Verify digital signatures on every binary post-install.
- Credential exposure review. Backdoors with SYSTEM context mean credential material on the host (LSASS secrets, saved RDP/VPN creds, browser stores, backup destination credentials — AOMEI stores NAS/cloud credentials for backup targets) should be considered compromised. Rotate accordingly, prioritizing backup repository credentials, since those are a direct path to ransomware-style destruction of recovery data.
- Hunt retroactively and forward. Deploy the Sigma, KQL, and VQL content above. Because the installed backdoors outlive the campaign window, hunt across your full telemetry retention and keep forward-looking detections active.
- Constrain updater behavior going forward. Where operationally feasible, disable automatic update checks in backup software and gate updates through your software deployment pipeline with hash/signature verification. Apply egress filtering so backup agents can only reach explicitly required vendor domains, and alert on any updater spawning shells or persistence tooling — that behavior is never legitimate.
- Vendor engagement. Monitor AOMEI's official security advisories and the joint reporting from Google Threat Intelligence Group, Mandiant, and ManageEngine's Threat Analysis team for confirmed indicators of compromise (file hashes, C2 domains) as they are published, and fold them into your blocklists.
Supply-chain attacks of this kind — brief, infrastructure-level tampering of a trusted vendor — are a reminder that "trusted software" is a point-in-time assertion, not a permanent state. Behavioral detection on what trusted processes do, not just what they are, is the control that survives this class of attack.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.