Home / Blog / Threat Intelligence

Intermediate Threat Intelligence

How to Turn a Joint Cyber Advisory into Hunts and Detections

A repeatable workflow for public sector SOCs to turn NCSC co-sealed advisories into ATT&CK mapped hunts, tested detections and clear evidence for the CAF.

When the NCSC and its partners publish a joint advisory about a nation state actor, someone senior will ask the SOC a simple question: are we affected? Answering it well means more than pasting indicators into a blocklist. This guide shows analysts in government and the wider public sector how to turn an advisory into hunts, tested detections and a short briefing, within strict change control.

InputAdvisory PDF, STIX file and ATT&CK tables
OutputHunt results, new detections and a briefing
CAF linkC1.f threat intelligence and C2.a threat hunting
>

Scenario: A co-sealed advisory describes a state sponsored actor living off the land inside critical infrastructure networks: copying the Active Directory database with ntdsutil, launching commands through wmic and forwarding ports with netsh. Your department runs 12 domain controllers and a mix of Sentinel and Defender for Endpoint. The Director of Digital wants an answer by the end of the day, and any new production analytics rule needs approval at Thursday's change board.

Triage the advisory for relevance

Read the advisory once for the story, then again with a pen. You are looking for the parts that apply to your estate, not a summary of the whole document. Most joint advisories now include an ATT&CK mapping table and a machine readable indicator file, which saves time later.

  • Does the targeting match your sector, your suppliers or the services you depend on?
  • Do you run the technologies named, such as specific VPN appliances, edge devices or operating systems?
  • Are the techniques ones your current logging could see at all?
  • How old are the indicators, and does the advisory say they are historical?
  • Is there a recommended action list you can track as tasks?

Then sort what the advisory gives you by how long it stays useful. Indicators expire quickly. Behaviours do not.

Level 1

Indicators

IP addresses, domains and hashes. Quick to search, but actors rotate infrastructure and many advisory indicators are already stale on publication.

Retro search 90 days
Level 2

Tools and artefacts

File names, folder paths, registry keys and command fragments the actor left behind. More durable, but easy for the actor to vary.

Folder names in C:\Windows\Temp
Level 3

Behaviours

What the actor does, mapped to ATT&CK. Harder to change, so detections built here keep working against the next campaign too.

ntdsutil run on a DC
i

Note: The Volt Typhoon advisories are a good worked example. The May 2023 joint advisory, co-authored by NCSC-UK, listed wmic, ntdsutil, netsh and PowerShell among the built in tools used, and AA24-038A in February 2024 was published alongside joint guidance on identifying and mitigating living off the land techniques. The commands in this article follow the patterns those documents describe.

Map behaviours to your data sources

Turn each behaviour into a row: what the actor did, the ATT&CK technique, the log that would record it and whether you actually collect that log. This table becomes your hunt plan and, later, your evidence for the Cyber Assessment Framework.

Advisory behaviourATT&CKData sourceWhere to look
Copy of ntds.dit and the SYSTEM hive using ntdsutil with ifmT1003.003 NTDSProcess creation with command lineDomain controllers
Remote command launch with wmic process call createT1047 Windows Management InstrumentationProcess creation, parent processServers and admin hosts
Port forwarding with netsh interface portproxy add v4tov4T1090.001 Internal ProxyProcess creation and registry changesAny Windows host, especially servers
Valid accounts used at unusual times or from unusual hostsT1078 Valid AccountsLogon events, sign in logsPrivileged and service accounts
+

Tip: The advisory notes that ntdsutil accepts short forms, so activate instance ntds ifm can appear as ac i ntds i. Do not build hunts that depend on one spelling. On domain controllers, any ntdsutil execution is rare enough to review by hand.

Check your visibility before you hunt

A hunt that returns nothing only means something if the data was there to search. Before you report "no evidence found", confirm that every host in scope sends the logs your table needs. This is the heart of CAF contributing outcomes C1.a and C1.b, which cover sources of logging and the security logs themselves.

Microsoft SentinelKQL
let DomainControllers = dynamic(["DC-01", "DC-02", "DC-03"]);
SecurityEvent
| where TimeGenerated > ago(24h)
| where Computer has_any (DomainControllers)
| where EventID == 4688
| summarize Events = count(),
    WithCommandLine = countif(isnotempty(CommandLine)),
    LastSeen = max(TimeGenerated)
    by Computer
| extend CommandLineCoverage = round(100.0 * WithCommandLine / Events, 1)

Run the same check for registry change telemetry and for every other source in your table, then summarise the result for the briefing. A view like this tells leadership how much weight to put on a clean result.

Advisory visibility check example department, 12 domain controllers
12/12DCs sending 4688
100%Command line captured
7/12DCs with registry events
90 daysHot retention
4/4Behaviours mapped
2Servers without EDR
0Indicator matches
1Hunt result to review
Decision: Report "no confirmed compromise, medium confidence" and raise a change to close the registry logging gap on five DCs.

Run the behaviour hunts

Hunt over the longest window your retention allows. State actors aim for long dwell times, so a seven day search can miss the activity entirely.

ntdsutil on any host

Microsoft Sentinel, Security Event 4688KQL
SecurityEvent
| where TimeGenerated > ago(90d)
| where EventID == 4688
| where NewProcessName endswith @"\ntdsutil.exe" or CommandLine has "ntdsutil"
| project TimeGenerated, Computer, SubjectUserName, ParentProcessName, CommandLine
| order by TimeGenerated asc

Expect a small number of results. Legitimate uses include building install from media sets for new domain controllers and some backup or maintenance tasks. Ask your directory team for change records, and look hard at any run launched by wmiprvse.exe or with output written to a temporary folder.

Port proxy rules

Check both the command and the configuration it leaves behind, because the rule persists in the registry under HKLM\SYSTEM\CurrentControlSet\Services\PortProxy\v4tov4\tcp even after the command history has gone.

Microsoft Defender XDR advanced huntingKQL
union
    (DeviceProcessEvents
    | where Timestamp > ago(90d)
    | where FileName =~ "netsh.exe" and ProcessCommandLine has "portproxy"
    | project Timestamp, DeviceName, Source = "Process", Detail = ProcessCommandLine, Actor = InitiatingProcessFileName),
    (DeviceRegistryEvents
    | where Timestamp > ago(90d)
    | where RegistryKey has @"Services\PortProxy\v4tov4"
    | project Timestamp, DeviceName, Source = "Registry", Detail = strcat(RegistryValueName, " = ", RegistryValueData), Actor = InitiatingProcessFileName)
| order by Timestamp asc
Splunk, Sysmon Event IDs 12 and 13SPL
index=sysmon (EventCode=12 OR EventCode=13) TargetObject="*\\Services\\PortProxy\\v4tov4\\*"
| table _time host EventType TargetObject Details Image User
| sort _time
!

Watch out: If a hunt returns a likely true positive, stop and follow your incident process before you touch the host. Do not remove the port proxy rule or reset accounts on your own. A capable actor watches for defender activity, and a premature change can lose you both the evidence and the actor. Report suspected compromise through your department's incident route, which for central government includes the NCSC.

Turn hunts into detections under change control

CAF 4.0 places more weight on structured threat hunting, with findings turned into repeatable detections. A hunt you only ran once does not protect you next month. Move each useful hunt up this ladder, and let your change board approve the final step with evidence from the earlier ones.

  1. L0
    One off huntRun manually against 90 days of data, results reviewed and written up.
    Analyst
  2. L1
    Scheduled huntSaved query run weekly, with a named owner reviewing the output.
    Hunt lead
  3. L2
    Rule in testAnalytics rule creating low severity incidents only, with false positives logged for two weeks.
    Detection team
  4. L3
    Production ruleApproved by the change board, with severity, runbook and tuning record attached.
    Change board
Behaviour firstDetect the action, such as ntdsutil on a DC, not the folder name the actor happened to use.
Context built inExclude only named, ticketed admin activity, and never whole hosts or accounts.
Runbook attachedEvery rule ships with triage steps, so the night shift knows what to check first.

Brief leadership and keep the evidence

Senior readers want a verdict, a confidence level and what happens next. Keep it to one page and attach the detail for those who need it.

Advisory response noteText
Advisory: Joint advisory on state sponsored living off the land activity
Relevance: High. Techniques target Windows domains like ours.
Verdict: No confirmed compromise. Medium confidence.
Hunted: ntdsutil, wmic process creation, netsh port proxy, off hours privileged logons (90 days)
Results: 0 indicator matches. 1 ntdsutil run on DC-02, matched to change CHG-31877.
Gaps: Registry telemetry missing on 5 of 12 DCs. 2 servers without EDR.
Actions: Change raised for registry logging. 2 detections in test, CAB on Thursday.
Handling: OFFICIAL. TLP:AMBER for any sharing outside the department.

File the note, the queries and their results together. That bundle is exactly what an assessor looks for under CAF contributing outcomes C1.f and C2.a: evidence that you use threat intelligence to shape monitoring, and that hunting produces lasting improvements. If your organisation is not yet registered for the NCSC's free Early Warning service, add it to your actions. It sends notifications about potential malicious activity linked to your registered IP addresses and domains, which complements your own hunts.

Key takeaways

  1. Read an advisory for relevance first, then sort its content into indicators, artefacts and behaviours.
  2. Map every behaviour to an ATT&CK technique and a data source you can prove you collect.
  3. Check log coverage before hunting, so a clean result carries real weight.
  4. Hunt over your full retention, and hand likely true positives to the incident process untouched.
  5. Move useful hunts up to tested, approved detections, and keep the bundle as CAF evidence.

Pick the most recent co-sealed advisory that mentions your sector and run this workflow against it this week, even if you think you are not affected. The visibility gaps you find along the way are often the most valuable result.

Written by Freya, Senior SOC Analyst, Government

Keep going

More in Threat Intelligence