← Back to all projects

Dexter's Lab (Part 2)
Blue Team Analysis — SIEM Forensics & Vulnerability Assessment

Splunk SIEM Blue Team Forensics OpenVAS Active Directory CVE Analysis Threat Hunting Incident Response
Type: Blue Team & Forensics Lab
Tools: Splunk, OpenVAS (Greenbone)
Domain: dexters-lab.local

Overview

This project involved the design and deployment of a multi-machine, cross-hardware virtualized environment simulating a corporate Active Directory infrastructure. The lab is split between a high-performance Host PC (The Enterprise Network) and a Laptop (The Attack Surface), interconnected via a physical LAN bridge to simulate real-world network pivoting and lateral movement.

Dexter's Lab Part 2
Dexter's Lab (Part 2) — Blue Team & Forensics

Project Context & Ethical Disclaimer

This lab was conducted within a strictly isolated VMware architecture with no external internet connectivity to ensure a controlled and safe execution environment. This project was developed for educational purposes as part of a self-driven curriculum following TryHackMe's advanced penetration testing pathways. All techniques demonstrated were performed on owned hardware within a private, sandboxed domain to simulate modern threat actor TTPs (Tactics, Techniques, and Procedures) for defensive research and skill validation.

Blue Team Objective

By deploying the Splunk Universal Forwarder across all lab assets prior to execution, I ensured 100% telemetry capture of the activities conducted in Part 1. This phase focuses on Post-Exploitation Analysis: identifying the "digital fingerprints" left behind by the adversary.

While the attack successfully bypassed real-time preventative defenses (AV/Firewall), this analysis demonstrates that a properly configured SIEM provides an indisputable record of the breach. My objective is to reconstruct the initial access method, lateral movement paths and data exfiltration vectors, then define the logic for Automated Alerts that would trigger an immediate SOC response if these patterns were detected in a production environment.

Splunk SIEM Overview
Splunk SIEM — Full telemetry capture dashboard

Identifying "First Contact"

To identify the "First Contact" from the adversary, I utilized a CIDR-match filter in Splunk to isolate inbound traffic originating from outside the local production subnet (192.168.10.0/24).

During the forensic phase, I noted that Event ID 5156 (Connection Allowed) was not present in the telemetry. This is a common finding in default Windows Server 2008 configurations, as "Filtering Platform Connection" auditing is typically disabled to conserve disk space and CPU.

To pivot, I analyzed Event ID 4624 (Logon Type 3). Even without explicit firewall logs, the SIEM captured the network-level handshake from the attacker's IP (192.168.181.129). This allowed me to correlate the "Network Knock" with the subsequent service crashes, proving that a lack of granular firewall logging does not mean an attacker is invisible — it just requires a different forensic lens.

CIDR Filter Splunk
Fig 1 — CIDR-match filter isolating attacker traffic
Event ID 4624
Fig 2 — Event ID 4624 correlating attacker IP
Network Knock Evidence
Fig 3 — Network handshake evidence in telemetry

Detecting the Initial Foothold (EternalBlue on Windows Server 2008)

To gain an initial foothold, the attacker targeted the legacy Windows Server 2008 instance via the MS17-010 (EternalBlue) vulnerability. While the exploit is executed at the kernel level, it leaves a distinct trail in the Windows System logs.

Using Splunk, I filtered for Event ID 1001 (BugCheck) and Event ID 7031 (Service Control Manager). The telemetry shows a critical failure in the "Server" service at the exact timestamp of the attack. This represents the "Exploit Phase" — where the memory corruption occurs. Unlike a standard login, this activity is characterized by a service crash immediately followed by the spawning of an unauthorized shell with SYSTEM privileges.

EternalBlue Event Logs
Fig 4

During the forensic reconstruction of the Windows 2008 compromise, I identified a cluster of critical events at 03:02:06 AM. While the primary target was the SMBv1 vulnerability (EternalBlue), the telemetry reveals a BEX64 (Buffer Overflow Exception) in the spoolsv.exe process (Print Spooler).

Why this matters: In legacy environments, exploits often leverage the Print Spooler to execute shellcode. The SIEM captured Event ID 7034, confirming that the service crashed under the pressure of the malformed exploit packets. This timestamp marks the exact moment the adversary successfully attempted memory injection to gain a SYSTEM-level shell.

BEX64 Spooler Crash
Fig 5
Event ID 7034
Fig 6

Logging Gaps — A Real-World Lesson

In my attempt to locate the telemetry for the Metasploit hashdump and credential theft phase, I encountered a common real-world hurdle: Logging Gaps.

While the Splunk Universal Forwarder was successfully capturing system events, the Windows Server 2008 audit policy was not configured to monitor Registry Object Access or Service Installation (Event 7045) for non-persistent services.

The Takeaway: This confirms that a SIEM is only as good as the End-Point Audit Policy. An attacker operating in memory or using transient services can bypass a default SIEM configuration. For my defensive remediation, I am documenting the need for Group Policy Objects (GPO) that enforce "Advanced Audit Policy Configuration" — specifically for SAM database access and Kernel-mode driver loading.

Logging Gaps
Fig 7 — Audit policy gap on Windows Server 2008

Tracing Lateral Movement via SOCKS Proxy

During the reconstruction of the lateral movement phase, I identified a significant discrepancy in the telemetry. While the Windows 2008 server acted as a central pivot point (Proxy) for the attack, outbound Event ID 4648 logs only captured connections to the Domain Controller.

Lateral Movement Gap
Fig 8 — Event ID 4648 — Pivot host outbound connections

This "silence" regarding the workstations (Deedee-PC1 and MrDad-PC2) suggests the use of an in-memory SOCKS proxy within the C2 framework (Meterpreter). By bypassing the standard Windows Networking API, the adversary successfully avoided generating outbound authentication logs on the pivot host.

The Solution: To confirm the attack path, I pivoted to a Target-Centric Analysis, querying the destination workstations for inbound network logons (Event ID 4624) originating from the 2008 server's IP. This correlation successfully mapped the full breadth of the lateral movement that was otherwise "invisible" on the proxy server itself.

Target Centric Analysis
Fig 9 — Target-centric analysis mapping lateral movement

The logs confirm Event ID 4624 (Logon Type 3) occurring shortly after the credential dump on the 2008 server. This indicates that the adversary utilized the harvested NTLM hashes to authenticate remotely.

Event 4624 Logon Type 3
Fig 10

Privilege Escalation via CVE-2023-36874 (WER)

First I needed to check all the error and process creation events that don't belong to Microsoft Windows, excluding the path C:\windows. Since we know the user DeeDee doesn't have administrative privileges, anything outside that path is a suspect.

I found the main suspect: stageless.exe.

Suspect Process
Fig 11
stageless.exe Found
Fig 12 — Non-system processes — stageless.exe identified

Checking Windows Error Reporting (Event ID 1001) revealed the payload stageless.exe.

WER 1001 Check
Fig 13 — Event ID 1001 (WER) check
Payload Found via WER
Fig 14 — Payload stageless.exe confirmed via WER

Deep Dive: Analysing the 1001 Log

As seen in the Splunk telemetry, an Event ID 1001 (APPCRASH) was generated for the payload stageless.exe. The Exception Code c0000005 (Access Violation) is a critical forensic indicator; it confirms that the process attempted to perform unauthorized memory operations — a direct byproduct of the CVE-2023-36874 privilege escalation exploit.

Deep Dive Log Analysis
Fig 15 — Deep dive: Event ID 1001 memory corruption analysis

Evidence of Exploitation: The 1000/1001 Sequence

While the initial execution of the stageless.exe payload was not captured by standard process auditing, the impact of the memory corruption exploit was unavoidable.

Splunk analysis revealed a chronological pair of events: Event ID 1000 (The Crash) followed immediately by Event ID 1001 (The Reporting).

While codes like 0xc0000005 are often buried in documentation, identifying them manually across diverse logs is a bottleneck for human analysts. In this instance, Gemini instantly identified the hex code from the raw Splunk log, providing the "Access Violation" context in seconds. This type of live, AI-driven translation is becoming the gold standard for modern SOC teams.

Even in the absence of a "Process Start" log, this 1-2 punch in the Application logs provides forensic certainty that a malicious binary was executed and successfully manipulated the system memory to trigger an escalation.

Now that I have evidence of privilege escalation I need to check all other users that were present on this workstation. Since the user MrDad was here I will continue checking his PC (MrDad-PC2).

Evidence of Lateral Movement & Tooling Confirmation

After verifying the successful logon on MRDAD-PC2 for the user MrDad, I analyzed the source metadata to determine the origin of the attack. The telemetry (Event ID 4624) confirms the connection originated from the compromised Windows 2008 pivot (192.168.10.56).

1000/1001 Sequence
Fig 16 — Workstation Name “Kali” — SOCKS proxy fingerprint
Lateral Movement Evidence
Fig 17

The discovery of a Logon Type 3 (Network) event on MRDAD-PC2 from the user MrDad provides a complete picture of the adversary's lateral movement strategy. This forensic trail proves how an attacker can leverage a single legacy system to bypass internal network segmentations and compromise high-value user workstations.

Malicious Service Installation: The "okgvsi" Pivot

Remote execution tools like Metasploit's psexec or Impacket don't just "log in" — they create a temporary Windows Service to run commands as LocalSystem. While hunting for the Dexter-Admin impersonation, I discovered a critical artifact on MRDAD-PC2: the installation of an unauthorized service named "okgvsi".

okgvsi Service
Fig 18 — Unauthorized service "okgvsi" installation detected

Technical Analysis of the "okgvsi" Service

This service acted as the "launcher" for the final stage of the attack. Once this SYSTEM-level shell was established, the adversary was able to pivot from the local machine context to the Domain Admin context, leading to the ultimate compromise of the Domain Controller.

Post-Incident Assessment: Vulnerability Scanning with OpenVAS

To validate the security posture of the lab and identify the "Root Causes" of the successful compromise, I conducted a full credentialed scan using OpenVAS (Greenbone Vulnerability Manager).

OpenVAS Overview
Fig 19 — OpenVAS (Greenbone) — vulnerability scan dashboard

To ensure a comprehensive audit of internal risks, the local firewalls were temporarily adjusted to allow credentialed scanning, simulating an environment where an adversary has already bypassed the perimeter. Configuring a vulnerability scanner for a Windows Domain environment requires more than just valid credentials — to achieve a successful "Authenticated Scan," I ensured the Remote Registry service was active and utilized the DOMAIN\Username syntax within OpenVAS.

OpenVAS Config
Fig 20 — Enabling Remote Registry for authenticated scanning

Case Study: Windows Server 2008

The assessment of the Windows Server 2008 target yielded a high density of critical vulnerabilities, many of which are associated with the SMBv1 protocol and unpatched RDP services.

2008 Scan Results
Fig 21 — Windows Server 2008 — critical vulnerability density

Key Findings: High-Impact Vulnerabilities

EternalBlue CVE
Fig 22 — CVE-2017-0144 EternalBlue (CVSS 10.0)
BlueKeep CVE
Fig 23 — CVE-2019-0708 BlueKeep (CVSS 10.0)

The presence of both EternalBlue and BlueKeep effectively makes this server an "open book" to any threat actor on the network. In a modern infrastructure, these findings would mandate an immediate decommissioning of the asset.

2008 Analysis
Fig 24 — Analysis summary — Windows Server 2008

Analysis of Dee-Dee-PC1

While the scan of Dee-Dee-PC1 identified several security weaknesses, it did not explicitly flag the specific path used for privilege escalation because its post-exploit. This highlights a critical lesson in Security Operations: Vulnerability Management is not a replacement for a Penetration Test.

DeeDee PC1 Scan
Fig 25 — Dee-Dee-PC1 — scan results overview

The scan provided the "Initial Access" vector (IExpress Search Path), but the transition from user dee-dee to SYSTEM required manual exploitation of the OS configuration.

DeeDee PC1 Findings
Fig 26 — Dee-Dee-PC1 — DLL hijacking & TLS findings

Analysis of MrDad-PC2

The assessment of MrDad-PC2 revealed 188 distinct vulnerabilities. While the number seems overwhelming, a technical analysis shows they are clustered around a few core outdated components: the Microsoft Edge Browser and the Windows 10 Operating System build.

The "Snowball Effect" of CVEs: In modern software, a single "Cumulative Update" might address 50+ CVEs at once. By missing the 2025 update cycle, MrDad-PC2 has accumulated over a year's worth of security debt. A single attacker exploiting CVE-2025-2137 could potentially compromise the entire workstation due to the lack of these foundational security "rollups."

MrDad PC2 Scan
Fig 27 — MrDad-PC2 — 188 vulnerabilities identified

The scanner utilizes Version-Based Detection. By comparing the installed version of Microsoft Edge against the known secure version, GVM enumerates every CVE discovered in that gap.

While the Edge vulnerabilities are serious, they usually require a user to click a link. A .NET Framework RCE is often much more dangerous because .NET is the foundation for so many Windows services. If an attacker can send a specially crafted packet to a service running .NET on that machine, they can take over the system without Mr. Dad ever touching his mouse.

MrDad PC2 Edge CVEs
Fig 28 — Version-based CVE detection — Edge & .NET risk

Analysis of Windows Server 2022

The scan of the Windows Server 2022 target initially yielded 133 vulnerabilities, a high number for a modern enterprise OS.

2022 Scan Initial
Fig 29 — Windows Server 2022 — initial scan (133 vulnerabilities)

However, after applying a regex filter to suppress "Edge Chromium" results, the true security posture was revealed. The regex filter apply_overrides=0 levels=hml sort=severity nvt~^((?!Edge).)*$ tells GVM: Show me everything UNLESS the name contains the word 'Edge'.

The presence of a web browser on a production server significantly increases the "Attack Surface." In a hardened environment, the remediation strategy would not just be "patching" Edge, but removing it entirely or disabling it via Group Policy (GPO) to minimize the footprint of the server.

2022 Filtered Scan
Fig 30 — Windows Server 2022 — afterfilter true attack surface

Vulnerability Management Dashboard

The final phase of this deployment successfully transitioned from individual asset troubleshooting to a centralized, high-level Vulnerability Management Dashboard. By aggregating the data from four distinct generations of Windows architecture — ranging from legacy Windows Server 2008 to modern Windows Server 2022 — we achieved a 360-degree view of the laboratory's attack surface.

Vulnerability Dashboard
Fig 31 — Centralized vulnerability management dashboard

This last part of the project confirms that effective cybersecurity is not defined by a single tool, but by the ability to manage the entire lifecycle of a vulnerability — from detection and troubleshooting to manual verification and reporting.