Module 11 — Sysmon First Hunt Workbook

Module 11 — Sysmon First Hunt Workbook

Summary

Your first end-to-end hunt on lab .114: trigger benign activity, then prove the story across Sysmon, Security EVTX, and (via VNC) ProcExp / Procmon. Scenario verified live 2026-09-01.

Prerequisites: Tools installed · EVTX module · VNC or RDP to .114


0. Purpose

Reading Event ID tables is not hunting. This workbook walks one repeatable narrative: something spawned PowerShell and wrote a file — then you prove it in three log layers plus GUI confirmation.


1. ELI5

You stage a harmless "suspicious" play in the lab (new PowerShell child + temp file). Then you ask three witnesses what they saw:

  1. Sysmon — "I saw process create (1), file create (11), maybe network (3)"
  2. Security log — "I saw 4688 with command line"
  3. ProcExp / Procmon — "I saw the parent chain and disk writes live"

If all three agree, you can hunt for real.


2. Lab access (GUI)

Method Status on .114 Connect from MiniMac
RDP Working — TCP 3389 Microsoft Remote Desktop → 192.168.50.114
TightVNC Working — TCP 5900 VNC client (fallback)
SSH Port 22 ssh tester808@192.168.50.114
Set TightVNC password

On first VNC session, open Proxmox console and run:
"C:\Program Files\TightVNC\tvnserver.exe" -controlservice -setpassword
Set a lab-only password; restrict to 192.168.50.0/24.


3. Scenario — "spawn and stage"

Step A — Trigger (SSH)

# On .114 (or from MiniMac via SSH)
powershell -NoProfile -ExecutionPolicy Bypass -File C:\Users\tester808\win11_hunt_lab_trigger.ps1

Installer copy from MiniMac:

scp ~/code/CodeCollector/win11_hunt_lab_trigger.ps1 tester808@192.168.50.114:C:/Users/tester808/

What it does (benign):

  1. Writes hunt-lab-<timestamp>.txt under %TEMP%
  2. Spawns child powershell.exe via Start-Process
  3. Dumps recent Sysmon + Security events to JSON

Step B — Expected telemetry (verified 2026-09-01)

Source Event ID What you should see
Sysmon 1 powershell.exe create (parent = powershell.exe or cmd.exe via sshd chain)
Sysmon 11 FileCreate under %TEMP%\hunt-lab-*.txt
Sysmon 3 Optional — sshd.exe network (SSH session)
Security 4688 Process creation with command line (audit policy enabled)
Defender 1116/1121 None for this benign scenario

Example live capture:

Sysmon 1  → powershell.exe (child)
Sysmon 11 → ...\Temp\hunt-lab-20260901-095751.txt
Security 4688 → tester808 created powershell.exe

4. Investigation commands (SSH)

# Sysmon — last 15 minutes, hunt IDs only
Get-WinEvent -LogName 'Microsoft-Windows-Sysmon/Operational' -MaxEvents 200 |
  Where-Object { $_.TimeCreated -gt (Get-Date).AddMinutes(-15) -and $_.Id -in 1,3,7,11,22 } |
  Select-Object TimeCreated, Id, @{N='Img';E={
    if ($_.Message -match 'Image: (.+?)\r') { $matches[1].Split('\')[-1] } else { '...' }
  }} | Format-Table -AutoSize

# Security — 4688 with command line
Get-WinEvent -LogName Security -MaxEvents 50 |
  Where-Object { $_.Id -eq 4688 -and $_.TimeCreated -gt (Get-Date).AddMinutes(-15) } |
  Select-Object TimeCreated, @{N='Msg';E={$_.Message.SubstringMin(300,$_.Message.Length)}} |
  Format-List

# Correlate by time — replace timestamp
Get-WinEvent -LogName 'Microsoft-Windows-Sysmon/Operational' -MaxEvents 500 |
  Where-Object { $_.Message -match 'hunt-lab' } |
  Select-Object TimeCreated, Id, Message

5. GUI hunt (VNC session)

Process Explorer

  1. Launch procexp64.exe as Administrator.
  2. Find your hunt powershell.exe session (or re-run trigger while ProcExp is open).
  3. Lower pane (Ctrl+D) — confirm amsi.dll, ntdll.dll loaded.
  4. Properties → Image — path, command line, parent (if still running).

Process Monitor

  1. Launch Procmon64.exe as Administrator.
  2. Filter → Filter… add:
    • Process Name is powershell.exeInclude
    • Path contains hunt-labInclude
  3. Run trigger script from elevated PowerShell in VNC session.
  4. Look for CreateFile / WriteFile on %TEMP%\hunt-lab-*.txt.
  5. File → SaveC:\Users\tester808\Documents\hunt-01.pmlstop capture when done.

6. Correlation worksheet

Fill this after each run:

Field Your answer
Hunt tag hunt-lab-________
Temp file full path
Child PID
Sysmon 1 time
Sysmon 11 time
Security 4688 time
Parent process name
amsi.dll loaded? (Y/N)

Filled example — c2_rust lab on .114 (2026-09-01)

Auto-generated via win_hunt_worksheet_fill.ps1 after carrier + udrl + implant runs:

Field Value
Hunt tag c2-lab-20260901
Carrier file path C:\Users\tester808\c2_drop\network-metrics.txt (9.7 MB)
DLL staging path C:\Users\tester808\c2_drop\staged-minimal.dll (100 KB)
Sysmon 11 time (carrier) ~10:47 AM (carrier drop)
Sysmon 11 time (DLL) 9/1/2026 12:07:39 PM
Sysmon 1 time (notepad) 9/1/2026 10:54:08 AM — parent platform-agent.exe
Defender 1116/1117 12 in 90m window (mostly direct PE / deploy_child quarantine)
Sysmon 7 (udrl) None — virtual_alloc load (no disk-backed image)
amsi.dll loaded? Verify on VNC — ProcExp → platform-agent → lower pane
# Regenerate worksheet from MiniMac
scp tools/platform_lab/scripts/win_hunt_worksheet_fill.ps1 tester808@192.168.50.114:/tmp/
ssh tester808@192.168.50.114 \
  "powershell -File C:/tmp/win_hunt_worksheet_fill.ps1 -SinceMinutes 90"

VNC checklist (ProcExp): Find platform-agent.exe → Ctrl+D → confirm amsi.dll, ntdll.dll loaded → after spawn_inject, child Notepad under parent.

sequenceDiagram
  participant You as Operator SSH/VNC
  participant PS as powershell.exe
  participant Child as child powershell
  participant Sys as Sysmon
  participant Sec as Security log

  You->>PS: run hunt trigger
  PS->>Child: Start-Process
  Sys-->>You: Event 1 (both PIDs)
  PS->>PS: Out-File temp
  Sys-->>You: Event 11 (file)
  Sec-->>You: Event 4688 (cmdline)

7. Stretch exercises

# Exercise Pass criteria
1 Filter Sysmon for sshd.exe only Explain why SSH hunts show sshd parent chain
2 Re-run after opening Edge See msedge.exe in Sysmon 1
3 Export Autoruns baseline CSV under Documents (item 3 — later)
4 Trigger ASR test (careful) Obfuscated script → Defender 1121
5 Run c2_rust implant series + correlate See Module 26 — notepad parent = platform-agent.exe
6 Run no-exclusion quarantine test test_windows11_no_exclusion.sh → Defender 1116/1117 on platform-agent.exe

8. Record in notebook


Tools inventory · c2_rust hunt correlation · AD domain lab · MOC