Stop attackers before they own your domain.
This project is a battle-tested detection capability designed to identify the critical path of an intrusion: Brute Force β Lateral Movement β Privilege Abuse. Relying on standard Windows logs, it builds a resilient detection mesh that identifies attacks even when they use legitimate tools like psexec or RDP.
π₯ Why this matters: Most SOCs only alert on "Failed Logins". This project connects the dotsβalerting only when a user fails 20 times and then successfully hops to a critical server.
| Component | Description | Count |
|---|---|---|
| Splunk Detection Rules | SPL correlation rules for all attack phases | 5 rules |
| Elastic Detection Rules | KQL/EQL rules with MITRE mapping | 5 rules |
| Investigation Playbooks | Step-by-step analyst response guides | 4 playbooks |
| Incident Report Templates | Standardized documentation templates | 2 templates |
| Telemetry Configs | Sysmon + Windows Audit Policy | 2 configs |
| Validation Framework | Scripts + sample logs for testing | Complete |
| Lab Practice Guide | Hands-on attack simulation guide | Detailed |
We track the adversary at every step of the movement phase.
graph LR
A[π Brute Force] -->|Phase 1| B[β
Credential Access]
B -->|Phase 2| C[π Lateral Movement]
C -->|Phase 3| D[π Domain Dominance]
style A fill:#a80000,stroke:#333,stroke-width:2px,color:#fff
style B fill:#e67e22,stroke:#333,stroke-width:2px,color:#fff
style C fill:#f1c40f,stroke:#333,stroke-width:2px,color:#000
style D fill:#27ae60,stroke:#333,stroke-width:2px,color:#fff
| Technique ID | Technique Name | Tactic | Detection | Data Source |
|---|---|---|---|---|
| T1110 | Brute Force | Credential Access | β Splunk + Elastic | Event 4625 |
| T1110.001 | Password Guessing | Credential Access | β Splunk + Elastic | Event 4625 |
| T1110.003 | Password Spraying | Credential Access | β Splunk + Elastic | Event 4625 |
| T1078 | Valid Accounts | Initial Access | β Splunk + Elastic | Event 4624 |
| T1021 | Remote Services | Lateral Movement | β Splunk + Elastic | Event 4624 |
| T1021.001 | RDP | Lateral Movement | β Splunk + Elastic | Event 4624 (Type 10) |
| T1021.002 | SMB/Admin Shares | Lateral Movement | β Splunk + Elastic | Event 4624 (Type 3) |
| T1078.002 | Domain Accounts | Privilege Escalation | β Splunk + Elastic | Event 4672 |
Full mapping available in MITRE Mapping Docs.
- SIEM: Splunk Enterprise (8.x+) OR Elastic Stack (8.x+)
- Python: 3.8+ (for validation scripts)
- pip packages:
requests(pip install requests)
| Event ID | Description | Log Source | Required |
|---|---|---|---|
| 4624 | Successful Logon | Windows Security | β Yes |
| 4625 | Failed Logon | Windows Security | β Yes |
| 4672 | Special Privileges Assigned | Windows Security | β Yes |
| Sysmon 1 | Process Creation | Sysmon | π‘ Recommended |
| Sysmon 3 | Network Connection | Sysmon | π‘ Recommended |
Apply these configs before deploying detections:
- π Windows Audit Policy - Enable Logon/Logoff auditing
- π Sysmon Configuration - Target lateral movement ports
git clone https://github.com/Ak-cybe/SOC-Lateral-Movement-Detection.git
cd SOC-Lateral-Movement-DetectionEdit the CSV files in lookups/ to match your environment:
lookups/
βββ admin_jump_servers.csv # IT jump server IPs
βββ service_accounts.csv # Automation/service accounts
βββ it_automation_accounts.csv # CI/CD and tool accounts
Splunk:
# Copy SPL files to Splunk Search Head
cp correlation-rules/splunk/*.spl $SPLUNK_HOME/etc/apps/search/local/savedsearches/Elastic:
# Import via Kibana Detection Rules API or UI
# Navigate to Security β Detections β Manage rules β Import# Set environment variables
export SIEM_URL="http://localhost:8088/services/collector/event"
export SIEM_TOKEN="YOUR_HEC_TOKEN"
export SIEM_TYPE="splunk" # or "elastic"
# Run validation
python scripts/replay_attack_scenario.pyExpected output: Alerts matching tests/expected_alerts.json
SOC-Lateral-Movement-Detection/
βββ π correlation-rules/ # Detection Rules
β βββ splunk/ # 5 SPL rules
β βββ elastic/ # 5 JSON rules
βββ π configs/ # Telemetry Configs
β βββ sysmon_config.xml
β βββ windows_audit_policy.xml
βββ π investigation-playbook/ # Analyst Playbooks
β βββ brute_force_playbook.md
β βββ lateral_movement_playbook.md
β βββ false_positive_handling.md
β βββ mitre_attack_mapping.md
βββ π incident-report/ # Report Templates
βββ π lookups/ # Exclusion Lists (CSV)
βββ π logs/ # Sample Attack Logs
βββ π scripts/ # Validation Tools
βββ π tests/ # Expected Outputs
βββ π docs/ # Documentation
βββ π screenshots/ # UI Screenshots
βββ π PRACTICE_LAB_GUIDE.md # Hands-on Lab Setup
- Set up a test lab - Follow PRACTICE_LAB_GUIDE.md
- Deploy telemetry - Apply Sysmon + Audit Policy configs
- Import detection rules - Load SPL/JSON rules into your SIEM
- Run attack simulation - Execute
python scripts/replay_attack_scenario.py - Verify alerts - Confirm detection fires with correct severity and MITRE mapping
| Document | Description |
|---|---|
| Architecture Diagram | Data flow and component breakdown |
| Severity Matrix | Risk score calculation formulas |
| Troubleshooting | Common issues and fixes |
| Validation Guide | Testing procedures |
| Detection Engineering Notes | FP tuning and maintenance |
| Log Forwarding Guide | Data source requirements |
Click to expand screenshots
- Splunk detection rules (5 rules)
- Elastic detection rules (5 rules)
- Investigation playbooks
- MITRE ATT&CK mapping
- Validation framework
- Practice lab guide
- Sigma rule conversion for portability
- Jupyter notebook for Tier-3 analysis
- Baseline analysis automation
- Grafana dashboard for alert metrics
- Threat intel feed integration (AbuseIPDB)
- SOAR playbook templates (Cortex XSOAR, Splunk SOAR)
- Machine learning anomaly detection
- MITRE ATT&CK: T1110 (Brute Force)
- MITRE ATT&CK: T1021 (Remote Services)
- MITRE ATT&CK: T1078 (Valid Accounts)
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.


