Skip to content
Free lab

Account Takeover Lab

An account takeover does not look like a break-in — it looks like a login. Work a queue of sign-in risk events and make the call a risk-based auth engine makes in real time: allow, step-up to re-challenge, or block — then the right follow-up (notify, reset, revoke sessions, or open a case). The hard part is both edges: catch the impossible travel, the credential-stuffing replay, the MFA that was stripped by a help-desk pretext, the push-bombed approval and the adversary-in-the-middle session where MFA reads as satisfied — while not locking out the real traveller on a known device or the corporate-VPN egress that only looks like a new network. Stop the takeover without crying wolf.

The real job. More noise, a tighter clock.

0sPro

Sign-in risk queue

For each sign-in, make the gate call — allow / step-up / block — and the single most-urgent follow-up.

#1

dana@northwind.com

user
fromColumbus, US
priorColumbus, US
travel3 mi in 540 min · 0 mph
deviceknown
networkSpectrum Residential (known)
IP repclean
MFAsatisfied · app push
failed-before0
patternnormal

context: Routine morning sign-in from the usual home network and laptop.

GateFollow-up

#2

mike@northwind.com

user
fromAmsterdam, NL (datacenter)
priorDenver, US
travel4,900 mi in 2 min · 147,000 mph — impossible
devicenew
networkOVH SAS (hosting) (new)
IP repdatacenter
MFAnot-prompted · app push
failed-before412
patterncredential-stuffing

context: 412 failed password attempts in two minutes from a hosting IP, then one success — classic credential-stuffing replay.

GateFollow-up

#3

priya@northwind.com

user
fromSingapore, SG
priorNew York, US
travel9,530 mi in 18 min · 31,767 mph — impossible
devicenew
networkDigitalOcean (new)
IP repdatacenter
MFAnot-prompted · app push
failed-before0
patternnormal

context: A sign-in from Singapore 18 minutes after a legitimate one in New York — the user is still actively working in NY.

GateFollow-up

#4

sam@northwind.com

user
fromKyiv, UA
priorAustin, US
travel5,900 mi in 45 min · 7,867 mph — impossible
devicenew
networkM247 (hosting) (new)
IP repdatacenter
MFAdisabled-recently · none (removed 6 min ago)
failed-before0
patternnormal

context: The account’s MFA was removed via a help-desk call six minutes ago, then a sign-in arrives from a new device and hosting network abroad.

GateFollow-up

#5

lee@northwind.com

user
fromColumbus, US
priorColumbus, US
travel2 mi in 1200 min · 0 mph
devicenew
networkSpectrum Residential (known)
IP repclean
MFAnot-prompted · app push
failed-before0
patternnormal

context: Correct password from the usual home network, but on a brand-new, never-seen device. MFA has not been completed this session.

GateFollow-up

#6

jordan@northwind.com

user
fromNew York, US
priorLondon, UK
travel3,460 mi in 540 min · 384 mph
deviceknown
networkVerizon Wireless (new)
IP repclean
MFAsatisfied · app push
failed-before0
patternnormal

context: Yesterday London, today New York — on the user’s own known device, over a clean mobile carrier, with MFA satisfied.

GateFollow-up

#7

chris@northwind.com

user
fromLagos, NG
priorChicago, US
travel6,200 mi in 2600 min · 143 mph
devicenew
networkBulletproof Host LLC (new)
IP repknown-malicious
MFAnone-enrolled · none
failed-before0
patternnormal

context: Correct password on the first try from an IP on the threat-intel known-bad list; the account never enrolled MFA.

GateFollow-up

#8

ravi@northwind.com

user
fromAshburn, US (egress)
priorChicago, US
travel590 mi in 20 min · 1,770 mph — impossible
deviceknown
networkNorthwind Cloud VPN (gw-us-east) (corp-vpn)
IP repdatacenter
MFAsatisfied · app push
failed-before0
patternnormal

context: Appears to come from a datacenter 590 miles away on a "new" ASN — but it is the company’s own cloud VPN concentrator the user just connected to.

GateFollow-up

#9

taylor@northwind.com

user
fromReykjavik, IS
priorBoston, US
travel2,600 mi in 1440 min · 108 mph
devicenew
networkTor exit relay (new)
IP reptor-exit
MFAnot-prompted · app push
failed-before3
patternpassword-spray

context: One of 60+ accounts across the tenant hit with the same common password this hour; this account matched. Source is a Tor exit.

GateFollow-up

#10

noah@northwind.com

user
fromPortland, US
priorPortland, US
travel6 mi in 2880 min · 0 mph
devicenew
networkBlue Bottle Guest Wi-Fi (new)
IP repclean
MFAnot-prompted · app push
failed-before0
patternnormal

context: New laptop on an unfamiliar public Wi-Fi in the user’s home city; clean IP, no velocity, MFA not yet completed.

GateFollow-up

#11

erin@northwind.com

user
fromSeattle, US
priorSeattle, US
travel1 mi in 600 min · 0 mph
deviceknown
networkComcast Residential (known)
IP repclean
MFAdowngraded · SMS OTP (phone changed 2 days ago)
failed-before0
patternnormal

context: Known device and home network, but MFA fell back from the hardware key to SMS OTP — on a phone number that was changed two days ago.

GateFollow-up

#12

admin-kai@northwind.com

admin
fromDenver, US
priorDenver, US
travel4 mi in 900 min · 0 mph
devicenew
networkCenturyLink Residential (known)
IP repclean
MFAsatisfied · app push
failed-before0
patternnormal

context: A privileged admin signs in from home on a brand-new workstation; clean network, MFA satisfied.

GateFollow-up

#13

morgan@northwind.com

user
fromFrankfurt, DE (datacenter)
priorSeattle, US
travel5,100 mi in 3 min · 102,000 mph — impossible
devicenew
networkHetzner (hosting) (new)
IP repdatacenter
MFAnot-prompted · app push
failed-before740
patterncredential-stuffing

context: 740 password attempts in three minutes from a hosting IP — and every single one FAILED. No success.

GateFollow-up

Stop takeovers · don't lock out real users

Call each sign-in, then grade. So far 0/13 fully called, 0/13 gate calls set, 3 benign · 6 threat.

How it is scored

Each sign-in: 2 points for the gate call, 1 for the follow-up.

Blocking a legitimate user (a traveller, a corporate-VPN egress) and allowing a real takeover each take an extra hygiene penalty.

Impossible travel is derived from distance ÷ time (over 600 mph is physically impossible). Harder tiers add subtler signals and traps (AiTM with MFA “satisfied”, push-bombing, VPN-POP pseudo-travel).

Live arena

4 active
adversary kill-chain1/4
iam-eng-rao11%
soc-analyst-kim2%
iam-eng-you (you)0%
detection-dana0%

adversary staging…

TL;DR

What this lab is

  • A free, browser-based account-takeover (ATO) triage lab: work a queue of ~20 sign-in risk events and make the real-time gate call — allow, step-up (re-challenge), or block — plus the single most-urgent follow-up.
  • Signals across the queue: impossible travel, new device, new or corporate-VPN network, IP reputation (datacenter / Tor / known-malicious), credential-stuffing velocity, password spray, and MFA state (satisfied, not-prompted, downgraded, disabled, or approved-after-push-bombing).
  • You are scored on getting the gate call right while NOT locking out legitimate users — blocking a real traveller or a corporate-VPN egress carries a hygiene penalty, and so does allowing a real takeover through.
  • Follow-ups are matched to the actual compromise: notify the user, force a password reset, revoke live sessions & tokens, or open an IR case — a blocked stuffing run with zero successful guesses needs no reset, while a stolen session token must be revoked.
  • All travel is judged deterministically (distance ÷ time vs. a 600 mph line) against fixed snapshot values, and after grading every event explains why the right call is right.

Frequently asked questions

What is the Account Takeover Lab?

A free, in-browser exercise in risk-based authentication. For each sign-in event you read the signals — geo and travel time, device and network, IP reputation, login velocity, attack pattern, and MFA state — and decide the gate response (allow, step-up re-challenge, or block) and the correct follow-up (notify the user, force a password reset, revoke sessions and tokens, or open an incident case). You are scored on catching real takeovers without blocking legitimate users.

How is it graded?

Each event has one correct gate decision (worth 2 points) and one correct follow-up (worth 1). Two mistakes carry an extra hygiene penalty beyond the lost points: blocking a legitimate user — a real traveller on a known device, or a corporate-VPN egress that mimics new-ASN or impossible travel — and allowing a genuine takeover through. A perfect run stops every attack while locking out no one and matches each follow-up to the actual compromise.

Does it connect to a real identity provider?

No. Nothing is uploaded and no account is touched. The sign-in events are authored, realistic risk-signal snapshots bundled with the page, and every judgement — including impossible travel — is derived deterministically from fixed values (distance, time since last login, failed-attempt counts) so the queue never drifts against the clock. It runs entirely in your browser: no account, no install, nothing sent anywhere.

Who is it for?

IAM and identity engineers tuning risk-based / conditional-access policies, SOC analysts triaging sign-in risk and ATO alerts, and anyone prepping for a security interview who wants to feel why impossible travel, credential stuffing, password spray, MFA removal, push-bombing and adversary-in-the-middle are blocks — and why a traveller with a hardware key, a corporate-VPN egress, or a new device that completed MFA is not.

🎉 New here? Use code WELCOME10 for 10% off any plan at checkout
Account Takeover Lab — Free Interactive ATO Triage Trainer · PlayCISO