Hunting for Unusual Service Installations
Overview
Attackers frequently install malicious Windows services for persistence and privilege escalation (MITRE ATT&CK T1543.003 — Create or Modify System Process: Windows Service). Event ID 7045 in the System event log records every new service installation. This skill parses .evtx log files to extract service installation events, flags suspicious binary paths (temp directories, PowerShell, cmd.exe, encoded commands), and correlates with known attack patterns.
When to Use
Trigger phrases:
"hunting for unusual service installations"
"Detect suspicious Windows service installations (MITRE ATT&CK T1543"
When investigating security incidents that require hunting for unusual service installations
When building detection rules or threat hunting queries for this domain
When SOC analysts need structured procedures for this analysis type
When validating security monitoring coverage for related attack techniques
Prerequisites
- Python 3.9+ with
python-evtx, lxml
- Windows System event log (.evtx) files
- Access to live System event log (optional, for real-time monitoring)
- Sysmon logs for enhanced process tracking (optional)
Steps
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Parse System.evtx for Event ID 7045 (new service installed)
- Extract service name, binary path, service type, and account
- Flag services with suspicious binary paths (temp dirs, encoded commands)
- Detect PowerShell-based service creation patterns
- Identify services running as LocalSystem with unusual paths
- Cross-reference with known legitimate service baselines
- Generate threat hunting report with MITRE ATT&CK T1543.003 mapping
Expected Output
- JSON report listing all new service installations with risk scores, suspicious indicators, and remediation recommendations
- Timeline of service installation events with binary path analysis
When NOT to Use
- You're responding to a known incident (use IR skills)
- Task is about analyzing confirmed malware (use analyzing-* skills)
- You need to implement detection rules (use implementing-* skills)
- Task is about vulnerability scanning (use scanning tools)
- You don't have access to endpoint/network data
- Task requires compliance auditing (use auditing-* skills)
Red Flags
- Performing actions without explicit written authorization from the asset owner
- Testing against production systems without a defined scope and rules of engagement
- Acting on threat intelligence without validating source reliability
- Sharing classified or sensitive indicators without proper handling procedures
- Alerting threat actors to detection capabilities through visible response actions
Process
- Reconnaissance — Gather target information, identify attack surface, enumerate services
- Analysis/Exploitation — Execute the technique, analyze results, document findings
- Reporting — Document IOCs, write findings, provide remediation recommendations
Verification
- All steps executed successfully against a test environment before production use
- Output documented with screenshots or logs demonstrating expected behavior
- Results validated against known-good baselines or reference implementations
- Documentation complete enough for another analyst to reproduce findings
Anti-Rationalization Table
| Rationalization |
Reality |
| "We are too small to be targeted" |
Automated attacks target everyone. Size does not matter. |
| "Security slows us down" |
A breach slows you down 100x more. Build security in from the start. |
| "We will fix it after launch" |
Vulnerabilities in production are exploited within hours. Fix before deploy. |
1---2name: hunting-for-unusual-service-installations3description: Use when detect suspicious Windows service installations (MITRE ATT&CK T1543.003) by parsing System event logs for Event ID 7045, analyzing service binary paths, and identifying indicators of persistence mechanisms. Use when detecting suspicious windows service installations (mitre att&ck t1543.003) by parsing.4license: Apache-2.05---678# Hunting for Unusual Service Installations910## Overview1112Attackers frequently install malicious Windows services for persistence and privilege escalation (MITRE ATT&CK T1543.003 — Create or Modify System Process: Windows Service). Event ID 7045 in the System event log records every new service installation. This skill parses .evtx log files to extract service installation events, flags suspicious binary paths (temp directories, PowerShell, cmd.exe, encoded commands), and correlates with known attack patterns.131415## When to Use16**Trigger phrases:**17- "hunting for unusual service installations"18- "Detect suspicious Windows service installations (MITRE ATT&CK T1543"192021- When investigating security incidents that require hunting for unusual service installations22- When building detection rules or threat hunting queries for this domain23- When SOC analysts need structured procedures for this analysis type24- When validating security monitoring coverage for related attack techniques2526## Prerequisites2728- Python 3.9+ with `python-evtx`, `lxml`29- Windows System event log (.evtx) files30- Access to live System event log (optional, for real-time monitoring)31- Sysmon logs for enhanced process tracking (optional)3233## Steps3435```python36# Example: IOC detection37import re3839IOC_PATTERNS = {40 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",41 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",42 "hash_md5": r"\b[a-f0-9]{32}\b",43 "hash_sha256": r"\b[a-f0-9]{64}\b",44}4546def extract_iocs(text: str) -> dict:47 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}48```49501. Parse System.evtx for Event ID 7045 (new service installed)512. Extract service name, binary path, service type, and account523. Flag services with suspicious binary paths (temp dirs, encoded commands)534. Detect PowerShell-based service creation patterns545. Identify services running as LocalSystem with unusual paths556. Cross-reference with known legitimate service baselines567. Generate threat hunting report with MITRE ATT&CK T1543.003 mapping5758## Expected Output5960- JSON report listing all new service installations with risk scores, suspicious indicators, and remediation recommendations61- Timeline of service installation events with binary path analysis62## When NOT to Use6364- You're responding to a known incident (use IR skills)65- Task is about analyzing confirmed malware (use analyzing-* skills)66- You need to implement detection rules (use implementing-* skills)67- Task is about vulnerability scanning (use scanning tools)68- You don't have access to endpoint/network data69- Task requires compliance auditing (use auditing-* skills)707172## Red Flags7374- Performing actions without explicit written authorization from the asset owner75- Testing against production systems without a defined scope and rules of engagement76- Acting on threat intelligence without validating source reliability77- Sharing classified or sensitive indicators without proper handling procedures78- Alerting threat actors to detection capabilities through visible response actions7980## Process81821. **Reconnaissance** — Gather target information, identify attack surface, enumerate services831. **Analysis/Exploitation** — Execute the technique, analyze results, document findings841. **Reporting** — Document IOCs, write findings, provide remediation recommendations8586## Verification8788- All steps executed successfully against a test environment before production use89- Output documented with screenshots or logs demonstrating expected behavior90- Results validated against known-good baselines or reference implementations91- Documentation complete enough for another analyst to reproduce findings9293## Anti-Rationalization Table9495| Rationalization | Reality |96|---|---|97| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |98| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |99| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |