Browser Session Hijacking
Adversaries may take advantage of security vulnerabilities and inherent functionality in browser software to change content, modify user behaviors, and intercept information as part of various browser session hijacking techniques. A specific example is when an adversary injects software into a browser process that allows them to inherit cookies, HTTP sessions, and SSL client certificates of a user, then uses the browser as a pivot into an authenticated intranet. Executing browser-based behaviors such as pivoting may require specific process permissions, such as SeDebugPrivilege and/or high-integrity/administrator rights. Another technique involves redirecting browser traffic through an adversary-controlled proxy injected into the browser process, allowing session impersonation without modifying user-visible traffic. Malware families such as TrickBot, Dridex, IcedID, QakBot, and Cobalt Strike implement browser pivoting and web inject techniques to steal banking credentials, session tokens, and SSL certificates.
let BrowserProcesses = dynamic(["chrome.exe", "msedge.exe", "firefox.exe", "iexplore.exe", "microsoftedge.exe", "brave.exe", "opera.exe", "safari.exe"]);
let KnownGoodInjectors = dynamic(["MsMpEng.exe", "csrss.exe", "werfault.exe", "WerFaultSecure.exe", "dwm.exe", "taskmgr.exe"]);
// === Detection 1: Process injection into browser processes ===
let BrowserInjection = DeviceEvents
| where Timestamp > ago(24h)
| where ActionType in ("CreateRemoteThreadApiCall", "WriteProcessMemoryApiCall", "SetThreadContextRemoteApiCall", "QueueUserApcRemoteApiCall", "OpenProcessApiCall")
| where FileName in~ (BrowserProcesses)
| where InitiatingProcessFileName !in~ (BrowserProcesses)
| where InitiatingProcessFileName !in~ (KnownGoodInjectors)
| extend InjectionMethod = case(
ActionType == "CreateRemoteThreadApiCall", "Remote thread injection",
ActionType == "WriteProcessMemoryApiCall", "Memory write injection",
ActionType == "SetThreadContextRemoteApiCall", "Thread context hijacking",
ActionType == "QueueUserApcRemoteApiCall", "APC queue injection",
ActionType == "OpenProcessApiCall", "Suspicious process handle open",
"Unknown injection"
)
| project Timestamp, DeviceName, AccountName, DetectionSource="ProcessInjection",
InjectionMethod, TargetBrowser=FileName,
InjectorProcess=InitiatingProcessFileName,
InjectorCommandLine=InitiatingProcessCommandLine,
InjectorParent=InitiatingProcessParentFileName;
// === Detection 2: Suspicious DLL loads inside browser processes ===
let SuspiciousBrowserDllLoads = DeviceImageLoadEvents
| where Timestamp > ago(24h)
| where InitiatingProcessFileName in~ (BrowserProcesses)
| where not(FolderPath has_any (
"\\Google\\Chrome\\", "\\Mozilla Firefox\\", "\\Microsoft\\Edge\\",
"\\Windows\\System32\\", "\\Windows\\SysWOW64\\", "\\Windows\\WinSxS\\",
"\\Program Files\\Google\\", "\\Program Files (x86)\\Mozilla\\",
"\\Program Files\\Microsoft\\", "\\Program Files (x86)\\Microsoft\\"
))
| where not(FileName has_any ("d3d", "opengl", "vulkan", "nvidia", "amd", "intel"))
| project Timestamp, DeviceName, AccountName, DetectionSource="SuspiciousDllLoad",
InjectionMethod="Reflective/manual DLL load in browser",
TargetBrowser=InitiatingProcessFileName,
InjectorProcess=FileName,
InjectorCommandLine=FolderPath,
InjectorParent=InitiatingProcessParentFileName;
// === Combine and surface ===
BrowserInjection
| union SuspiciousBrowserDllLoads
| sort by Timestamp desc Data Sources
Required Tables
False Positives
- Screen reader and accessibility software (NVDA, JAWS, ZoomText) that legitimately hook into browser processes to read on-screen content
- Password manager browser extensions with companion desktop agents (1Password, LastPass desktop app) that access browser process memory for autofill
- Security products with browser integration features (some DLP agents, Netskope, Zscaler client) that inject helper modules into browsers
- Crash reporting and debugging tools (Visual Studio debugger, Process Monitor) opening handles to browser processes during development or troubleshooting
- Endpoint detection products performing memory scanning may trigger OpenProcessApiCall events against browser processes during scheduled scans
References (10)
- https://attack.mitre.org/techniques/T1185/
- https://en.wikipedia.org/wiki/Man-in-the-browser
- https://www.cobaltstrike.com/help-browser-pivoting
- https://web.archive.org/web/20210825130434/https://cobaltstrike.com/downloads/csmanual38.pdf
- https://www.icebrg.io/blog/malicious-chrome-extensions-enable-criminals-to-impact-over-half-a-million-users-and-global-businesses
- https://www.fidelissecurity.com/threatgeek/threat-intelligence/trickbot-we-missed-you-dyre/
- https://securityintelligence.com/trickbot-new-banking-trojan-delivers-credential-stealing-attacks/
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-deviceevents-table
- https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1185/T1185.md
Unlock Pro Content
Get the full detection package for T1185 including response playbook, investigation guide, and atomic red team tests.