Once a user has signed in, the session cookie or token is the credential, and whoever holds it is treated as that user without a password or MFA prompt. Attackers have learned that stealing a live session is often easier than defeating phishing-resistant MFA, so infostealer malware, adversary-in-the-middle proxies and gateway memory leaks all aim at the same prize. This guide explains how session hijacking and cookie theft work, where they show up across browsers, SSO, SaaS and remote access gateways, how to detect replay, and which controls actually bind a session to the device that earned it. It is written for identity, security operations and application security teams who own sign-in, session policy and incident response.
Key takeaways
- MFA protects the login, not the session. A cookie issued after a successful MFA challenge carries that assurance with it, so replaying it skips every factor.
- Theft happens in four places: on the endpoint (infostealers), in transit (AiTM proxies), in the application (XSS, fixation) and on the server or gateway (memory leaks such as CitrixBleed).
- Binding beats lifetime alone. Short sessions shrink the window, but device-bound sessions (Token Protection, DBSC) make a stolen cookie useless elsewhere.
- Revocation must be a reflex. Patching a gateway or resetting a password does not kill sessions that were already stolen; revoke refresh tokens and sessions explicitly.
- Detect the replay, not the theft. The theft is often invisible; the replay shows up as one session used from a new IP address, ASN, user agent or device.
How the attack works
Web applications and identity providers issue a session cookie (or an access and refresh token pair) after authentication so the user does not have to sign in on every request. The server trusts any request that presents a valid session identifier. Session hijacking is the reuse of that identifier by someone else. MITRE ATT&CK splits the behaviour into the theft, T1539 Steal Web Session Cookie (credential access), and the reuse, T1550.004 Use Alternate Authentication Material: Web Session Cookie. Closely related techniques are T1528 Steal Application Access Token, T1185 Browser Session Hijacking, T1557 Adversary-in-the-Middle and T1606.001 Forge Web Credentials: Web Cookies, where a stolen signing secret lets an attacker mint cookies rather than steal them.
| Theft route | What is taken | Typical precondition | Primary defence |
|---|---|---|---|
| Infostealer on the endpoint | Browser cookie stores, saved tokens, cloud CLI credentials | User runs malware, often on an unmanaged or developer device | Device-bound sessions, App-Bound Encryption, EDR, no admin rights |
| Adversary-in-the-middle proxy | Session cookie issued after the real MFA challenge | User signs in through a lookalike reverse proxy | Phishing-resistant MFA (FIDO2, passkeys), compliant-device requirements |
| Cross-site scripting | Cookies readable by script, tokens in localStorage | Injection flaw in the application | HttpOnly, output encoding, Content Security Policy, no tokens in web storage |
| Session fixation | A session ID the attacker planted before login | Application keeps the pre-login ID after authentication | Regenerate the session ID on login and privilege change |
| Network interception | Cookies sent over cleartext HTTP | Missing Secure attribute or HTTP on any page | HTTPS everywhere, Secure attribute, HSTS |
| Server or gateway leak | Live session tokens from appliance memory | Unpatched VPN or ADC vulnerability | Patch, then terminate all sessions; short gateway session lifetimes |
| Forged cookies | The signing key for session cookies | Secret exposed in code, config or a breached host | Vault the key, rotate on exposure, alert on sessions with no matching sign-in |
AiTM kits are covered in depth separately; see the AiTM Phishing Guide. Infostealer families and their delivery are covered in the Infostealer Threat Guide.
Where it shows up
- Identity provider sessions: the IdP session cookie or a refresh token is the master key, because it silently issues new tokens for every federated application. Stealing it gives access to the whole SSO estate rather than one app. See the Identity Provider and SSO Security Guide.
- SaaS application sessions: many SaaS products keep their own long-lived session after the SAML or OIDC handoff, so an IdP-side revocation may not reach them. Know each critical app's session lifetime and whether it honours IdP logout.
- SSL VPN and remote access gateways: appliance sessions grant network-level access. Memory disclosure flaws such as CVE-2023-4966 leaked these session tokens directly, which CISA described as allowing a threat actor to hijack a user's session.
- Cloud consoles and CLIs: cached cloud session tokens and refresh tokens on developer machines give production access without any interactive login.
- Browser sync and profiles: a personal browser profile synchronised to a corporate device, or the reverse, moves session material outside managed control. See the Enterprise Browser and Browser Security Guide.
- Machine sessions: service tokens, OAuth refresh tokens held by integrations and CI/CD session credentials are session material too, and are rarely bound or monitored.
Impact
A hijacked session gives the attacker the user's full authorisation for as long as the session survives, without generating the sign-in events most detections are tuned for. The practical consequences depend on which session was taken:
| Session stolen | Typical impact | Why it is hard to spot |
|---|---|---|
| IdP or refresh token | Mailbox and file access, new MFA method registration, app consent, lateral phishing | Token refreshes appear as non-interactive sign-ins |
| Privileged admin console | Policy changes, new accounts, disabled logging | Actions look like the admin's normal work |
| VPN or gateway | Internal network foothold, ransomware staging | No IdP sign-in occurs at all |
| Developer cloud session | Production changes, secrets theft, supply chain tampering | CLI traffic from a valid principal |
Session theft also defeats the assumption that resetting a password ends an incident. Unless the identity platform revokes refresh tokens and the application invalidates sessions server side, the attacker keeps working after the reset.
Detection
Theft on the endpoint is often silent, so most reliable detections look for a session being used in a way that does not match where it was created.
- Session context change: the same session ID or token used from a new IP address, ASN, country or user agent within its lifetime. OWASP recommends treating a mid-session change of IP or user agent as a hijacking signal while noting that NAT, proxies and spoofed user agents make it a detection aid, not a control.
- Token use without a sign-in: resource access or token refresh from an IP address that never completed an interactive sign-in for that user. In Microsoft Entra, compare interactive and non-interactive sign-in logs for the same session.
- Anonymising infrastructure: session use from VPN, VPS, Tor or hosting ASNs, especially where the original sign-in came from a corporate or residential network.
- Post-access persistence: new MFA methods, new device registrations, inbox rules or OAuth consents shortly after an unusual session.
- Endpoint signals: processes reading browser cookie databases, and on Windows Chrome's App-Bound Encryption verification failures, which Google logs as Event ID 257 from source Chrome in the Application log.
- Application telemetry: log session creation, renewal, destruction and privilege changes; OWASP advises logging a salted hash of the session ID rather than the raw value, so logs do not become a cookie store themselves.
Metrics that show it is working
- Percentage of sign-ins to critical resources protected by a device-bound token or session.
- Median and maximum session lifetime for the IdP, VPN and top 10 SaaS applications, against policy.
- Time from confirmed compromise to session and refresh token revocation (target: minutes).
- Number of session context change alerts per month, and the share confirmed as true positives.
- Percentage of privileged roles that require re-authentication for sensitive actions.
Prevention and hardening
Bind sessions to the device
- Token Protection (Microsoft Entra): a Conditional Access session control that requires supported apps to present only device-bound sign-in session tokens such as the Primary Refresh Token. Microsoft lists it as generally available for native apps on Windows, iOS/iPadOS and macOS for Exchange Online, SharePoint Online and Teams, with browser support in preview. Roll it out to a pilot group in report-only mode and capture interactive and non-interactive sign-in logs before enforcing.
- Device Bound Session Credentials (DBSC): Chrome generates a key pair, stored in a TPM where available, and the server swaps a long-lived cookie for short-lived ones (Google's example uses 600 seconds) that can only be refreshed by proving possession of the private key. Application owners opt in through the
Secure-Session-RegistrationandSecure-Session-Challengeheaders. Devices without secure hardware fall back to ordinary cookies. - App-Bound Encryption (Chrome on Windows, from Chrome 127): ties cookie decryption to Chrome's identity so malware running as the user must gain system privileges or inject into Chrome, both noisier actions. It is weaker against malware that already runs elevated, which is a further reason to remove local admin rights.
Shorten and contain sessions
- Timeouts: enforce idle and absolute timeouts server side. OWASP suggests 2 to 5 minutes idle for high-value applications, 15 to 30 minutes for low-risk ones, and gives 4 to 8 hours as an example absolute lifetime for an office application.
- Step-up for sensitive actions: require fresh authentication before changing MFA methods, minting tokens, approving payments or changing production. OWASP ASVS 5.0 V7.5.1 requires full re-authentication before sensitive account changes.
- Continuous evaluation: Continuous Access Evaluation in Entra lets Exchange, SharePoint, Teams and Graph reject tokens within minutes of critical events such as account disablement, password reset, admin revocation of refresh tokens or high user risk, and can enforce IP-based named locations. Note that CAE-aware access tokens can live up to 28 hours, so revocation, not expiry, is doing the work.
- Concurrent session limits: restrict parallel sessions for privileged and high-risk applications (NIST SP 800-53 AC-10).
Harden the cookie itself
- Attributes:
Secure,HttpOnlyand an explicitSameSitevalue on every session cookie; prefer the__Host-prefix with no Domain attribute andPath=/(ASVS V3.3.1 to V3.3.4). - Generation: at least 64 bits of entropy from a CSPRNG, and a new session ID on every authentication and privilege change (ASVS V7.2.4) to defeat fixation.
- Storage: never keep session IDs, JWTs or refresh tokens in localStorage or sessionStorage, where any XSS can read them.
- Termination: invalidate sessions on the server at logout and when an account is disabled (ASVS V7.4.2), and give administrators a way to terminate a user's sessions (V7.4.5).
Reduce theft opportunities
- Phishing-resistant MFA stops AiTM proxies from obtaining a cookie in the first place, because the FIDO2 signature is bound to the real origin. See the Phishing-Resistant MFA Guide.
- Managed, compliant devices for privileged and developer access, with EDR and no standing local admin rights.
- Browser policy: block personal profile sync on corporate devices and restrict extensions, which can read cookies for the sites they are granted.
Respond: revoke, then verify
- Revoke refresh tokens and session cookies at the IdP. In Microsoft Graph,
revokeSignInSessionsresetssignInSessionsValidFromDateTime; Microsoft notes a delay of a few minutes and that it does not cover external users. - Terminate sessions in applications that keep their own sessions, starting with email, file sharing, cloud consoles and the VPN.
- After patching a gateway flaw, terminate all active and persistent sessions on the appliance, as Citrix advised for CitrixBleed.
- Remove attacker persistence: new MFA methods, registered devices, inbox rules, OAuth grants and API tokens.
- Rotate any signing keys or secrets that could let the attacker forge new sessions.
- Verify with logs that no session or token from the attacker's infrastructure succeeds after revocation.
Rollback is usually about policy, not data: introduce Token Protection, CAE strict location enforcement and shorter lifetimes in report-only or pilot rings, keep break-glass accounts excluded, and widen scope only once sign-in logs show no unexpected blocks. For token design and lifetimes in depth, see the Token and Session Security Guide; for Conditional Access design, the Conditional Access Guide.
Choosing controls: small and large organisations
| Situation | Start with | Add next |
|---|---|---|
| Small organisation, SaaS only | Phishing-resistant MFA, managed devices for admins, IdP session revocation runbook | Short admin session lifetimes, alerts on new MFA methods |
| Microsoft 365 heavy estate | CAE, sign-in risk policies, Token Protection pilot for Exchange, SharePoint, Teams | Compliant-device requirement, strict location enforcement where egress is stable |
| Builds its own web applications | ASVS V3.3 cookie setup and V7 session management as release gates | DBSC registration for high-value sessions |
| Remote access appliances | Patch SLAs, session termination after every security patch | Move to identity-aware access with device posture checks |
Lessons from incidents
- Patching is not revocation: in CitrixBleed 2023, cookies leaked from NetScaler memory stayed valid after the fix, and organisations that patched without terminating sessions remained exposed.
- Endpoint malware defeats MFA by waiting: in the CircleCI breach, malware on an engineer's laptop stole a valid, 2FA-backed SSO session, which was then used to reach production and customer secrets.
- Developer sessions reach production: in the Bybit hack 2025, attackers used active AWS session tokens from a compromised developer machine, sidestepping a 12-hour MFA re-authentication requirement, and altered the Safe{Wallet} interface.
- Treating session tokens as less than credentials: each of these incidents ended with secrets, data or code reachable from a single replayed session. Session material needs the same inventory, lifetime limits and alerting as passwords and keys.
- Revoking only the IdP: SaaS apps that keep their own sessions stay open after the IdP reset; the response plan needs a per-app termination step.
Framework mapping
| Framework | Reference | Relevance |
|---|---|---|
| MITRE ATT&CK v20 | T1539, T1550.004, T1528, T1185, T1557, T1606.001 | Theft, reuse and forging of session material |
| NIST SP 800-53 Rev. 5 | SC-23 Session Authenticity, AC-12 Session Termination, AC-10 Concurrent Session Control, IA-11 Re-authentication, SI-4 System Monitoring | Session integrity, lifetime, step-up and monitoring |
| NIST CSF 2.0 | PR.AA-03, DE.CM-03, RS.MI-01 | Authentication, monitoring of personnel activity, containment by revocation |
| OWASP ASVS 5.0 | V3.3 Cookie Setup, V7 Session Management | Application-side cookie and session requirements |
Practitioner checklist
- Inventory session lifetimes for the IdP, VPN, cloud consoles and top SaaS apps, and set idle and absolute limits by risk.
- Pilot device-bound sessions (Token Protection, DBSC) for privileged users in report-only mode, then enforce.
- Require phishing-resistant MFA and compliant devices for admin and developer access.
- Enable continuous access evaluation and sign-in risk policies where the platform supports them.
- Write and test a revocation runbook covering IdP refresh tokens, per-app sessions and gateway sessions.
- Terminate all sessions after patching any VPN, ADC or IdP vulnerability that can leak tokens.
- Alert on session use from a new ASN, country or user agent, and on MFA method or device registrations that follow it.
- Gate releases on ASVS V3.3 and V7 cookie and session requirements, including no tokens in web storage.
- Remove local admin rights and deploy EDR on devices that hold privileged sessions.
Standards and references
- MITRE ATT&CK: Steal Web Session Cookie (T1539)
- MITRE ATT&CK: Use Alternate Authentication Material: Web Session Cookie (T1550.004)
- OWASP: Application Security Verification Standard 5.0
- OWASP: Session Management Cheat Sheet
- NIST: SP 800-53 Rev. 5
- Microsoft Learn: Token Protection in Microsoft Entra Conditional Access
- Google Chrome for Developers: Device Bound Session Credentials
- CISA: Guidance for Addressing Citrix NetScaler ADC and Gateway Vulnerability CVE-2023-4966
Related NHI Mgmt Group resources: Token and Session Security Guide · AiTM Phishing Guide · MFA Fatigue and Bypass Guide · Infostealer Threat Guide · Device Code Phishing Guide