Estructura del CSV
Todas las acciones de masstin producen un CSV unificado con 14 columnas, independientemente del origen (Windows EVTX, logs Linux, Winlogbeat JSON o Cortex XDR):
| # |
Columna |
Descripción |
| 1 |
time_created |
Marca temporal del evento |
| 2 |
dst_computer |
Máquina destino (la que recibe la conexión) |
| 3 |
event_type |
Clasificación del evento (ver abajo) |
| 4 |
event_id |
ID original del evento (ej: 4624, SSH_SUCCESS) |
| 5 |
logon_type |
Tipo de logon de Windows tal como lo reporta el evento (ej: 2, 3, 7, 10, 11) |
| 6 |
target_user_name |
Cuenta de usuario objetivo de la acción |
| 7 |
target_domain_name |
Dominio del usuario objetivo |
| 8 |
src_computer |
Máquina origen (la que inició la conexión) |
| 9 |
src_ip |
IP de origen |
| 10 |
subject_user_name |
Cuenta de usuario que inició la acción |
| 11 |
subject_domain_name |
Dominio del usuario que inició la acción |
| 12 |
logon_id |
ID de sesión para correlación (ej: 0x1A2B3C) |
| 13 |
detail |
Contexto adicional según el tipo de evento |
| 14 |
log_filename |
Fichero de artefacto de origen |
Clasificación de event_type
Masstin clasifica cada evento en una de cuatro categorías:
| event_type |
Significado |
Cuando |
SUCCESSFUL_LOGON |
Autenticación exitosa |
El usuario se autenticó correctamente y se estableció sesión |
FAILED_LOGON |
Autenticación fallida |
Credenciales incorrectas, cuenta bloqueada o fallo de pre-autenticación |
LOGOFF |
Sesión finalizada |
El usuario cerró sesión o la sesión fue desconectada |
CONNECT |
Evento de conexión |
Conexión de red sin resultado de autenticación |
Mapeo de Event ID a event_type
Security.evtx
| Event ID |
event_type |
Descripción |
Columna detail |
| 4624 |
SUCCESSFUL_LOGON |
Logon exitoso |
Nombre del proceso |
| 4625 |
FAILED_LOGON |
Logon fallido |
Código SubStatus (ej: 0xC000006A = contraseña incorrecta) |
| 4634 |
LOGOFF |
Logoff |
|
| 4647 |
LOGOFF |
Logoff iniciado por usuario |
|
| 4648 |
SUCCESSFUL_LOGON |
Logon con credenciales explícitas (runas) — se registra en el host origen, así que dst_computer es el TargetServerName |
Nombre del proceso |
| 4768 |
SUCCESSFUL_LOGON / FAILED_LOGON |
Solicitud de TGT Kerberos |
Según campo Status |
| 4769 |
SUCCESSFUL_LOGON / FAILED_LOGON |
Solicitud de Service Ticket Kerberos |
Según campo Status |
| 4770 |
SUCCESSFUL_LOGON |
Renovación de TGT Kerberos |
|
| 4771 |
FAILED_LOGON |
Fallo de pre-autenticación Kerberos |
|
| 4776 |
SUCCESSFUL_LOGON / FAILED_LOGON |
Autenticación NTLM |
Según campo Status |
| 4778 |
SUCCESSFUL_LOGON |
Sesión reconectada (logon_type 10) |
|
| 4779 |
LOGOFF |
Sesión desconectada (logon_type 10) |
|
| 5140 |
SUCCESSFUL_LOGON |
Acceso a recurso compartido |
ShareName (ej: \\*\IPC$) |
Terminal Services (RDP)
| Event ID |
Origen |
event_type |
Descripción |
| 21 |
LocalSessionManager |
SUCCESSFUL_LOGON |
Sesión RDP iniciada |
| 22 |
LocalSessionManager |
SUCCESSFUL_LOGON |
Shell RDP listo |
| 24 |
LocalSessionManager |
LOGOFF |
Sesión RDP desconectada |
| 25 |
LocalSessionManager |
SUCCESSFUL_LOGON |
Sesión RDP reconectada |
| 1024 |
RDPClient |
CONNECT |
Conexión RDP saliente |
| 1102 |
RDPClient |
CONNECT |
Conexión RDP saliente |
| 1149 |
RemoteConnectionManager |
SUCCESSFUL_LOGON |
Autenticación RDP exitosa |
| 131 |
RdpCoreTS |
CONNECT |
Transporte RDP aceptado |
SMB
| Event ID |
Origen |
event_type |
Descripción |
Columna detail |
| 1009 |
SMBServer/Security |
FAILED_LOGON |
El servidor denegó el acceso anónimo al cliente |
|
| 551 |
SMBServer/Security |
FAILED_LOGON |
Autenticación SMB fallida |
|
| 31001 |
SMBClient/Security |
FAILED_LOGON |
El cliente no consiguió autenticarse en el servidor |
ShareName |
| 5140 |
Security.evtx |
SUCCESSFUL_LOGON |
Acceso a recurso compartido |
ShareName (ej: \\*\IPC$) |
| 30803-30808 |
SMBClient/Connectivity |
CONNECT |
Eventos de conectividad SMB |
|
WinRM y WMI
| Event ID |
Origen |
event_type |
Descripción |
columna detail |
| 6 |
WinRM/Operational |
CONNECT |
Sesión PowerShell Remoting iniciada (sistema origen) |
WinRM: <conexión> |
| 5858 |
WMI-Activity/Operational |
CONNECT |
Ejecución WMI remota (sistema destino, solo cuando ClientMachine difiere de Computer) |
WMI: <operación> |
Sysmon
| Event ID |
Origen |
event_type |
Descripción |
Columna detail |
| 3 |
Sysmon/Operational |
CONNECT |
Conexión de red a un puerto de servicio de movimiento lateral (22, 135, 139, 445, 1433, 3306, 3389, 5900, 5985, 5986); el host con Sysmon es el extremo local e Initiated marca la dirección |
Sysmon3 <protocolo> <proceso> :<puerto> |
Scheduled Tasks
| Event ID |
Origen |
event_type |
Descripción |
columna detail |
SCHTASK |
XML de tarea (Windows\System32\Tasks) |
CONNECT |
Tarea programada remotamente (máquina del Author diferente del hostname local) |
Task: <nombre> -> <comando> |
Linux
| Event ID |
event_type |
Descripción |
Columna detail |
SSH_SUCCESS |
SUCCESSFUL_LOGON |
Autenticación SSH exitosa (log de sshd, journald, auditd USER_LOGIN) |
Método de auth (password/publickey) |
SSH_FAILED |
FAILED_LOGON |
Autenticación SSH fallida |
Método de auth |
SSH_PREAUTH |
CONNECT |
Conexión cerrada antes de autenticarse (cierre [preauth], sin identification string) |
|
SSH_CONNECT |
CONNECT |
Conexión SSH (xinetd) |
|
LOGIN |
SUCCESSFUL_LOGON |
Registro de login en wtmp / utmp |
|
FAILED_LOGIN |
FAILED_LOGON |
Registro de btmp |
|
LASTLOG |
SUCCESSFUL_LOGON |
Último login por cuenta (lastlog) |
|
LOGOUT |
LOGOFF |
Fin de sesión emparejado con su login por el pid de sshd (wtmp, pam session closed, journald, auditd USER_END) |
|
logon_type es SSH en todas las filas de Linux.
Cortex XDR
| Origen |
event_type |
Descripción |
| Network (puertos 22/445/3389/5985/5986 por defecto) |
CONNECT |
Datos de conexión a nivel de red |
| EVTX Forensics |
Según Event ID |
Mismo mapeo que Security.evtx |
La columna logon_id
El campo logon_id contiene el identificador de sesión extraído del campo TargetLogonId de los eventos de Security.evtx (4624, 4634, 4647, 4648; LogonID en 4778/4779). Esto permite correlacionar sesiones: vincular un evento de logon con su logoff correspondiente para determinar la duración de la sesión.
Para eventos de Terminal Services se usa el SessionId cuando está disponible. En las filas de Linux lleva el pid del proceso sshd (sshd[pid], _PID de journald, pid= de auditd, ut_pid de wtmp), el mismo en el login y en su LOGOFF. Para Cortex y SMB este campo está vacío.
La columna detail
La columna detail proporciona contexto adicional que varía según el tipo de evento:
| Evento |
Contenido en detail |
| 4624, 4648 |
Nombre del proceso que inició el logon |
| 4625 |
Código hex SubStatus indicando el motivo del fallo |
| 5140 |
ShareName (ej: \\*\IPC$, \\*\C$, \\*\SYSVOL) |
| SMB 31001 |
ShareName |
| Sysmon 3 |
Protocolo, proceso que inicia la conexión y puerto de servicio |
| Eventos SSH |
Método de autenticación (password, publickey) |
| Cortex Network |
Línea de comandos del proceso que generó la conexión |
| Otros eventos |
Vacío |
Códigos SubStatus comunes del 4625
| SubStatus |
Significado |
0xC000006A |
Contraseña incorrecta |
0xC0000064 |
El usuario no existe |
0xC0000072 |
Cuenta deshabilitada |
0xC0000234 |
Cuenta bloqueada |
0xC0000070 |
Restricción de estación de trabajo |
0xC000006D |
Nombre de usuario o información de autenticación incorrectos |
0xC0000071 |
Contraseña expirada |
0xC0000224 |
La contraseña debe cambiarse en el próximo logon |
Preservación de datos
Masstin preserva los valores originales de la evidencia. Los nombres de nodos (hostnames, IPs) y propiedades se almacenan sin transformación. Solo los tipos de relación en bases de datos de grafos se normalizan (mayúsculas, guiones bajos) por restricciones del lenguaje Cypher. Consulta los artículos de Neo4j y Memgraph para más detalles.
$ comments