← back to portfolio
Malware

TabFlow Pro: USB-Delivered Malicious Browser Extension

Category
Malware
Status
Complete
Host
WKSTN-ORION-014 (jharris)
Method
Disk image & browser artifact analysis
MITRE ATT&CK
T1200 Hardware Additions T1204.002 User Execution T1059.001 PowerShell T1176 Browser Extensions T1547.001 Registry Run Keys T1539 Steal Web Session Cookie T1041 Exfiltration Over C2 Channel
Executive Summary An unauthorized individual gained brief physical access to workstation WKSTN-ORION-014 overnight, connecting a USB mass storage device and leaving a malicious Chrome extension installed under the guise of "TabFlow Pro." The extension was sideloaded outside the Chrome Web Store, granted itself broad browser permissions, and established persistence via a Registry Run key executing a background service binary. Its code was built to harvest credentials and session cookies from a defined list of target domains, obfuscate the stolen data with a single-byte XOR key and Base64, and exfiltrate it to a remote C2 endpoint. One recovered artifact timestamp is internally inconsistent with the rest of the timeline and is flagged rather than treated as fact.
Table of Contents
  1. Scenario
  2. Evidence Collected
  3. Timeline
  4. Key Findings
  5. Attack Chain
  6. Analyst Notes

Scenario

Late at night, an unauthorized entry was reported into an operations bay. Security footage captured an unknown individual at workstation WKSTN-ORION-014 — assigned to operations engineer James Harris (jharris) — connecting a removable drive, spending a few minutes at the keyboard, and leaving. By the time security swept the floor, the workstation had been left unlocked.

The following morning, endpoint telemetry flagged a Chrome extension in Harris's browser profile that did not originate from the company's managed deployment channel. A triaged disk image of the workstation was captured, along with the recovered extension source and two staging scripts.

Some artifacts on the host appeared deliberately planted or internally inconsistent with each other. Separating what could be proven from what could only be inferred was treated as a core part of this investigation.

Evidence Collected

ArtifactValueWhy It Mattered
USB Mass Storage VID/PIDVID_23A9&PID_EF18Identified the physical device used for initial access
LNK TargetE:\TabFlowProConfirmed execution originated from the removable drive
Staging Scriptinstall_extension.ps1Installed the malicious extension after ExecutionPolicy bypass
Extension IDdjflhoibgkdhkhhcedjiklpkjnoahfmgUniquely identified the extension in the Chrome profile
Chrome Web Store OriginFalseConfirmed the extension was sideloaded, not officially distributed
Granted API Permissions9Indicated broad access requested by the extension
Registry Run KeyHKCU\...\Run\TabFlowServiceHostPersistence mechanism surviving reboot
Run Key Command Linemshost_service.exe --background --no-windowRevealed the hidden background process launched at logon
C2 Host (background.js)api.tabflow-cdn[.]netIdentified the exfiltration endpoint
XOR Key0x5AConfirmed obfuscation method for outbound payloads
Target Domain Count12Scope of domains the extension filtered cookies for

Timeline

Time (UTC)EventSource
2026-04-16 23:21:04USB mass storage device installation completedRegistry
2026-04-16 23:29:36install_extension.ps1 execution failed — script execution disabledPowerShell operational log
2026-04-16 23:29:50Set-ExecutionPolicy Bypass -Scope Process -Force executed; install_extension.ps1 re-run successfullyPowerShell operational log
2026-04-16 23:31:34HKCU\...\Run\TabFlowServiceHost persistence value createdRegistry (NTUSER.dat)

Elapsed time from USB installation to persistence establishment: 630 seconds (10m 30s).

Key Findings

Attack Chain

Initial Access
Unauthorized physical access; USB mass storage device connected to the unlocked workstation.
Execution
TabFlowPro.lnk executed from the USB drive; install_extension.ps1 initially failed (scripts disabled), then ran successfully after an ExecutionPolicy bypass.
Installation
Malicious Chrome extension sideloaded into the browser profile outside the Web Store, granted broad API permissions.
Persistence
Registry Run key created to launch a hidden background service binary at logon.
Collection
Extension captures credentials from login forms, session cookies across 12 domains, and browser/system metadata.
Exfiltration
Stolen data XOR-obfuscated and Base64-encoded, sent to a hardcoded C2 endpoint over HTTPS.

Analyst Notes

Correlated USB device installation, LNK execution, and PowerShell activity to establish the initial access vector.
Confirmed the extension was sideloaded (not Web Store-sourced) via its installation metadata and lack of a store listing.
Traced persistence to a Registry Run key launching a background executable disguised as a service host.
Reviewed the extension's background.js source directly to confirm C2 destination, exfiltration triggers, and obfuscation method rather than relying on network traffic alone.
Flagged the Preferences install_time value as inconsistent with the rest of the timeline — treated as unreliable rather than incorporated into the confirmed sequence of events, per the assignment's emphasis on separating proof from inference.