Case study · Forensic incident response

Case study: a workstation taken over through remote-support tools, and the phishing that exposed it.

An online-sales business asked for forensic help after deceptive file-sharing emails went out from an accountant’s Google Workspace account. The account was the symptom. The investigation record showed that the accountant’s Windows workstation had been under remote control for three weeks through two legitimate support products, and that the phishing was sent from the workstation’s own signed-in browser. This anonymized account sets out what the evidence showed, how the two halves were tied together, and what the evidence could not settle.

Environment
One Windows workstation and one Google Workspace account at a California online-sales business
Dwell time
About three weeks from first remote access to detection
Evidence
KAPE triage collection with shadow copies, ScreenConnect and Windows Installer events, Google audit logs
Status
Preliminary report; workstation since reformatted, financial and legal determinations open

Starting condition

A phishing run was the first anyone saw of a three-week intrusion

On the day the incident was noticed, the accountant’s account sent a “shared a file for your review” message to about 55 recipients, inside and outside the business. Six colleagues clicked. The link pointed at the same web domain that, three weeks earlier, had served the file which started everything. Nobody had noticed that earlier event, because nothing on the workstation was built to notice it.

The engagement began as account abuse and became an endpoint investigation. A forensic triage collection of the workstation, including five historical volume shadow copies, was taken with KAPE, and the Google Workspace audit trail was reviewed alongside the application logs the remote-support software had left behind. The two timelines below are what that record supports.

Days are counted from the first observed endpoint event. Times are normalized to UTC in the case record because the workstation clock, the Google audit console and the investigators each displayed a different zone; the three-hour offset between endpoint and audit times was the first thing to resolve.

Figure 1 · Two lanes, one operator

The account abuse happened while the workstation was under remote control.

Workstation

  1. Lure downloadedDay 0 · signed FleetDeck installer inside
  2. Two ScreenConnect clientsDay 0 · remote commands within 15 minutes
  3. Nine executables pushedDays 12 to 21 · Run and RunElevated
  4. Operators connectedDays 22 and 23 · during the phishing

Google account

  1. Passkey removedDay 5 · recovery code to a personal mailbox
  2. Password-only sessionDay 19 · from the workstation’s own IPv6 address
  3. Phishing to ~55 recipientsDay 22 · sent copies deleted
  4. Account suspendedDay 22 · password reset, tokens revoked
Workstation and account events side by side, days counted from the first endpoint event. The Day 22 phishing fell inside a recorded remote-control session on the workstation.

How access was gained

Legitimate support software, installed by a lure, used as a backdoor

None of the tools involved is malware. That is what made the intrusion quiet.

The lure

An executable downloaded from an attacker-controlled web page landed in the user’s Downloads folder. Its download-origin metadata named the page; its Prefetch record shows it ran. It carried a valid vendor code signature and installed a remote-management agent, FleetDeck, in under 30 seconds. A valid signature says who published a file, not whether its installation was authorized.

Two ScreenConnect clients

Within fifteen minutes a ScreenConnect client was installed from a plain-HTTP URL and an operator labelled “Administrator” was issuing remote commands. That evening the same operator installed a second ScreenConnect client, giving the attackers two independent persistent channels in case one was found.

Nine executables pushed

Between Day 12 and Day 21 the ScreenConnect transfer log recorded nine further executables sent to the workstation with Run, RunElevated or RunSilentElevated requested, several of them more than once. The transfer and the request to run are confirmed. Whether each one executed, and what it did, could not be established from the surviving artifacts.

Why nothing alerted

The user’s account was a local administrator, so the installers needed no further prompt. There was no endpoint detection, no Sysmon and no retained process-creation logging, so no alert fired and no process lineage survived to show which program launched which.

The account side

Recovery abuse first, then a session that needed only the password

On Day 5 a sign-in with the account’s passkey failed, a recovery code was sent to the user’s personal mailbox, the passkey was removed and the security notifications were deleted within minutes. 2-step verification was not enforced on the account, so after that step the password alone was enough.

On Day 19 a new session appeared: Windows, Chrome, password-only. From then until containment it read business and security mail and deleted what it did not want seen. On Day 22, inside a 50-minute remote session on the workstation, the account prepared the phishing campaign, sent it in batches, deleted the sent copies, and a second operator later handled the replies and bounces.

How the attackers obtained the password is not proven. Three mechanisms fit the record and the evidence does not separate them: a password saved in the workstation’s browser profile and read through the remote-control session; the personal recovery mailbox being signed in on the same browser, which would have exposed the recovery code without any separate compromise; or a credential obtained somewhere else entirely. The user could not be reached for interview, so the first-hand account that might have settled it is unavailable.

Correlation

How the account abuse was tied to the workstation

Three independent observations converge. Each on its own would be suggestive; together they make remote operation of the signed-in browser the best-supported explanation.

  1. 01

    An exact IPv6 address match

    The suspicious Google session came from a temporary IPv6 address that the workstation still held in its deprecated-address list at collection time. A match on the office /64 prefix would only identify the network; a match on the full temporary address points at one host.

  2. 02

    Consistent device attributes

    The session’s platform and browser description matched the workstation, not a second device on the same network.

  3. 03

    Session overlap

    Every burst of mailbox activity on Day 22, from campaign preparation to deletion of bounces, fell inside a recorded ScreenConnect session on the workstation. The timing lines up to the minute once the three clocks are normalized.

  4. 04

    What it does not prove

    No keystroke-level record exists, so no individual email can be attributed to a specific operator action. Cookie theft, token replay and the exact login mechanism remain unproven. The case record labels this a high-confidence inference, not an observed fact.

Method

The evidence discipline the report was written to

A preliminary report written while the investigation is still open has to be honest about what kind of statement each finding is. Four labels do that work.

The same discipline applied to time. Windows events were displayed in the client’s local zone, Google audit events in the console’s display zone, and the two differed by three hours. Every time in the record carries its source display value and its UTC equivalent, with exact seconds kept where the source supplied them and approximate values marked as such.

LabelWhat it meansExample from this case
Direct observationVisible in command output captured during the investigationHosts file, proxy settings, listening services and DNS configuration on the workstation
Confirmed in the recordAn artifact-backed finding reported by the investigation, not re-verified from the raw artifact for this reportInstaller events, ScreenConnect connection and transfer logs, Google sign-in and Gmail audit entries
InferenceAn interpretation supported by relationships between observations, with a stated confidenceRemote operation of the signed-in browser; execution of the downloaded lure
UnresolvedEvidence does not yet establish the answerWhether financial systems were reached; what the nine executables did; how the password was obtained

Containment and what was lost

The known channels were closed. The original installation is gone.

On Day 22 the Google password was reset, every active session and token was revoked and the account was suspended; an attempt with the old password failed afterwards. Both ScreenConnect services were stopped and disabled rather than uninstalled, preserving them as evidence. The FleetDeck agent was removed once it was discovered. Live checks then found no running remote-management process and no established attacker connection.

After the investigation the workstation was disconnected from every network and later reformatted. That ends the attackers’ access to it, and it also ends any possibility of further acquisition: no full disk image or memory capture was taken, so the KAPE triage collection and its shadow copies are the only surviving endpoint evidence. The report records that trade-off plainly, together with the fact that the removal of FleetDeck and the rebuild happened without recorded times, operator or method.

What containment did not do is close the wider scope. The six colleagues who clicked, the user’s personal mailbox, the accounting platform that had been sending bank-detail change notices to the compromised inbox, the business bank, and the SMS-forwarding configuration at the telephony provider all remained open review items when the report was written.

Why the attack succeeded

Five conditions turned one download into three weeks of control

  • The user’s account was a local administrator, so a downloaded file could install two remote-management agents and their system services with no further prompt.
  • No application control or approved-software policy stopped commercial remote-management tools from being installed or from connecting out on unusual ports.
  • No endpoint detection, Sysmon or retained process-creation logging existed, so the installations and the later executable transfers raised no alert and left no process lineage.
  • 2-step verification was not enforced on the Google account, a password-only session was permitted, and account recovery routed to a personal mailbox outside the organization’s control.
  • Nothing monitored for new remote-access services, removal of sign-in factors, recovery changes or bulk outbound mail, so the intrusion was found only when recipients reacted to the phishing.

Legal and business follow-up

What the facts put on the client’s desk beyond the technical cleanup

An incident like this triggers duties that no amount of forensic work discharges. The report lists them as determinations for counsel; this is a summary, not legal advice.

  • A written legal hold over the triage collection, the Google exports, the ScreenConnect logs, the phishing messages and the rebuild records, because insurer, regulator and consumer claims were all reasonably foreseeable.
  • Prompt notice to the cyber-insurance carrier, whose policy will set notice windows and may require approved counsel and vendors.
  • Immediate notice to the business bank and an FBI IC3 complaint, because the mailbox had received bank-detail change notifications that had not yet been reconciled, and recovery of fraudulent transfers depends on speed.
  • A data-access assessment to decide whether California’s breach-notification statute, other states’ statutes, PCI DSS merchant obligations or tax-data rules apply, since a financial accountant’s mailbox routinely holds the data they cover.
  • A constraint in the other direction: California law restricts an employer from demanding access to an employee’s personal email account, so the personal recovery mailbox could be examined only with the user’s cooperation, and the user could not be reached.

Lessons

What other businesses can take from this incident

  • Remote-support software is a complete remote-access toolkit. Treat an unexpected FleetDeck, ScreenConnect, AnyDesk or similar installation as an incident, not as a help-desk artifact.
  • A phishing run from a staff mailbox is rarely the start of anything. Ask what device that mailbox was signed in on, and look there first.
  • A password-only session on an account that had a passkey is a finding in itself. Enforce 2-step verification and watch for factor removal and recovery changes.
  • Day-to-day accounts should not be local administrators, and some record of process creation should exist on every business workstation. Both would have changed this case.
  • Decide the evidence question before the rebuild question. A triage collection is better than nothing; an image is better than a triage collection.
  • Write preliminary findings with their evidentiary status attached. A report that says what it does not know is one a lawyer, an insurer and the next responder can use.

Boundary

What this case study does not publish

Client and user identities, hostnames, account and session identifiers, the delivery domain, attacker infrastructure, file names and hashes, and calendar dates are withheld or substituted. Days are numbered from the first endpoint event. Nothing here would let a reader find the client or reuse the attackers’ infrastructure.

The underlying case record is a preliminary forensic report prepared while the investigation was open. Its original artifacts were not re-examined for this page, and no attacker identity, malware family, financial loss or exfiltration volume is asserted here or there.

Common questions

Questions about this incident

Are FleetDeck and ScreenConnect malware?

No. Both are commercial remote monitoring and management products used by IT support teams every day, and the installer in this case carried a valid vendor signature. What made them dangerous was who installed them and why. An unexpected remote-management agent on a business machine should be treated as unauthorized access until someone can say who approved it.

Why did antivirus not catch this?

Because there was nothing for it to recognize. Signed, legitimate installers, run by a local administrator, create services exactly as they would in an authorized deployment. Catching this class of intrusion needs behavioral monitoring, process-creation logging and an approved-software baseline, none of which existed on the workstation.

Was the phishing sent from the attacker’s own computer?

The evidence says no. The Google session that sent it came from the workstation’s own temporary IPv6 address, matched the workstation’s platform and browser, and ran entirely inside recorded remote-control sessions. The best-supported explanation is that the attackers drove the accountant’s already signed-in browser. That is a high-confidence inference rather than an observed fact, and the report says so.

Should the workstation have been reformatted?

Yes, eventually. A machine that has run nine unknown executables under remote control cannot be trusted again. The question is sequence: the collection taken before the rebuild is now the only endpoint evidence, and no full image or memory capture exists. Isolate, acquire, document, then rebuild.

What should a small business do first if a staff mailbox starts sending phishing?

Reset the password and revoke every session and token from a device you trust, suspend the account if the platform allows it, and warn recipients from a different account. Then stop treating it as an email problem: find the device the mailbox was signed in on, take it off the network without wiping it, and get the evidence collected before anyone rebuilds it.

Does this apply to WordPress and server work?

The method does. Hosting accounts, control panels and WordPress installations are compromised through the same pattern of legitimate tooling, weak factors and missing logs, and the same discipline of labelled evidence, normalized time and verified containment is what the server and WordPress incident reports on this site are built on.