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

Install Apache Cassandra on Ubuntu 18.04: NoSQL Setup Guide

Apache Cassandra is a free, open-source NoSQL database designed for high availability and linear scalability with…

3 hours ago

Install Rocket.Chat on Ubuntu 18.04 with Nginx and Let’s Encrypt

Rocket.Chat is a free, open-source team communication platform built with the Meteor framework. It is a…

3 hours ago

Install MySQL on Ubuntu 18.04: Setup, Security, and Root Access

MySQL is the most popular open-source relational database management system. It is fast, reliable, and scales…

3 hours ago

Install Apache on Ubuntu 18.04: Web Server Setup and Config

Apache is the most widely used web server in the world. It is free, open-source, and…

3 hours ago

Install NetBeans IDE on Ubuntu 18.04 with Snap and OpenJDK 8

NetBeans is a free, open-source, cross-platform IDE developed by the Apache Software Foundation. It was one…

3 hours ago

Install Pip on Ubuntu 18.04: Python 3 and Python 2 Setup Guide

Pip is the official package manager for Python and the standard way to install libraries from…

5 days ago