Vulnerability Analysis

Identifying Accounts Used From A Threat Actor Device

In cybersecurity, identifying accounts accessed by a threat actor’s device is a critical aspect of incident response and threat hunting.

This process is particularly relevant in environments where Microsoft Defender for Endpoint (MDE) or Microsoft Defender for Identity (MDI) is deployed. Below is an overview of how this can be achieved using advanced hunting queries.

When a threat actor connects their device to a network, often via VPN, they may attempt to use legitimate accounts for malicious purposes.

To detect such activities, security analysts need to query authentication logs for successful logins originating from the threat actor’s device. Key identifiers include the device name or the IP address assigned to the device.

Steps To Identify Compromised Accounts

  1. Gather Initial Information
    • Obtain the threat actor’s device name and/or IP address.
    • Ensure that the remote IP corresponds to the threat actor’s machine during the events in question.
  2. Query Authentication Logs
    • Use MDE’s DeviceLogonEvents or MDI’s IdentityLogonEvents tables to search for successful logins (ActionType == "LogonSuccess") originating from the identified device or IP.
    • Extend results to include account details such as domain and username.
  3. Summarize Results
    • Aggregate data to list all accounts successfully used from the threat actor’s device.
    • Include a count of unique accounts accessed.
  4. Expand Analysis
    • Remove filters for successful logins to review failed login attempts. These may indicate accounts with valid credentials but locked or restricted access.

Below is an example query for MDE:

textlet TARemoteDeviceNames = dynamic(["THREAT_ACTOR_DEVICE_NAME"]);
let TARemoteIPs = dynamic(["THREAT_ACTOR_IP"]);
DeviceLogonEvents
| where RemoteDeviceName has_any (TARemoteDeviceNames) or RemoteIP has_any (TARemoteIPs)
| where ActionType == "LogonSuccess"
| extend Account = strcat(AccountDomain, "\\", AccountName)
| summarize Accounts=make_set(Account), AccountCount=dcount(Account) by RemoteDeviceName, RemoteIP
  • Not all log entries will include both device name and IP address; prioritize IP-based searches when necessary.
  • Failed login attempts should not be ignored, as they may still indicate compromised credentials.
  • Advanced techniques, such as analyzing logon types and associated devices, can provide deeper insights into threat actor behavior.

By leveraging tools like KQL (Kusto Query Language) within Microsoft Defender XDR, security teams can efficiently identify compromised accounts and take swift action to mitigate risks.

Varshini

Varshini is a Cyber Security expert in Threat Analysis, Vulnerability Assessment, and Research. Passionate about staying ahead of emerging Threats and Technologies.

Recent Posts

Kali Linux Commands Cheat Sheet: Complete Quick Reference

This cheat sheet covers the essential Kali Linux commands every pentester and ethical hacker uses…

2 weeks ago

What I Wish I Knew Before Learning Malware Analysis and Reverse Engineering

When I first started learning malware analysis and reverse engineering, I thought the hardest part…

2 weeks ago

git fetch vs git pull: How They Work and When to Use Each

Both git fetch and git pull talk to a remote repository, but they do very different things to your…

4 weeks ago

git cherry-pick Command: Apply Commits from Another Branch

Sometimes the change you need already exists, just on the wrong branch. A hotfix lands…

4 weeks ago

Best Email APIs for Secure Business Email: Why Developers Are Moving Beyond SMTP

Email is still one of the most important communication channels inside modern applications. Password resets,…

4 weeks ago

Nginx Commands in Linux: Start, Stop, Reload, Test, and Log

Nginx is a high-performance web server and reverse proxy trusted by some of the largest…

4 weeks ago