top of page


My First 3 Splunk Queries: Finding the Loudest IP on the Network
I loaded 109,864 events into Splunk and went hunting for the noisiest host on the network. My first query found a suspect. My next two proved it innocent — and somewhere in the middle I realized I'd been writing this query language for ten years without knowing its name.
Aug 37 min read


Going Deeper — Beacons, a Second Host, and What the Data Confessed
Part 2 of the Zeek threat hunt: using SQL to detect C2 beaconing on a fixed cadence, internal reconnaissance across 771 hosts, and a confirmed SSH intrusion — plus the timeline that showed the network was compromised before the attacker I could see ever logged in.
Jul 1010 min read


From Storm Signatures to Attack Signatures
I spent years reading atmospheric data for the anomaly that didn't belong. Finishing TryHackMe's Intro to Log Analysis room, I found the same instinct waiting in an Apache access log, just a different kind of storm. Here's what the room taught me about command-line triage, regex, attack signatures, and reading the story a log is telling.
Jul 65 min read
What I Found In A Zeek Dataset (And How I Found It)
Started with a raw Zeek log — no SIEM, no alerts. Uncovered a Mirai botnet within hours: one internal host behind 500K+ failed Telnet/SSH scans, confirmed by its port signature. A complete threat profile from raw data alone.
Jun 59 min read
bottom of page