Configure the Hunting Programme Starter Kit
Objective
Set up the operational infrastructure for a threat hunting programme. By the end of this lab, you have: 8 custom hunting queries in the Sentinel Hunting blade, a DepartingEmployees watchlist, a hunt log watchlist, and your first completed hunt with documented findings.
Required: Microsoft Sentinel workspace with populated data (SigninLogs, AuditLogs, CloudAppEvents minimum). Security Contributor role.
Step 1: Import 8 hunting queries
Navigate to: Sentinel → Hunting → Queries → New query.
Create each of the following custom hunting queries. For each: paste the KQL, assign the MITRE technique, set the required data source, and add a description.
Query 1: First-Time Country Sign-In
| |
- MITRE: T1078.004 (Valid Accounts: Cloud Accounts)
- Data source: SigninLogs
- Description: Identifies users signing in from countries they have never used in the last 90 days. New countries may indicate: compromised credentials used by an attacker, legitimate travel (verify with user), or VPN routing change.
Query 2: Rare Process Execution
| |
- MITRE: T1059.001 (PowerShell)
- Data source: DeviceProcessEvents
- Description: Finds processes that have executed only once or twice across the entire environment. Attacker tools are inherently rare.
Query 3: MFA Fatigue
| |
- MITRE: T1621 (Multi-Factor Authentication Request Generation)
- Data source: SigninLogs
- Description: Detects repeated MFA denials — the pattern of MFA fatigue attacks where the attacker spams push notifications.
Query 4: Cloud Account Creation Outside HR
| |
- MITRE: T1136.003 (Create Account: Cloud Account)
- Data source: AuditLogs
Query 5: Privileged Role Assignment
| |
- MITRE: T1098.003 (Account Manipulation: Additional Cloud Roles)
- Data source: AuditLogs
Query 6: Personal Cloud Storage Connections
| |
- MITRE: T1567 (Exfiltration Over Web Service)
- Data source: DeviceNetworkEvents
Query 7: Encoded PowerShell
| |
- MITRE: T1059.001 (Command and Scripting Interpreter: PowerShell)
- Data source: DeviceProcessEvents
Query 8: Beacon Detection
| |
- MITRE: T1071 (Application Layer Protocol)
- Data source: DeviceNetworkEvents
Step 2: Create the DepartingEmployees watchlist
Navigate to: Sentinel → Watchlists → Create.
- Name: DepartingEmployees
- Alias: DepartingEmployees
- SearchKey: SearchKey
Create a CSV file with these columns and 3 test entries:
SearchKey,DepartureDate,Department,RiskLevel
testuser1@yourdomain.com,2026-05-01,Engineering,High
testuser2@yourdomain.com,2026-05-15,Finance,Medium
testuser3@yourdomain.com,2026-04-30,Marketing,Low
Upload the CSV. Verify:
| |
Step 3: Create the HuntLog watchlist
Navigate to: Sentinel → Watchlists → Create.
- Name: HuntLog
- Alias: HuntLog
- SearchKey: SearchKey
CSV columns:
SearchKey,Hypothesis,Trigger,Status,Analyst,StartDate,TimeSpentHours,Outcome,RulesCreated,Notes
HUNT-2026-04-001,First-time country sign-in may indicate credential compromise,MITRE gap,Completed,YourName,2026-04-10,1.5,NoFindings,0,Lab exercise - baseline established
Upload with your first hunt record (Step 4 below).
Step 4: Execute your first hunt
Hypothesis: “An attacker may have used compromised credentials to sign in from a country no Northgate Engineering user has previously used, within the last 24 hours.”
Step 4.1: Run Query 1 (First-Time Country Sign-In) from the Hunting blade.
Step 4.2: Review results. For each result: is the country suspicious? Is it a known travel destination? Cross-reference with the user’s department and role.
Step 4.3: If any result is suspicious: create a bookmark. Map entities: Account, IP. Tag: HUNT-2026-04-001, T1078.004, suspicious or benign.
Step 4.4: Document the hunt in the HuntLog watchlist:
| Field | Value |
|---|---|
| SearchKey | HUNT-2026-04-001 |
| Hypothesis | First-time country sign-in |
| Trigger | MITRE gap (T1078.004) |
| Status | Completed |
| Analyst | [Your name] |
| StartDate | [Today] |
| TimeSpentHours | [Actual time] |
| Outcome | [NoFindings / Suspicious / ThreatConfirmed] |
| RulesCreated | [0 or 1] |
| Notes | [Brief findings summary] |
Step 4.5: If the hunt confirmed a threat: promote the bookmark to an incident. Create an analytics rule from the hunting query. If no findings: document the negative result. Both outcomes are valid.
Verification
You have completed this lab when:
- 8 custom hunting queries visible in Sentinel → Hunting → Queries
- Each query has MITRE technique and data source assigned
- DepartingEmployees watchlist created with test entries
- HuntLog watchlist created with at least 1 hunt record
- First hunt executed, results reviewed, and documented
- At least 1 bookmark created (even for a benign finding)
You now have a functioning hunting programme. Set a calendar reminder: execute one hunt per fortnight using the queries you just imported. Rotate through the 8 queries over 4 months. Log every hunt in the HuntLog. After 3 months: you have institutional knowledge about your environment’s threat baseline that no vendor product can provide.