CyberDefenders - Gh0stNet Intrusion Lab
Writeup · Gh0stNet Intrusion Lab
ESCENARIO
In late May 2026, Kevin Briggs, an analyst at the Chicago investment firm Vireo Financial Group, attended the FinServ Innovation Summit and picked up a branded giveaway at the “DataVault Analytics” booth: a small USB flash drive along with some stickers
One evening at home he plugged it into his personal PC to explore what was on it, he double-clicked what looked like a spreadsheet on the drive. A window flickered and vanished; nothing else seemed to happen, so he thought no more of it. In the background, the disguised launcher had quietly deployed a remote-access trojan that took root on the PC and called out to its operators.
Weeks later, Vireo’s security team flagged anomalous activity inside the corporate domain VireoFinancial.local - a valid account behaving strangely, off-hours, from an unfamiliar source. The trail led back to Kevin, and from there to a home PC nobody had been monitoring. You have been brought in to reconstruct the incident across its two stages: the initial compromise on Kevin’s home PC, and the hands-on-keyboard intrusion that followed inside the corporate network.
You are given three artifacts:
- homepc.E01 : Disk image of Kevin’s home PC (distributed into homepc-part.E01 through .E26).
- homepc.pcap : Network capture from the home PC during the infection.
- Splunk logs : Windows Security + Sysmon telemetry from the corporate domain (DC01, FS-01, WS-KBRIGGS).
HERRAMIENTAS
- PECmd, Wireshark, Splunk, IDA, Registry Explorer
Act 1 - Initial Access
- A removable USB mass-storage device was the entry point onto the home PC. What friendly name did Windows record for the mounted volume of this device?
- El primer acto se va a centrar en el ataque cuando el usuario estaba en su casa por lo que vamos a tomar de referencia todas las partes de homepc.E01-homepc.E26.
- Metemos todas las partes en ftk imager para visualizar todo en uno y extraemos el hive SYSTEM para después irnos a HKLM\SYSTEM\ControlSet001\Enum\SWD\WPDBUSENUM y ver las etiquetas de los drivers

- What is the unique serial number that Windows recorded for that USB mass-storage device?
- Provide the exact UTC date and time the USB device was first connected to the host.
Act 1 - Execution
- The user double-clicked a file on the USB that masqueraded as a spreadsheet and triggered the infection. What is the full path of that file (including drive letter) as recorded in the execution artifact?
- The shortcut launched a loader that immediately copied itself into the user’s %Temp% directory under a randomized name and ran from there. What is the filename of that copied executable?
- Ya que no está activado Sysmon (no podemos buscar por Event ID 11) he optado por ir directamente a $UsnJrnl para ver la creación de archivos justo después de las 17:45:40 (hora de la ejecución del archivo malicioso).
En la imagen podemos ver que justo en ese momento se ejecutó CMD y CONHOST (la interfaz gráfica de cmd). Además, vemos que un archivo con nombre sospechoso se creó.

- Para comprobar que se ejecutó desde Temp, analizamos su Prefetch con PECmd para reafirmarnos en nuestra hipótesis.

Act 1 - Payload Analysis
- The loader decrypted and dropped the resident RAT payload to disk as a hidden file. What is its full path (including filename and extension)?
- Carve that dropped payload from the image and compute its SHA-256 hash. WARNING: the file is a live Gh0st/Farfli DLL - export and handle it only inside an isolated analysis VM.
- rundll32.exe loads the payload DLL and calls a single named export. What is the name of that exported function?
- He de decir que el análisis de malware es lo más flojo que llevo ya que no he porgramado mucho a bajo nivel por lo que me pierdo un poco con todas estas interfaces pero sí sabía que con CFF Explorer se pueden visualizar binarios internamente.
Nos dirigimos a Export Directory y nos aparece la función exportada

- Nos aseguramos de que esta función es usada por loaders maliciosos haciendo una búsqeuda rápida por Internet

- What is the value NAME the malware created for autostart persistence under the user’s Run key?
- What is the PE compilation timestamp (TimeDateStamp) of the dropped payload DLL, in UTC?
- Standard compiler/MFC builds do not produce it, but the payload DLL’s PE carries one extra, non-standard section that is a hallmark of this RAT family. What is the name of that section?
Act 1 - Command and Control
- What is the primary hardcoded HTTP beacon C2 the RAT used (IP address and port)?
- Nos vamos a Wireshark para inspeccionar la trama. Filtramos por HTTP y nos ajustamos a la hora del incidente. Vemos un GET hacia la ip 107.163.56.250/main.php. Bastante sospechoso considerando que ocurre a las 17:46:46. Para asegurarnos de que es esta IP la usada, nos vamos a VirustTotal y vemos que es una de las IPs que el loader contacta, junto con el puerto correspondiente.
- What is the full User-Agent string sent by that primary /main.php beacon channel?
- En el paquete de main.php aparece.
- The RAT used a separate HTTP channel specifically to exfiltrate captured keystrokes. What is the endpoint of that keylog channel (IP address and port)?
Act 1 - Credential Theft
- The keylogger captures credentials typed into RDP sessions and exfiltrates them to its keylog C2 as a single HTTP GET parameter. What is the full encoded value it exfiltrated from this host?
- That value is obfuscated, not plaintext - a straight Base64 decode yields garbage. Using the payload DLL you carved from the disk image, locate the routine that builds this exfil parameter, recover the encoding it applies, and use it to decode the captured value. What is the full decoded keylog record?
- La verdad que lo he hecho a fuerza bruta con Claude ya que el método correcto descrito en el Discord de Cyberdefenders consistía en extraer la DLL, descomprimirla y ejecutarla mientras se usa pe-sieve. Después se buscan las cadenas que contienen el parámetro deseado y, a continuación, se realiza ingeniería inversa de su subrutina para determinar el esquema de codificación/decodificación (este paso lo supe después de hacerlo a fuerza bruta aunque no se me hubiese ocurrido).
- The decoded keylog record shows an EMPTY username field, yet the attacker still obtained a full domain username for the targeted RDP host. Recover that full domain username from a disk artifact.
Act 2 - Initial Access
- Using the stolen credential, the attacker authenticated into the corporate workstation WS-KBRIGGS over RDP. What is the source IP address of that logon?
Act 2 - Credential Access
- From the RDP session the attacker searched SYSVOL for stored Group Policy Preferences credentials and read one XML file. What is the filename of that file?
- What is the GUID of the Group Policy Object whose SYSVOL path contained that GPP file?
- Identify the local administrator account the attacker recovered from that GPP credential and reused, and the cleartext password.
- Siendo sinceros, esta respuesta la he sacado de pura suerte mientras miraba que usuarios estaban presentes en el laboratorio. Me ha dado por ver el CommandLine del Event ID 1 de Sysmon del usuario vf-helpdesk en el PC WS-KBRIGGS y he visto que ha hecho movimiento lateral a FS con el usuario y las claves en texto plano.

- Siendo sinceros, esta respuesta la he sacado de pura suerte mientras miraba que usuarios estaban presentes en el laboratorio. Me ha dado por ver el CommandLine del Event ID 1 de Sysmon del usuario vf-helpdesk en el PC WS-KBRIGGS y he visto que ha hecho movimiento lateral a FS con el usuario y las claves en texto plano.
Act 2 - Persistence
- The attacker installed fileless persistence via a permanent WMI event subscription. What is the name of the event CONSUMER that was created?
- What is the full URL that the WMI consumer downloads and executes when it fires?
Act 2 - Lateral Movement
- The attacker moved to the file server FS-01 without PsExec or scheduled tasks, by instantiating a DCOM object remotely. What is the ProgID of the DCOM object used, and what numeric logon type did the resulting authentication to FS-01 produce?
Act 2 - Collection and Exfiltration
- The attacker hid the collected data in an NTFS alternate data stream before exfiltration. What is the full file:stream path of the ADS that was written?
- The staged data was exfiltrated via DNS tunneling. What is the attacker-controlled domain the encoded data was tunneled to?
- How many DNS queries did the malware issue to the attacker domain to carry out this exfiltration?
- Base64-decode the data label of the FIRST DNS-tunnel query (sequence 0). What file format does the recovered file signature identify the exfiltrated archive as?


























