Agent Foskett Academy • SOC Analyst Academy • Module 8 • Lesson 78 • Threat Hunting: Looking Beyond the Alerts

Lesson 78 — The IOC Changed — The Behaviour Didn't

Yesterday the SOC had an IP address, a domain and a file hash.

They searched for them. They found three devices. They blocked the infrastructure.

This morning the IP was different.
The domain was different.
The hash was different.

One analyst looked at the new evidence and said:

“None of yesterday's indicators match.”

Agent Foskett looked at the process timeline.

Browser → PowerShell → download → execution → external connection.

“The IOC changed. The behaviour didn't.”

Indicators can expire quickly. Behavioural relationships often survive changes in attacker infrastructure.
Agent Foskett comparing changing indicators with persistent attacker behaviour
Infrastructure changes. Techniques can persist.

Use IOCs when they are useful, then translate the case into behavioural questions that can survive tomorrow's new IP address, domain or hash.

✓ Extract
✓ Abstract
✓ Hunt
✓ Validate

Case briefing

DAY 1 IP: 198.51.100.24 DOMAIN: update-example.test HASH: HASH-A Browser ↓ PowerShell ↓ Download ↓ User-profile execution ↓ External connection DAY 2 IP: 203.0.113.77 DOMAIN: cdn-example.test HASH: HASH-B Browser ↓ PowerShell ↓ Download ↓ User-profile execution ↓ External connection INDICATORS: DIFFERENT BEHAVIOUR: FAMILIAR

Investigation objective

Take a hunt that began with specific indicators, identify the underlying behavioural relationships and create a more durable hunting approach that can still identify related activity when attacker infrastructure changes.

Investigator's rule

An IOC tells you what to look for now. Behaviour can tell you what to keep looking for next.

Stage 1 — understand what an IOC gives you

IndicatorUseful forLimitation
IP addressRapidly finding known connections.Infrastructure can be replaced, shared or reassigned.
DomainFinding known network activity.Domains can be rotated or abandoned.
File hashFinding an exact known file.A small file change creates a different hash.
URLFinding access to a known resource.Hosts, paths and parameters can change.

IOCs are useful evidence

They are valuable for rapid scoping, blocking and enrichment. The weakness appears when the hunt assumes an attacker must keep using exactly the same indicator.

Indicator absence does not end the hunt

If today's IP does not match yesterday's IP, ask whether today's activity still follows the same suspicious sequence or achieves the same objective.

Stage 2 — scope the known indicator

01-known-ip-scope.kql
1234567
DeviceNetworkEvents
| where Timestamp > ago(14d)
| where RemoteIP == "198.51.100.24"
| project Timestamp, DeviceId, DeviceName,
          InitiatingProcessFileName,
          RemoteIP, RemotePort, RemoteUrl
| order by Timestamp asc

Start specific

Known indicators can quickly identify directly related devices. Capture the process, account and timeline around those matches before moving to a broader behavioural hunt.

Ask what surrounded the IOC

The reusable evidence may be the parent-child process relationship, command pattern, execution location or sequence that led to the network connection.

Stage 3 — extract the behaviour

DON'T STOP AT: "Device contacted 198.51.100.24" EXTRACT: 1. Browser launched PowerShell 2. PowerShell used a download-capable command 3. Content appeared in a user-writable location 4. A process executed shortly after 5. Follow-on external connectivity occurred NOW WE HAVE A BEHAVIOURAL HUNTING HYPOTHESIS.

Separate behaviour from infrastructure

The destination is one part of the evidence. The execution chain describes how the activity unfolded and may remain observable after infrastructure rotates.

Do not become too broad

Behavioural hunting does not mean searching for every PowerShell event. Preserve meaningful relationships such as parent process, command context, timing and follow-on activity.

Stage 4 — hunt the durable process relationship

02-browser-powershell-behaviour.kql
123456789101112
DeviceProcessEvents
| where Timestamp > ago(14d)
| where FileName in~ ("powershell.exe", "pwsh.exe")
| where InitiatingProcessFileName in~ (
    "msedge.exe", "chrome.exe", "firefox.exe"
)
| project Timestamp, DeviceId, DeviceName,
          AccountName, FileName,
          ProcessCommandLine,
          InitiatingProcessFileName
| order by Timestamp asc

This survives an IP change

The query does not care whether the remote infrastructure is yesterday's or today's. It asks whether the suspicious browser-to-PowerShell relationship occurred elsewhere.

Context still decides

A behavioural match is a hunting candidate, not an automatic verdict. Review command lines, prevalence, user activity and surrounding events.

Stage 5 — the IOC rotates

FIN-WS-204 — YESTERDAY 198.51.100.24 update-example.test HASH-A FIN-WS-219 — TODAY 203.0.113.77 cdn-example.test HASH-B EXACT IOC HUNT: NO MATCH BEHAVIOURAL HUNT: MATCH 09:42 Browser → PowerShell 09:43 Download activity 09:44 User-profile execution 09:44 External connection THE INFRASTRUCTURE CHANGED. THE EXECUTION STORY DID NOT.

The behavioural match creates a lead

FIN-WS-219 deserves deeper investigation even though none of the original indicators matched. The lead comes from similarity in the attack sequence.

Similarity is not attribution

Do not claim the same attacker solely because two devices show similar behaviour. Additional evidence must support any attribution conclusion.

Stage 6 — pivot into the new network activity

03-powershell-network-pivot.kql
12345678910111213
DeviceNetworkEvents
| where Timestamp between (
    datetime(2026-09-05 09:35:00) ..
    datetime(2026-09-05 09:50:00)
)
| where DeviceName =~ "FIN-WS-219"
| where InitiatingProcessFileName in~ (
    "powershell.exe", "pwsh.exe"
)
| project Timestamp, DeviceId, DeviceName,
          RemoteIP, RemotePort, RemoteUrl,
          InitiatingProcessFileName
| order by Timestamp asc

New infrastructure becomes new evidence

Once behavioural hunting identifies a candidate, extract its new IPs, URLs and other observables and use them for additional scoping.

The workflow goes both ways

IOC → behaviour → new IOC → wider scope. Strong hunting combines specific indicators with durable behavioural reasoning.

Stage 7 — compare the cases

EvidenceFIN-WS-204FIN-WS-219
Original IPObservedNo match
Original domainObservedNo match
Original hashObservedNo match
Browser → PowerShellObservedObserved
Download behaviourObservedObserved
User-profile executionObservedObserved
Follow-on network activityObservedObserved

The stable evidence becomes visible

The exact infrastructure differs while several meaningful behavioural relationships remain consistent.

Investigate the differences too

Differences can reveal attacker adaptation, alternate tooling or unrelated benign activity. Do not ignore them because the pattern looks compelling.

Stage 8 — avoid two hunting failures

FAILURE 1 — IOC ONLY "Yesterday's IP isn't here. Nothing to see." RESULT: MISS CHANGED INFRASTRUCTURE FAILURE 2 — TOO BROAD "Find all PowerShell." RESULT: THOUSANDS OF NORMAL EVENTS BETTER: Browser → PowerShell + Suspicious command context + Follow-on behaviour + Entity and timeline correlation

Durable does not mean vague

The hunt should be abstract enough to survive superficial attacker changes but specific enough to preserve the suspicious characteristics of the original case.

Expect tuning

As legitimate matches appear, refine the hypothesis with context. The goal is a useful hunting question, not a query engineered to return zero false positives.

Stage 9 — write the reusable hypothesis

ORIGINAL QUESTION: "Which devices contacted 198.51.100.24?" REUSABLE HYPOTHESIS: "An attacker may use a browser- initiated script interpreter to retrieve and execute content from a user-writable location before establishing external connectivity." HUNTABLE COMPONENTS: • unusual parent-child process • download-capable command • user-writable execution • short execution sequence • follow-on network activity THE HUNT CAN SURVIVE A NEW IP, DOMAIN OR HASH.

Hypothesis first, KQL second

A clear hypothesis tells another analyst what behaviour is being tested and why. KQL implements the reasoning; it should not replace the reasoning.

Keep the original IOCs

They remain useful for historical searches, enrichment, blocking and future correlation. Behavioural hunting extends IOC hunting rather than replacing it.

Stage 10 — write the hunting finding

FINDING: The original investigation identified a known IP address, domain and file hash on FIN-WS-204. A subsequent hunt based only on those indicators did not identify newer activity on FIN-WS-219. Behavioural scoping identified a similar browser-to-PowerShell sequence, followed by download activity, user-profile execution and external network communication. The newer activity used different infrastructure and a different hash. The behavioural similarity warrants further investigation and broader scoping. The evidence does not, by itself, prove common attribution. ACTION: Retain the known IOCs for direct matching while continuing to hunt the more durable execution relationships.

The balance matters

Specific indicators help the SOC move quickly. Behavioural hunting helps the SOC keep moving when those indicators stop matching.

The logs remembered the behaviour

The IP changed. The domain changed. The hash changed. But the process relationships still left a trail. Sometimes the most useful indicator is not a string — it is the story the telemetry tells.

Lesson 78 key takeaways

  • IOCs remain valuable for rapid matching, scoping and blocking.
  • Attackers can rotate IP addresses, domains, URLs and file hashes quickly.
  • Extract behavioural relationships from known IOC matches.
  • Parent-child process relationships can survive infrastructure changes.
  • Keep behavioural hunts specific enough to remain useful.
  • A behavioural match is a hunting lead, not automatic proof of compromise.
  • Similar behaviour alone does not prove common attacker attribution.
  • Use behavioural matches to discover new indicators.
  • IOC and behavioural hunting should reinforce each other.
  • Do not let a missing historical IOC terminate a reasonable hypothesis.
  • Write the behavioural hypothesis separately from the query implementation.
  • Preserve both the indicators and the durable behavioural story.

Module 8 — Threat Hunting: Looking Beyond the Alerts

Lesson 78 built a hunt that survives changing attacker infrastructure. Lesson 79 asks what happens when the hypothesis is sound but the current telemetry cannot answer the question: the hunt needs another data source.

Next: Lesson 79 — The Hunt Needs Another Data Source

Continue your SOC Analyst training

Module 3 focuses on identity incidents, authentication, MFA, privilege, sessions and application access.

How do threat hunters keep hunting when an IOC changes?

Lesson 78 of the Agent Foskett SOC Analyst Academy teaches analysts how to translate IP addresses, domains, URLs and file hashes into more durable behavioural hunting hypotheses.

Behavioural threat hunting in Microsoft Defender XDR

Learn how to use Microsoft Defender XDR Advanced Hunting to identify process relationships, network pivots and execution sequences that can remain visible even when attacker infrastructure and exact indicators change.