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

How To Use Variables In Bash Scripts

Introduction Variables are one of the most important basics of Bash scripting. A variable is…

17 hours ago

How To Run A Bash Script In Linux Step By Step

Introduction Running a Bash script in Linux is a basic but important skill for anyone…

17 hours ago

How To Write Your First Bash Script In Linux Step By Step

Introduction Writing your first Bash script in Linux is one of the best ways to…

17 hours ago

Install Docker on Ubuntu 24.04 With Easy Setup Guide

Docker has become one of the most important tools in modern software development. If you…

18 hours ago

APT Command Linux: Essential Package Management Guide

The APT Command Linux users rely on is one of the most powerful tools for…

21 hours ago

Install RPM on Ubuntu: Easy Guide to Run RPM Packages

Ubuntu users usually install software through .deb packages or the APT package manager. However, some…

1 day ago