Cybrary ForgeCYBRARY / FORGE

Attack playbook

Every attack lab on the estate, in the order a real intrusion runs them. Each stage names the machines to point it at, the steps inside it, and what to look for on the wire. Work top to bottom to walk one intrusion end to end, or drop into any stage on its own.

28 stages

  1. 01

    Reps: Knocking On Every Door

    recon
    beginner
    linux

    One address touched every machine on the estate in under a minute. Read the capture, tell a half-open scan from a real connection, list what actually answered, and say which finding matters most.

    Find what is listening before touching anything.

    Target: Any workstation · Every server on the subnet

    1. 1.Addresses sweptdiscovery · T1018ICMP, Echo (ping) request
    2. 2.Ports probeddiscovery · T1046[SYN], [RST, ACK], Win=1024
      alerts
    3. 3.Versions grabbed off what answereddiscovery · T1046SSH-2.0-OpenSSH, Microsoft SQL Server, Kubernetes API server
    4. 4.Scanner containedremediation · T1046
  2. 02

    Reps: Dropped In Clear

    initial access
    beginner
    linux

    Someone uploaded a file to the estate's FTP server. Read the capture, recover the account and password the transfer used, name the file that landed, and close the clear-text path without stopping the business transfer.

    A clear-text upload hands over an account name and password on the wire.

    Target: File transfer server

    1. 1.Control session openedinitial-access · T1071.002220 (vsFTPd 3.0.5), USER, PASS
    2. 2.File pushed to the servercollection · T1105STOR, payroll-export.csv, 226 Transfer complete
      alerts
    3. 3.Clear-text path closedremediation · T1071.002
  3. 03

    Reps: Bound And Browsing

    recon
    intermediate
    linux

    An ordinary account bound to the directory over LDAP and walked the whole tree. Read the capture, name the account and the distinguished name it bound with, work out what it read, and cut anonymous and over-broad reads without breaking sign-in.

    A plain directory bind reads the whole staff list, groups and service accounts.

    Target: Domain controller · Directory server

    1. 1.Simple bind on port 389credential-access · T1040bindRequest, simple, CN=Users
      alerts
    2. 2.Whole subtree readdiscovery · T1087.002wholeSubtree, searchResEntry, servicePrincipalName
      alerts
    3. 3.Reads narrowed and signing requiredremediation · T1087.002
  4. 04

    Reps: Mounted In The Open

    initial access
    intermediate
    windows

    A workstation mounted a finance share it should never have reached. Read the capture, name the account in the session setup, work out how it found the share, and tighten the permissions without cutting off the team that needs it.

    Shares reachable by the wrong group are the quietest way in.

    Target: File server

    1. 1.Session set up on the file serverlateral-movement · T1021.002NTLMSSP_AUTH, Session Setup, 445
    2. 2.Shares listed over IPC$discovery · T1135IPC$, NetShareEnumAll, ADMIN$
      alerts
    3. 3.Finance share mounted and readcollection · T1039Tree Connect, Finance, Budget FY26.xlsx
      alerts
    4. 4.Permissions tightenedremediation · T1039
  5. 05

    Reps: Knocking On 3389

    initial access
    intermediate
    windows

    A remote desktop session was opened to a server that should never accept one. Read the capture, pull the user name out of the connection request, decide whether the session succeeded, and close remote desktop down to the jump host only.

    The remote desktop handshake names the user before anyone signs in.

    Target: Remote access server · Jump host

    1. 1.Connection request seenlateral-movement · T1021.001mstshash=, TPKT, 3389
      alerts
    2. 2.Session establishedlateral-movement · T1021.001X.224 Connection Confirm, CredSSP
    3. 3.Remote desktop narrowedremediation · T1021.001
  6. 06

    Reps: Roast and Forge

    credential access
    advanced
    windows

    A service account has a short password. Ask the KDC for its ticket, crack it offline, then use the recovered password to reach a database — and prove a golden ticket forged before the fix stops working once krbtgt is rolled a second time.

    Service accounts with short passwords give them up from a ticket.

    Target: Domain controller · Database server · Web server

    1. 1.Service principal names enumerateddiscovery · T1558.003svc-sql
    2. 2.TGS cracked offlinecredential-access · T1558.003
    3. 3.krbtgt rolled, golden ticket diesremediation · T1558.001
  7. 07

    Reps: Certified Pre-Owned

    privilege escalation
    advanced
    windows

    A VPN rollout cloned a certificate template and left it open: any domain user may enroll, the requester names the subject, and nobody approves it. Ask the authority for a certificate in a domain administrator's name, log on with it, then work out which single setting made it possible.

    An open template issues a certificate in an administrator's name.

    Target: Certificate authority

    Timeline· 30 minute run

    • 0 min inVPN rollout ticket lands
      message
    • 6 min inCertificate issued in an administrator's name
      attack
      key
      expect: Certificate issued with a requester-supplied subject
    • after Certificate issued in an administrator's nameLogon with the issued certificate
      attack
      key
      expect: Smart-card logon by an account that has no card
    • when the learner finishes harden-templateTemplate locked down
      gate
    • on your cueSecond template found open
      world
    1. 1.Ordinary domain accountinitial-access · T1078.002
    2. 2.Published templates enumerateddiscovery · T1087.002ForgeVPNUser
      alerts
    3. 3.Certificate requested for another accountprivilege-escalation · T1649Event 4887, ForgeVPNUser
      alerts
    4. 4.Logon with the issued certificatelateral-movement · T1550
      alerts
    5. 5.Template closedremediation · T1649
  8. 08

    Reps: Ticket To Ride

    privilege escalation
    advanced
    windows

    Request a service ticket, crack the service account out of it, then use the account to impersonate a user on the application server. Finish by pushing the estate's Kerberos risk score out of the red.

    A cracked service account becomes an impersonated session.

    Target: Domain controller · Application server

    1. 1.Service accounts enumerateddiscovery · T1558.003servicePrincipalName, MSSQLSvc
    2. 2.Ticket cracked offlinecredential-access · T1558.003RC4-HMAC, svc-sql
      alerts
    3. 3.Impersonation on the application serverlateral-movement · T1550.003svc-sql, FinanceDW
      alerts
    4. 4.Risk score driven downremediation · T1558.003
  9. 09

    Reps: DCSync and Back

    credential access
    advanced
    windows

    A helpdesk account carries the DS-Replication-Get-Changes-All right by mistake. Replicate the krbtgt secret out of the directory, then remove the right and prove the same request now refuses.

    With replication rights, every secret in the directory comes out at once.

    Target: Domain controller

    Timeline· 25 minute run

    • 0 min inNight shift hands over
      message
    • 5 min inReplication pulled by a workstation
      attack
      key
      expect: DS-Replication-Get-Changes-All granted to a non-controller
    • when the learner finishes remove-replication-rightDelegation removed
      gate
      key
    • after Delegation removedAttacker tries the same pull again
      attack
      expect: The controller refuses — the learner proves the fix held.
    • on your cueA second account has the same right
      world
    1. 1.Delegation surveyeddiscovery · T1069.002
    2. 2.GetNCChanges acceptedcredential-access · T1003.006krbtgt, DRSUAPI
      alerts
    3. 3.Right removed and krbtgt rolledremediation · T1003.006
  10. 10

    Reps: Inside The Cluster

    lateral movement
    advanced
    linux

    The shop cluster runs six workloads across two worker nodes. Read the capture, follow a request from the front end through to the cache, work out which container is running privileged, and say what an escape from it would reach.

    The container estate is a second network with its own accounts.

    Target: Cluster control plane · Worker nodes · Image registry

    Timeline· 40 minute run

    • 0 min inCluster settles into normal traffic
      world
    • 8 min inFront-end pod compromised
      attack
      key
      expect: Outbound connection from a pod that only serves traffic
    • after Front-end pod compromisedAttacker works the cluster
      agent
      key
      expect: Learner spots the secret read against the control plane and isolates the pod.
    • when the learner contains shop-frontendPod isolated
      gate
    • on your cueAttacker turns noisy
      world
    1. 1.Nodes report in to the control planediscovery · T16136443, 10250, PATCH /api/v1/nodes
    2. 2.Container to container inside the overlaydiscovery · T1613VXLAN, 10.244.0.0/16, orders.shop.svc.cluster.local
    3. 3.A privileged workload on a worker nodeprivilege-escalation · T1611privileged, ops, batch-runner
      alerts
    4. 4.Image pulled with a shared registry logincollection · T1552.007Authorization: Basic, registry-01, regcred
  11. 11

    Reps: Everything In The Open

    credential access
    advanced
    linux

    Someone with an ordinary cluster identity listed every secret the estate holds — database connection strings, a live API key, the registry login and a service-account token — and the same sweep picked up a management card still on its factory password. Work out what they could reach, then close it.

    Secrets scattered across layers reuse the same passwords.

    Target: Cluster control plane · Vault · Management card

    1. 1.Unauthenticated probe of the API serverdiscovery · T1133system:anonymous, 6443, GET /version
      alerts
    2. 2.Every secret listed at oncecredential-access · T1552.007SecretList, payments-db, stripe-live
      alerts
    3. 3.Credentials reused off the clusterlateral-movement · T1078svc-sql, builder, 1433
    4. 4.Secrets sealed and bindings scopedremediation · T1552.007
  12. 12

    Reps: Forest Fire

    lateral movement
    expert
    windows

    A partner forest trusts yours with SID filtering switched off. Forge a ticket in the partner realm carrying Enterprise Admins in SID history, land as an administrator in your forest, then turn SID filtering on and prove the same ticket is dropped at the trust boundary.

    A trust with filtering off carries borrowed privilege across forests.

    Target: Domain controller · Partner forest controller

    1. 1.Trust surveyeddiscovery · T1482
    2. 2.Foreign ticket presentedlateral-movement · T1550.003
      alerts
    3. 3.SID filtering enforcedremediation · T1482
  13. 13

    Reps: Across The Forest

    lateral movement
    expert
    windows

    A partner forest trusts yours, and filtering is off. Use the trust to land in the home realm carrying borrowed privilege, spot it in the logs, then turn filtering back on and prove the same move now fails.

    The same route, walked end to end, then closed.

    Target: Partner forest controller · Federation server

    1. 1.Trusts mappeddiscovery · T1482nltest /domain_trusts, TDO
    2. 2.Borrowed privilege carried acrosslateral-movement · T1134.005S-1-5-21-…-519, SID history
      alerts
    3. 3.Filtering restoredremediation · T1482
  14. 14

    Reps: Certificate Authority Under Attack

    impact
    advanced
    windows

    Request a certificate through the risky VPN template, revoke a legitimate certificate to break somebody's login, then close the abuse path, restore the revoked user, and drive the authority's live risk score down to a workable number.

    Whoever reaches the authority can revoke everyone else's certificates.

    Target: Certificate authority

    1. 1.Risk score readdiscovery · T1654
    2. 2.Certificate issued and one revokedprivilege-escalation · T1649
      alerts
    3. 3.Authority closed and score fallsremediation · T1649
  15. 15

    Reps: Through The Front Door

    initial access
    advanced
    linux

    Nobody was phished and nothing was guessed. The intruder walked in through the public portal using a flaw in the management path, then read every saved password on the box. Trace the first request, isolate the edge, and close the path before the credentials get used inside.

    Most intrusions start at an internet-facing service, not an inbox.

    Target: Public portal · Edge appliance

    Timeline· 35 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 1 min inVendor advisory
      message
    • 5 min inPortal exploited
      attack
      key
      expect: A request to the management path with traversal in it, answered 200
    • after Portal exploitedIntruder works from the edge
      agent
      key
      expect: Learner isolates the portal and rotates what was stored on it.
    • 14 min inStored credentials read
      world
      key
      expect: Bulk profile and configuration reads right after the exploit
    • when the learner contains web-01Portal isolated
      gate
    • on your cueA stolen account signs in inside
      world
    1. 1.Find the first request that workedinitial-access · T1190/manage/, path traversal, 443
      alerts
    2. 2.Follow the credential theftcredential-access · T1555.003Login Data, config, service account
      alerts
    3. 3.Isolate the edgecontainment · T1190isolate, web-01
    4. 4.Patch, rotate and rebuildrecovery · T1555patch, rotate, rebuild
  16. 16

    Reps: The Gate They Left Open

    initial access
    advanced
    linux

    Your remote-access gateway answers a management request that carries no session at all — the flaw the national catalog lists as actively exploited. Somebody used it an hour ago. Work back from the gateway logs to the script they ran and the service they left behind, then stop the run before the file servers start turning over.

    Authored from the live known-exploited catalog: an edge authentication bypass, a shell payload and a service left behind.

    Target: Remote-access gateway · File server

    Timeline· 40 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 1 min inAdvisory lands
      message
    • 4 min inManagement path answered without a session
      attack
      key
      expect: A management endpoint returning 200 to a request carrying no session
    • after Management path answered without a sessionOperator works the gateway
      agent
      key
      expect: Learner confirms the bypass, finds the service left behind, isolates the gateway and blocks the operator before the share is encrypted.
    • 12 min inA service appears that nobody requested
      world
      key
      expect: A unit file created outside change control and enabled by hand
    • when the learner contains gw-01Gateway isolated
      gate
    • on your cueOperator reaches for the file server
      world
    1. 1.Prove the bypass from the gateway loginitial-access · T1190gw-01, 443, no session
      alerts
    2. 2.Follow the shell that ran nextexecution · T1059.004update.sh, cdn.updates-cache.example, nsroot
      alerts
    3. 3.Find the service left behindpersistence · T1543.002estate-telemetry.service, systemctl enable, persistence
      alerts
    4. 4.Isolate the gateway and block the operatorcontainment · T1190isolate, gw-01, block
    5. 5.Patch, rebuild and prove it tookrecovery · T1543.002patch, rebuild, restore
  17. 17

    Reps: Quiet On 443

    command and control
    advanced
    windows

    One workstation is checking in with someone every sixty seconds, and it looks exactly like a content delivery network. When you close the web route it moves the same conversation into DNS lookups. Find the beacon in ordinary traffic, prove it, and cut both channels.

    A beacon hides in ordinary web traffic and falls back to DNS when the web route closes.

    Target: Workstation · Proxy · Resolver

    Timeline· 35 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 1 min inTip from the proxy team
      message
    • 4 min inBeacon starts checking in
      attack
      key
      expect: Fixed-interval HTTPS requests with a constant response size
    • after Beacon starts checking inOperator works the channel
      agent
      key
      expect: Learner isolates the workstation and blocks both the web and DNS route.
    • 14 min inChannel moves into DNS
      world
      key
      expect: TXT queries with encoded labels and steady response sizes
    • when the learner contains wks-09Workstation isolated
      gate
    • on your cueA second machine starts beaconing
      world
    1. 1.Find the rhythm in the web trafficcommand-and-control · T1071.001cdn.updates-cache.example, 443, 60s interval
      alerts
    2. 2.Follow the fallback into DNScommand-and-control · T1071.004TXT, tun.updates-cache.example, 53
      alerts
    3. 3.Isolate the workstationcontainment · T1562isolate, wks-09
    4. 4.Close both routes and restorerecovery · T1071block, sinkhole, restore
  18. 18

    Reps: Hiding In The Noise

    command and control
    expert
    windows

    Nothing looks wrong. The traffic is all protocols this estate uses every day, to destinations that resolve, on ports that are meant to be open. An operator is inside anyway. Find them in the ordinary traffic and confirm what you have before you pull a single machine off the network — this rep scores the detection, not the cleanup.

    Everything the operator touches is allowed traffic; the room is scored on detecting and confirming it before containment.

    Target: Workstation · Proxy · File share

    Timeline· 45 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 1 min inHunt tasking
      message
    • 3 min inOperator already has a foothold
      attack
      key
      expect: Ordinary protocols carrying a rhythm and a volume the baseline does not have
    • after Operator already has a footholdOperator stays inside the noise
      agent
      key
      expect: Learner confirms a real incident from the traffic evidence before isolating, then contains.
    • 16 min inBaseline drift becomes measurable
      world
      key
      expect: Volume drift on a host with an otherwise normal protocol mix
    • when the learner logs incident-confirmedRoom confirms a real incident
      gate
    • on your cueLeadership asks for a machine to be pulled
      world
    1. 1.Compare the host against its own baselinediscovery · T1082wks-14, baseline, drift
      alerts
    2. 2.Find the rhythm inside ordinary web trafficcommand-and-control · T1071.001interval, constant size, 443
      alerts
    3. 3.State the finding on the recorddetection · T1071confirm, incident-confirmed, evidence
      alerts
    4. 4.Then contain, in the right ordercontainment · T1041isolate, block, wks-14
  19. 19

    Reps: Signed And Trusted

    defense evasion
    advanced
    windows

    The endpoint console shows nothing but Microsoft-signed processes, and the machine is still calling out every few minutes. The payload never ran under its own name — a trusted Windows binary was asked to load it. Work out which signed process is carrying it, prove the module it loaded, and cut the run before the operator moves on.

    The payload never runs under its own name: a signed Windows binary loads it, so the process tree looks clean.

    Target: Workstation · Proxy

    Timeline· 40 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 1 min inTasking from the network team
      message
    • 4 min inA module is written where nothing should be written
      world
      key
      expect: A DLL written to a world-writable path outside any installer
    • after A module is written where nothing should be writtenOperator works from behind the signed binary
      agent
      key
      expect: Learner names rundll32 as the carrier, ties it to the module on disk, isolates wks-22 and blocks the callback destination.
    • when the learner contains wks-22Workstation isolated
      gate
    • on your cueOperator tries the next machine
      world
    1. 1.Find the signed process that is doing the talkingdefense-evasion · T1218.011rundll32.exe, update.dll, wks-22
      alerts
    2. 2.Prove the module, not the processexecution · T1218.011unsigned, C:\Users\Public, image load
      alerts
    3. 3.Tie the callback to the same processcommand-and-control · T1071.001cdn.telemetry-sync.example, 443, beacon
      alerts
    4. 4.Isolate the machine and block the destinationcontainment · T1218.011isolate, wks-22, block
    5. 5.Clean and prove it tookrecovery · T1218.011rebuild, restore, clean
  20. 20

    Reps: Lights Off

    defense evasion
    advanced
    windows

    The endpoint agent on a server stopped reporting and the security log has a gap. Nothing alerted, because the thing that alerts was turned off first. Work the absence: prove the tampering from what is left, isolate the machine and get your visibility back.

    The agent is stopped and the log cleared before anything worth alerting on happens.

    Target: Member server · Log collector · Endpoint console

    Timeline· 30 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 1 min inNote from the platform team
      message
    • 5 min inAgent stopped and log cleared
      attack
      key
      expect: Service control calls over RPC and a cleared security log
    • after Agent stopped and log clearedIntruder works in the dark
      agent
      key
      expect: Learner isolates app-02 before the intruder reaches a second machine.
    • 12 min inThe gap is measurable
      world
      key
      expect: A silent machine against a baseline that says it should be talking
    • when the learner contains app-02Server isolated
      gate
    • on your cueAnother log clears
      world
    1. 1.Notice the machine went silentdetection · T1562.001app-02, missing heartbeat, silent host
      alerts
    2. 2.Prove the tampering from what is leftdefense-evasion · T1070.006svcctl, EvtClearLog, 1102
      alerts
    3. 3.Isolate before the next machinecontainment · T1021isolate, app-02
    4. 4.Restore visibility and alert on the gaprecovery · T1562restore, heartbeat, tamper protection
  21. 21

    Reps: The Bot They Said Yes To

    credential access
    advanced
    windows

    A helpful-looking productivity app asked one person in Finance for permission, and they gave it. No password was stolen and nobody logged in from a strange country. Since then the app has been reading channels, messages and attached files across the whole workspace on its own token. Find the grant, measure what it read, and take the access away without breaking the twelve legitimate apps sitting beside it.

    Authored from the live watch: a consented application holds its own token, so no password is ever stolen.

    Target: Collaboration workspace · Identity tenant

    Timeline· 40 minute run

    • 0 min inOrdinary workspace day
      world
    • 2 min inFinance asks a question
      message
    • 5 min inThe consent record
      world
      key
      expect: A new application holding tenant-wide read, consented by a standard user
    • after The consent recordThe application keeps reading
      agent
      key
      expect: Learner finds the grant, scopes what the token read from the audit log, revokes that application only, and leaves the approved applications working.
    • 14 min inThe read is bigger than Finance
      world
      key
      expect: One application token reading far outside the consenting user's own access
    • when the learner logs app-revokedApplication revoked
      gate
    • on your cueThe token is used to pull attachments out
      world
    1. 1.Find the grant behind the readingcredential-access · T1528workspace-insights, files.read.all, chat.read.all
      alerts
    2. 2.Measure what the token actually readcollection · T1213app token, paging, 84 channels
      alerts
    3. 3.Separate this application from the approved onesdiscovery · T1213approved apps, admin consent, scope
    4. 4.Revoke the grant and kill the tokencontainment · T1528revoke, service principal, refresh token
    5. 5.Close the door that let one person open the tenantrecovery · T1528consent policy, admin consent, verified publisher
  22. 22

    Reps: Someone Else's Computer

    impact
    advanced
    windows

    A token from a workstation is being used against the company's cloud storage from somewhere else entirely. No server was touched and nothing on the estate broke — the data simply left. Spot the token in use, cut it, and prove what was taken.

    A stolen token takes the data straight out of the cloud; no estate server is touched.

    Target: Workstation · Cloud object store

    Timeline· 35 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 2 min inAlert from the cloud console
      message
    • 4 min inToken taken off a workstation
      attack
      key
      expect: Saved credential stores read on the workstation
    • after Token taken off a workstationBroker works the storage
      agent
      key
      expect: Learner revokes the token and isolates the workstation before the pull finishes.
    • 13 min inBulk download from the object store
      world
      key
      expect: A volume spike far outside the machine's recorded traffic
    • when the learner contains wks-11Workstation isolated
      gate
    • on your cueA second token appears
      world
    1. 1.Match the token to the machinecredential-access · T1552.001wks-11, token, credential store
      alerts
    2. 2.Catch the bulk readcollection · T1530storage.cloud.example, 443, 184 MB
      alerts
    3. 3.Revoke and isolatecontainment · T1078.004revoke, isolate, wks-11
    4. 4.Prove what left and shorten the tokensrecovery · T1567.002access log, short-lived token, restore
  23. 23

    Reps: One Machine At A Time

    lateral movement
    expert
    windows

    An intruder on a single workstation is working its way towards a domain controller, one remote session at a time. Each hop is small and ordinary-looking. Follow the chain, cut it at the right machine and stop it reaching the controller.

    A live intruder hops machine to machine while the room tries to cut the chain.

    Target: Workstations · Member servers · Domain controller

    Timeline· 45 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 3 min inOne workstation is taken
      attack
      key
      expect: A workstation opening sessions to machines it never talks to
    • after One workstation is takenIntruder moves machine to machine
      agent
      key
      expect: Learner cuts the chain before the intruder reaches a controller.
    • 14 min inA second machine answers a remote session
      world
      key
      expect: Remote desktop between two machines with no history of it
    • when the learner contains wks-12Chain cut
      gate
    • after Chain cutIntruder tries the next hop
      attack
      expect: The hop is refused — the machine it worked from is isolated
    • on your cueIntruder goes straight for the controller
      world
    1. 1.Put the hops in orderdiscovery · T1018wks-12, 3389, 445
      alerts
    2. 2.Catch the remote session between two machineslateral-movement · T1021.001mstshash, 3389, new pair
      alerts
    3. 3.Stop it before the controllercontainment · T1562isolate, block, wks-12
    4. 4.Prove the chain is deadrecovery · T1562refused, baseline, drift
  24. 24

    Reps: Out The Side Door

    impact
    advanced
    windows

    Nothing breaks, nothing locks, nothing alarms. An intruder is reading shares, collecting them into one archive and uploading it a chunk at a time. Find the collection before the upload finishes, isolate the staging machine and block the route out.

    Quiet collection and a chunked upload — damage without anything breaking.

    Target: Workstation · File shares · Outbound edge

    Timeline· 35 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 1 min inTip from the network team
      message
    • 6 min inCollection starts
      attack
      key
      expect: One machine reading many shares it has never opened
    • after Collection startsIntruder collects and ships
      agent
      key
      expect: Learner spots the staging and blocks the upload before it completes.
    • 18 min inFirst upload leaves the estate
      attack
      key
      expect: Large outbound transfer to a host the estate has never contacted
    • when the learner contains wks-07Staging machine isolated
      gate
    • after Staging machine isolatedIntruder tries to finish the upload
      attack
      expect: The upload is refused — the route out is blocked
    • on your cueIntruder stops being patient
      world
    1. 1.Find the machine reading everythingcollection · T1039wks-07, 445, share reads
      alerts
    2. 2.Find the staged archivecollection · T1074.001staging, .7z, write bursts
    3. 3.Catch the uploadexfiltration · T1567443, outbound, chunked upload
      alerts
    4. 4.Isolate and block the route outcontainment · T1562isolate, block, wks-07
  25. 25

    Reps: Before The Note

    impact
    advanced
    windows

    A ransomware crew is already inside and heading for the backups. You have the time between the first share read and the first encrypted file: find the machine it holds, isolate it, block it and get the estate back before the note lands.

    Backups go first, encryption second; the gap between them is the whole rep.

    Target: File server · Backup server

    Timeline· 40 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 0 min inService desk note
      message
    • 5 min inCrew lands on a file server
      attack
      key
      expect: Share reads from an account that has never touched Finance
    • after Crew lands on a file serverRansomware crew works the estate
      agent
      key
      expect: Learner isolates the file server and blocks the crew before encryption starts.
    • 16 min inBackup server answers a delete
      world
      key
      expect: Shadow copy deletion and backup share writes in the capture
    • when the learner contains fs-01File server isolated
      gate
    • after File server isolatedCrew tries the encryption anyway
      attack
      expect: The attempt is refused — the machine is off the network
    • on your cueCrew comes back on a second machine
      world
    1. 1.Compare the file server to its recordingdiscovery · T1083fs-01, 445, baseline drift
      alerts
    2. 2.Catch the backup deletionimpact · T1490vssadmin, shadow copy, backup share
      alerts
    3. 3.Isolate the machine the crew holdscontainment · T1562isolate, fs-01
    4. 4.Block the crew and restorerecovery · T1562block, restore, offline backup
  26. 26

    Reps: Hold The Line

    harden
    advanced
    windows

    An attacker is already on a jump host and working outward while you watch. Catch the breach in the capture, isolate the machine it holds, block it at the edge and show the estate back at its recorded baseline before the run ends.

    Catch a live attacker mid-run, isolate it and prove the estate is back to baseline.

    Target: Jump host · File server · Domain controller

    Timeline· 35 minute run

    • 0 min inEstate at its recorded baseline
      world
    • 0 min inNight shift hands over
      message
    • 4 min inAttacker lands on the jump host
      attack
      key
      expect: Outbound sessions from the jump host to machines it never talks to
    • after Attacker lands on the jump hostAttacker works the estate
      agent
      key
      expect: Learner isolates the jump host and blocks the attacker.
    • when the learner contains jump-01Jump host isolated
      gate
    • after Jump host isolatedAttacker tries the same path again
      attack
      expect: The retry is refused — containment held
    • on your cueAttacker stops being careful
      world
    1. 1.Read the recorded baselinediscovery · T1046baseline, expected ports, packets per second
    2. 2.Spot the ports the jump host never spokediscovery · T1046jump-01, 389, 445
      alerts
    3. 3.Isolate the machine the attacker holdscontainment · T1562isolate, jump-01, containment
    4. 4.Block the attacker and restore the baselinerecovery · T1562block, restore, drift
  27. 27

    Reps: Issued To Whom

    harden
    advanced
    windows

    Someone used the certificate authority the way it was configured to be used, and walked out as a domain administrator. You have the issuance log, the directory and the logon records. Find the request, name the account it was really for, and scope who else could have done the same.

    Spot the issued certificate in the log after the fact.

    Target: Certificate authority

    1. 1.Suspicious privileged logoninitial-access · T1550
      alerts
    2. 2.Issuance log revieweddiscovery · T1654request 1043
      alerts
    3. 3.Template exposure scopeddiscovery · T1087.002
      alerts
    4. 4.Certificate revoked and account containedremediation · T1649
  28. 28

    Reps: Close The Authority

    harden
    expert
    windows

    The certificate authority is open in more than one way: a template anybody may enroll against, an enrollment agent anybody may become, a template ordinary users may edit, a flag that overrides every template, and web enrollment over plain HTTP. Close each one, prove the enrollment is refused afterwards, and keep the estate's real certificates working.

    Shut every abuse route without breaking sign-in.

    Target: Certificate authority

    1. 1.Authority revieweddiscovery · T1654EDITF_ATTRIBUTESUBJECTALTNAME2
      alerts
    2. 2.Open templates scoped downremediation · T1649
    3. 3.Authority flag clearedremediation · T1649
    4. 4.Web enrollment securedremediation · T1187
      alerts
    5. 5.Path proved deadremediation · T1649