Skip to content
Poshan Bhandari
← All Projects

Case Study / 01

The Nimbus Account Compromise

An external operator reused a leaked personal-email password to log into a corporate RDP account, enumerated HR file shares, and staged HR data for exfiltration. Reconstructed end to end from endpoint and identity telemetry.

Microsoft Defender for Endpoint + KQL (Advanced Hunting)

Initial Signal
Hypothesis
Query
Correlation
Investigation
Finding

Subject account

m.reed

Host

nh-wks-it-01

Investigation window

2026-05-25 → 2026-05-30

Classification

External account compromise

01Objective

Determine whether the m.reed account was behaving as expected on nh-wks-it-01 and, if not, reconstruct how the account was accessed, what the operator did once inside, and whether anything left the environment.

02Environment

Corporate endpoint and identity telemetry queried via Microsoft Defender for Endpoint Advanced Hunting (DeviceLogonEvents, DeviceProcessEvents, and DeviceFileEvents) across the subject workstation (nh-wks-it-01) and the HR file server (NH-FS-01).

03Tools
Microsoft Defender for EndpointKQLAdvanced Hunting
04Investigation

The hunt started from a single anomalous logon and was worked forward hypothesis by hypothesis: who is behind the account, how did they get in, what did they do once inside, and whether anything left the building. Each answer below was pulled directly from Defender Advanced Hunting, not inferred.

05Timeline
  1. Step 01

    Operator finds m.reed's public professional profile and pivots to a personal email address.

  2. Step 02

    Personal email cross-referenced against breach data: a reused corporate-equivalent credential is identified.

  3. Step 03

    Low-volume, targeted credential-guessing burst (3 failures, 1 success) against the remote support endpoint.

  4. Step 04

    Successful RDP (RemoteInteractive) logon from the first external IP.

  5. Step 05

    Initial reconnaissance: whoami, hostname, ipconfig /all, whoami /groups.

  6. Step 06

    File server share enumeration (net view \\NH-FS-01) and HR group enumeration (net group "NH-HR-Users" /domain).

  7. Step 07

    Roughly 10-minute session gap, then the operator reconnects from a second external IP.

  8. Step 08

    RDP channel check (net view \\tsclient) confirms the mapped client-drive path.

  9. Step 09

    HR data staged locally and compressed into an archive.

  10. Step 10

    Archive exfiltrated via the mapped RDP client drive.

  11. Step 11

    No malware or persistence mechanisms were deployed at any point.

06Evidence

The account's public professional profile listed a personal address, mason.reed@hotmail.com. That address cross-referenced against the Synthient Credential Stuffing Threat Data breach set, which held plaintext credentials from a prior, unrelated breach reused verbatim against the corporate remote-support endpoint (135.237.163.62). Logon telemetry shows a short, targeted guessing burst (3 failures, 1 success) from 116.45.242.115, followed by a successful RemoteInteractive (RDP) logon. That low-volume, immediately-successful pattern points to credential reuse, not brute force.

07Evidence Log

Query 01: Isolating the external logon source

kql
DeviceLogonEvents
| where TimeGenerated between (datetime(2026-05-25) .. datetime(2026-05-30 23:59:59))
| where DeviceName startswith "nh-wks-it-01"
| where AccountName == "m.reed"
| where RemoteIP != ""
| summarize count() by RemoteIP, ActionType

Query 02: Confirming the logon type (RDP vs. other)

kql
DeviceLogonEvents
| where TimeGenerated between (datetime(2026-05-25) .. datetime(2026-05-30 23:59:59))
| where DeviceName startswith "nh-wks-it-01"
| where AccountName == "m.reed"
| where RemoteIP == "116.45.242.115"
| project LogonId, LogonType

Query 03: Tracing where the target file was staged

kql
DeviceFileEvents
| where TimeGenerated between (datetime(2026-05-25) .. datetime(2026-05-30 23:59:59))
| where DeviceName startswith "nh-wks-it-01"
| where FileName startswith "access_request"
| where InitiatingProcessAccountName == "m.reed"
| project TimeGenerated, ActionType, FileName, FolderPath,
          InitiatingProcessFileName, InitiatingProcessCommandLine
| order by TimeGenerated asc

Query 04: Confirming the exfil path via the RDP client drive

kql
DeviceFileEvents
| where TimeGenerated between (datetime(2026-05-25) .. datetime(2026-05-30 23:59:59))
| where DeviceName startswith "nh-wks-it-01"
| where FileName has ".zip"
| where InitiatingProcessAccountName == "m.reed"
| order by TimeGenerated asc
08Indicators of Compromise
Compromised accountm.reed
Hostnh-wks-it-01
Personal email (OSINT pivot)mason.reed@hotmail.com
Breach sourceSynthient Credential Stuffing Threat Data
Remote support endpoint (public)135.237.163.62
Attacker IP #1 (guessing → success)116.45.242.115
Attacker IP #2 (session switch)45.131.194.61
Staging directoryC:\Users\m.reed\Documents\SupportReview\
Archivesupport_review_202605.zip
Exfil path\\tsclient\G\Temp\NimbusSupport\
Target dataaccess_request_queue_20260526.csv
09Findings

Post-logon process telemetry shows textbook reconnaissance (whoami, hostname, ipconfig /all, whoami /groups), followed by share enumeration (net view \\NH-FS-01) and HR group enumeration (net group "NH-HR-Users" /domain). After a roughly 10-minute session gap, the operator reconnected from a second external IP (45.131.194.61) and continued: a channel check (net view \\tsclient) confirmed the RDP mapped-drive path was reachable, HR data (access_request_queue_20260526.csv) was staged in C:\Users\m.reed\Documents\SupportReview\, compressed to support_review_202605.zip, and moved out through the RDP client drive to \\tsclient\G\Temp\NimbusSupport\. Checks for scheduled tasks, new services, and autorun entries turned up nothing beyond legitimate Windows/OneDrive housekeeping. No persistence was established, and the account never touched NH-FS-01 with an interactive logon.

10Verdict

External account compromise, not insider misuse. No malware or persistence artifacts were found, which rules out a tooling-based intrusion, and nothing in the session indicates the legitimate user was driving the activity, which rules out genuine insider access. The evidence is consistent with an external operator remotely driving m.reed's session end to end.

11Response

First containment: disable or suspend m.reed and terminate all active sessions. A password reset alone isn't enough while the attacker is operating through an already-authenticated, live session, since existing tokens and mapped connections can outlive a password change. Because the exfiltrated file contained employee personal data (HR access-request records), the finding was escalated as a data-breach and privacy matter subject to breach-notification review.

12Lessons Learned

Credential reuse from a public breach was enough to fully compromise a corporate account with no malware and no persistence. Detection has to catch the behavior itself (an unfamiliar RemoteInteractive source IP, a share-enumeration command, a client-drive file transfer), because there was no payload to catch. Correlating a single new source IP against a low-and-slow guessing pattern, instead of watching only for high-volume brute force, would have surfaced this several steps earlier in the chain.

Next

Explore the rest of the work.