endpoint-threat-hunt
Skill2 starsChanged 6 months agoMITView on GitHub
Live endpoint threat hunting skill. Systematically scans a system for malicious activity across all categories (Process, File, Network, Persistence, User Account, Registry, etc.) using only native OS tools. Covers macOS, Linux, and Windows at T1 (no privs) and T2 (sudo/admin) levels. Explicitly documents coverage gaps (what requires KEXT, SIP bypass, kernel agents, or eBPF). Produces a structured findings report with severity, confidence, and blind spots. Use when asked to "scan for malware", "hunt for threats", "check if compromised", or "investigate suspicious activity" on an endpoint.
1 other project uses a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- forefy/.contextedited, first seen Sep 29, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- forefy/.context★ 15437% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- w3os-compassSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 5 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 47
If yes → user reopens terminal as sudo, re-runs id, confirm T2, then proceed.
- Very specific: line 48
If no → proceed T1-only, all sudo commands → ⏭️ SKIP (T1 only - rerun as sudo for full coverage).
- Distinctive: line 50
Step 1 - Scope: Ask full scan (all 8 phases) or specific phase.
- Very specific: line 52
Step 2 - Run commands: Run every applicable check.
- Distinctive: line 54
Step 3 - Report: After all phases, output checklist (see Report Format).
- Very specific: line 106
After checklist, one-line summary: X FAIL | X SUSPICIOUS | X SKIP | X PASS
- Distinctive: line 107
No severity tables, no confidence columns, no next-steps sections.
- Very specific: line 114
Read/query only. No rm, kill, net stop, file writes.
- Distinctive: line 115
No data exfiltration. Analysis local only.
- Distinctive: line 123
Complete the scan: Do not stop after finding one issue.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Endpoint Threat Hunt Skill
Identity
Expert IR analyst. Hunt malicious activity using native OS tools only. No agents, no kernel extensions, no SIP bypass. Read/query only - never modify, delete, or exfiltrate. T1 (no privs) or T2 (sudo/admin). Ambiguous finding → "Suspicious - requires manual review", not "Confirmed malicious". Document blind spots same as findings.
Reference Files
Load on demand:
| File | Load When |
references/macos-checks.md | OS = macOS/Darwin |
references/linux-checks.md | OS = Linux |
references/windows-checks.md | OS = Windows |
references/ioc-patterns.md | Analyzing output, any OS |
references/coverage-constraints.md | Building coverage gap section |
Engagement Protocol
Step 0 - Detect OS + privilege (always first):
uname -s && id # Unix[System.Environment]::OSVersion.Platform; whoami /priv # WindowsDarwin→ macOS → loadmacos-checks.mdLinux→ loadlinux-checks.mdWindows_NT→ loadwindows-checks.md- T1:
uid≠0, no sudo/wheel/admin group. T2:uid=0or privileged group present.
If T1 detected → ask before proceeding:
"You're running as a standard user. Some checks (auth logs, kernel modules, audit policy, etc.) require sudo. Want to reopen this terminal as sudo/admin for full coverage? If not, I'll run T1-only checks and mark T2 items as SKIP."
- If yes → user reopens terminal as sudo, re-runs
id, confirm T2, then proceed. - If no → proceed T1-only, all sudo commands →
⏭️ SKIP (T1 only - rerun as sudo for full coverage).
Step 1 - Scope: Ask full scan (all 8 phases) or specific phase. If symptom given, prioritize matching phase but still complete full scan.
Step 2 - Run commands: Run every applicable check. If T2, sudo commands run normally. If T1, skip sudo commands with the T1-only label. Skip entirely only if binary is genuinely absent (command -v tool fails) or requires KEXT/eBPF/SIP bypass.
Step 3 - Report: After all phases, output checklist (see Report Format).
Investigation Phases
Exact commands, IOC patterns, and flag criteria → see OS-specific reference file.
| # | Phase |
| 1 | Process Activity |
| 2 | Network Activity |
| 3 | Persistence |
| 4 | File Activity |
| 5 | User & Account Activity |
| 6 | Driver/Module Activity |
| 7 | Script & Command Execution |
| 8 | EDR/Security Tool Status |
Report Format
Checklist output - one bullet per check. No tables. No headers beyond phase name.
Status symbols:
✅ PASS- ran clean, no IOCs❌ FAIL- confirmed malicious / critical IOC⚠️ SUSPICIOUS- anomaly, needs review⏭️ SKIP- binary absent (command -vfails) OR requires KEXT / SIP bypass / kernel agent. Never SKIP just because a command needs sudo.
Format:
## Phase 1: Process Activity
- ✅ PASS Process tree - no orphaned or hollowed processes
- ⚠️ SUSPICIOUS /tmp/update [pid 4821] - deleted executable still running
- ✅ PASS No processes with injected memory regions
- ⏭️ SKIP eBPF syscall trace - requires root + kernel support
## Phase 2: Network Activity
- ✅ PASS No unexpected listeners
- ❌ FAIL 192.168.1.5:4444 outbound TCP - matches C2 pattern
...
## Coverage Gaps
- ⏭️ SKIP Kernel rootkit detection - requires eBPF or KEXT
- ⏭️ SKIP Memory forensics - requires agentRules:
- One check = one bullet. No sub-bullets.
- Evidence goes inline after the status:
⚠️ SUSPICIOUS [what was found] - [why suspicious] - After checklist, one-line summary:
X FAIL | X SUSPICIOUS | X SKIP | X PASS - No severity tables, no confidence columns, no next-steps sections.
Rules
- Batch commands by phase.
- Read/query only. No
rm,kill,net stop, file writes. - No data exfiltration. Analysis local only.
- Max value at T1 - don't skip, document what T2 adds.
- Ambiguous = "Suspicious - requires manual review".
- Explain WHY suspicious, not just what was found.
- Timestamps relative to install date + last known-good + now.
- If something looks like a false positive, say so. E.g., "This LaunchAgent is from Homebrew (com.github.homebrew) - common on developer machines, low confidence IOC."
- Complete the scan. Do not stop after finding one issue. Continue all phases - attackers often plant multiple persistence mechanisms and move laterally. One finding does not mean you've found everything.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

