Encoded PowerShell
Expected result: DET-001 + DET-002
Adds one harmless PowerShell process event. Both related rules should match it.
Windows Detection Engineering Lab
I built this lab to practice the full detection workflow. It reads Windows Security and Sysmon-style events, checks them against six rules, maps each finding to MITRE ATT&CK, and shows what an analyst should investigate next.
Imported JSON is checked and analyzed locally. The file is not uploaded.
Each rule uses specific event fields or thresholds that can be reviewed in the lab.
Five harmless scenarios check that every rule produces the expected result.
This walkthrough loads a harmless encoded PowerShell event, runs the related rules, and opens the evidence behind the result.
Load events
Demonstration events
Apply rules
6 of 6 enabled
Review findings
6 findings
Report
Ready to export
Events
14
Hosts
2
Findings
6
High priority
3
ATT&CK techniques
6
1. Event data
Current dataset: Demonstration events. Imported JSON stays in this browser session.
2. Detection rules
6 of 6 rules enabled. Open this section to review or change them.
3. Findings
6 of 6 shown. Choose one to review the evidence.
DET-002criticalMITRE ATT&CK T1204.002 · Execution
WIN11-LAB-01
Jul 15, 1:10 PM UTC
What matched
winword.exe launched powershell.exe on WIN11-LAB-01.
Source event: test-ps-001
Matching evidence
What I would check next
How the activity connects
This view changes with the selected finding. It only shows the accounts, processes, hosts, network activity, and resources tied to that evidence.
Connections in this finding
Rule tests
0 of 5 tests passed in this session. These controls add sample log records; they do not run commands.
Expected result: DET-001 + DET-002
Adds one harmless PowerShell process event. Both related rules should match it.
Expected result: DET-003
Adds a scheduled-task record. DET-003 should identify the new task.
Expected result: DET-004
Adds five failed logons for one account within ten minutes. DET-004 should match the pattern.
Expected result: DET-005
Adds one unusually long test-domain query. DET-005 should flag the query.
Expected result: DET-006
Adds one account to the local Administrators group. DET-006 should catch the change.
4. Event timeline
Showing 14 events, newest first. Amber rows are part of the selected finding.
Local Group Membership Changed
Security 4732 · WIN11-LAB-02
DNS Query
Sysmon 22 · WIN11-LAB-01
Failed Logon
Security 4625 · WIN11-LAB-02
Failed Logon
Security 4625 · WIN11-LAB-02
Failed Logon
Security 4625 · WIN11-LAB-02
Failed Logon
Security 4625 · WIN11-LAB-02
Failed Logon
Security 4625 · WIN11-LAB-02
Scheduled Task Created
Security 4698 · WIN11-LAB-02
Process Create
Sysmon 1 · WIN11-LAB-01
Process Create
Sysmon 1 · WIN11-LAB-02
Successful Logon
Security 4624 · WIN11-LAB-01
DNS Query
Sysmon 22 · WIN11-LAB-01
Process Create
Sysmon 1 · WIN11-LAB-01
Process Create
Sysmon 1 · WIN11-LAB-01
| Time | Host | Channel / ID | Event | User | Observed value |
|---|---|---|---|---|---|
| Jul 15, 1:22 PM UTC | WIN11-LAB-02 | Security 4732 | Local Group Membership Changed | lab-temp-admin | Member lab-temp-admin added to local group Administrators |
| Jul 15, 1:20 PM UTC | WIN11-LAB-01 | Sysmon 22 | DNS Query | LAB\analyst | encoded-lab-telemetry-channel-0001.security-validation.example |
| Jul 15, 1:18 PM UTC | WIN11-LAB-02 | Security 4625 | Failed Logon | svc-backup | Network logon type 3 - bad password |
| Jul 15, 1:17 PM UTC | WIN11-LAB-02 | Security 4625 | Failed Logon | svc-backup | Network logon type 3 - bad password |
| Jul 15, 1:16 PM UTC | WIN11-LAB-02 | Security 4625 | Failed Logon | svc-backup | Network logon type 3 - bad password |
| Jul 15, 1:15 PM UTC | WIN11-LAB-02 | Security 4625 | Failed Logon | svc-backup | Network logon type 3 - bad password |
| Jul 15, 1:14 PM UTC | WIN11-LAB-02 | Security 4625 | Failed Logon | svc-backup | Network logon type 3 - bad password |
| Jul 15, 1:12 PM UTC | WIN11-LAB-02 | Security 4698 | Scheduled Task Created | LAB\helpdesk | schtasks.exe /Create /TN LabHealthCheck /TR C:\Lab\health-check.cmd |
| Jul 15, 1:10 PM UTC | WIN11-LAB-01 | Sysmon 1 | Process Create | LAB\analyst | powershell.exe -NoProfile -EncodedCommand SAFE-LAB-TEST |
| Jul 15, 1:04 PM UTC | WIN11-LAB-02 | Sysmon 1 | Process Create | LAB\helpdesk | powershell.exe Get-Service |
| Jul 15, 1:03 PM UTC | WIN11-LAB-01 | Security 4624 | Successful Logon | LAB\analyst | Interactive logon type 2 |
| Jul 15, 1:02 PM UTC | WIN11-LAB-01 | Sysmon 22 | DNS Query | LAB\analyst | learn.microsoft.com |
| Jul 15, 1:01 PM UTC | WIN11-LAB-01 | Sysmon 1 | Process Create | LAB\analyst | WINWORD.EXE C:\Lab\quarterly-review.docx |
| Jul 15, 1:00 PM UTC | WIN11-LAB-01 | Sysmon 1 | Process Create | LAB\analyst | C:\Windows\explorer.exe |
How it works
Each finding points back to the rule and events that created it. I also include the ATT&CK mapping, the matching fields, and the next questions I would ask during triage. No finding is generated from free-form AI output.
Scope
All included records are fictional. The lab demonstrates my approach to detection engineering, but it is not an endpoint agent, SIEM, incident-response service, or replacement for an authorized security assessment.
Technical references