← Back to SOC feed Coverage →

Machine info from IP address (2)

kql MEDIUM Azure-Sentinel
apthuntingmicrosoftofficial
This rule was pulled from an open-source repository and enriched with AI. Validate in a test environment before deploying to production.
View original rule at Azure-Sentinel →
Retrieved: 2026-05-22T23:00:00Z · Confidence: medium

Hunt Hypothesis

An adversary may use a machine’s IP address to pivot and access other systems, leveraging network-based reconnaissance to identify potential targets. SOC teams should proactively hunt for this behavior to detect lateral movement and early-stage network exploration in their Azure Sentinel environment.

KQL Query

// Query #3: get machines that have used a given *public* IP address at a given time - as seen in their communications with the WDATP cloud
let pivotTimeParam = datetime(2018-07-15 19:51:00);
let ipAddressParam = "192.168.1.5";
DeviceInfo
| where Timestamp between ((pivotTimeParam-15m) .. 30m) and PublicIP == ipAddressParam
| project DeviceName, LoggedOnUsers, Timestamp, TimeDifference=abs(Timestamp-pivotTimeParam)
// In case multiple machines have reported from that IP address arround that time, start with the ones reporting closest to pivotTimeParam
| sort by TimeDifference asc

Analytic Rule Definition

id: a6208585-9910-4855-b847-dfd49ff9beb1
name: Machine info from IP address (2)
description: |
  The following queries pivot from an IP address assigned to a machine to the relevant machine or logged-on users.
  To read more about it, check out this post: https://techcommunity.microsoft.com/t5/What-s-New/Advanced-hunting-now-includes-network-adapters-information/m-p/224402#M74.
  Query #1: get machines that have used a given local IP address at a given time - as configured on their network adapters.
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
  dataTypes:
  - DeviceInfo
query: |
  // Query #3: get machines that have used a given *public* IP address at a given time - as seen in their communications with the WDATP cloud
  let pivotTimeParam = datetime(2018-07-15 19:51:00);
  let ipAddressParam = "192.168.1.5";
  DeviceInfo
  | where Timestamp between ((pivotTimeParam-15m) .. 30m) and PublicIP == ipAddressParam
  | project DeviceName, LoggedOnUsers, Timestamp, TimeDifference=abs(Timestamp-pivotTimeParam)
  // In case multiple machines have reported from that IP address arround that time, start with the ones reporting closest to pivotTimeParam
  | sort by TimeDifference asc

References

False Positive Guidance

Original source: https://github.com/Azure/Azure-Sentinel/blob/main/Hunting Queries/Microsoft 365 Defender/General queries/Machine info from IP address (2).yaml