CSV Structure
All masstin actions produce a unified CSV with 14 columns, regardless of the source (Windows EVTX, Linux logs, Winlogbeat JSON, or Cortex XDR):
| # |
Column |
Description |
| 1 |
time_created |
Event timestamp |
| 2 |
dst_computer |
Destination hostname (machine that received the connection) |
| 3 |
event_type |
Event classification (see below) |
| 4 |
event_id |
Original Event ID from the source (e.g., 4624, SSH_SUCCESS) |
| 5 |
logon_type |
Windows logon type as reported by the event (e.g., 2, 3, 7, 10, 11) |
| 6 |
target_user_name |
User account targeted by the action |
| 7 |
target_domain_name |
Domain of the target user |
| 8 |
src_computer |
Source hostname (machine that initiated the connection) |
| 9 |
src_ip |
Source IP address |
| 10 |
subject_user_name |
User account that initiated the action |
| 11 |
subject_domain_name |
Domain of the subject user |
| 12 |
logon_id |
Logon session ID for correlation (e.g., 0x1A2B3C) |
| 13 |
detail |
Additional context depending on event type |
| 14 |
log_filename |
Source artifact file |
Event Type Classification
Masstin classifies every event into one of four categories:
| event_type |
Meaning |
When |
SUCCESSFUL_LOGON |
Authentication succeeded |
User authenticated correctly and session was established |
FAILED_LOGON |
Authentication failed |
Incorrect credentials, locked account, or pre-auth failure |
LOGOFF |
Session ended |
User logged off or session was disconnected |
CONNECT |
Connection event |
Network-level connection with no authentication result |
Event ID Mapping
Security.evtx
| Event ID |
event_type |
Description |
detail column |
| 4624 |
SUCCESSFUL_LOGON |
Successful logon |
Process name |
| 4625 |
FAILED_LOGON |
Failed logon |
SubStatus code (e.g., 0xC000006A = wrong password) |
| 4634 |
LOGOFF |
Logoff |
|
| 4647 |
LOGOFF |
User-initiated logoff |
|
| 4648 |
SUCCESSFUL_LOGON |
Logon with explicit credentials (runas) |
Process name |
| 4768 |
SUCCESSFUL_LOGON / FAILED_LOGON |
Kerberos TGT request |
Based on Status field |
| 4769 |
SUCCESSFUL_LOGON / FAILED_LOGON |
Kerberos Service Ticket |
Based on Status field |
| 4770 |
SUCCESSFUL_LOGON |
Kerberos TGT renewal |
|
| 4771 |
FAILED_LOGON |
Kerberos pre-auth failure |
|
| 4776 |
SUCCESSFUL_LOGON / FAILED_LOGON |
NTLM authentication |
Based on Status field |
| 4778 |
SUCCESSFUL_LOGON |
Session reconnected |
|
| 4779 |
LOGOFF |
Session disconnected |
|
| 5140 |
SUCCESSFUL_LOGON |
Network share accessed |
ShareName (e.g., \\*\IPC$) |
| 5145 |
SUCCESSFUL_LOGON |
Network share object checked |
ShareName\FileName |
Terminal Services (RDP)
| Event ID |
Source |
event_type |
Description |
| 21 |
LocalSessionManager |
SUCCESSFUL_LOGON |
RDP session logon succeeded |
| 22 |
LocalSessionManager |
SUCCESSFUL_LOGON |
RDP shell started |
| 24 |
LocalSessionManager |
LOGOFF |
RDP session disconnected |
| 25 |
LocalSessionManager |
SUCCESSFUL_LOGON |
RDP session reconnected |
| 1024 |
RDPClient |
CONNECT |
Outgoing RDP connection |
| 1102 |
RDPClient |
CONNECT |
Outgoing RDP connection |
| 1149 |
RemoteConnectionManager |
SUCCESSFUL_LOGON |
RDP authentication succeeded |
| 131 |
RdpCoreTS |
CONNECT |
RDP transport accepted |
SMB
| Event ID |
Source |
event_type |
Description |
detail column |
| 1009 |
SMBServer/Security |
SUCCESSFUL_LOGON |
SMB connection accepted |
|
| 551 |
SMBServer/Security |
FAILED_LOGON |
SMB authentication failed |
|
| 31001 |
SMBClient/Security |
SUCCESSFUL_LOGON |
SMB share access |
ShareName |
| 5140 |
Security.evtx |
SUCCESSFUL_LOGON |
Network share accessed |
ShareName (e.g., \\*\IPC$) |
| 5145 |
Security.evtx |
SUCCESSFUL_LOGON |
Network share object checked |
ShareName\FileName |
| 30803-30808 |
SMBClient/Connectivity |
CONNECT |
SMB connectivity events |
|
WinRM and WMI
| Event ID |
Source |
event_type |
Description |
detail column |
| 6 |
WinRM/Operational |
CONNECT |
PowerShell Remoting session initiated (source system) |
WinRM: <connection> |
| 5858 |
WMI-Activity/Operational |
CONNECT |
Remote WMI execution (destination system, only when ClientMachine differs from Computer) |
WMI: <operation> |
Scheduled Tasks
| Event ID |
Source |
event_type |
Description |
detail column |
SCHTASK |
Task XML (Windows\System32\Tasks) |
CONNECT |
Remotely registered scheduled task (Author machine differs from local hostname) |
Task: <name> -> <command> |
Linux
| Event ID |
event_type |
Description |
detail column |
SSH_SUCCESS |
SUCCESSFUL_LOGON |
SSH authentication succeeded |
Auth method (password/publickey) |
SSH_FAILED |
FAILED_LOGON |
SSH authentication failed |
Auth method |
SSH_CONNECT |
CONNECT |
SSH connection (xinetd) |
|
Cortex XDR
| Source |
event_type |
Description |
| Network (ports 3389/445/22) |
CONNECT |
Network-level connection data |
| EVTX Forensics |
Same as Security.evtx |
Classified by Event ID |
The logon_id Column
The logon_id field contains the session identifier extracted from the TargetLogonId field in Security.evtx events (4624, 4634, 4647, 4648). This enables session correlation: matching a logon event with its corresponding logoff to determine session duration.
For Terminal Services events, the SessionId is used when available. For Linux, Cortex, and SMB events, this field is empty.
The detail Column
The detail column provides additional context that varies by event type:
| Event |
Content in detail |
| 4624, 4648 |
Process name that initiated the logon |
| 4625 |
SubStatus hex code indicating failure reason |
| 5140 |
ShareName (e.g., \\*\IPC$, \\*\C$, \\*\SYSVOL) |
| 5145 |
ShareName\RelativeTargetName |
| SMB 31001 |
ShareName |
| SSH events |
Authentication method (password, publickey) |
| Cortex Network |
Command line of the process that generated the connection |
| Other events |
Empty |
Common 4625 SubStatus Codes
| SubStatus |
Meaning |
0xC000006A |
Wrong password |
0xC0000064 |
User does not exist |
0xC0000072 |
Account disabled |
0xC0000234 |
Account locked out |
0xC0000070 |
Logon outside allowed hours |
0xC000006D |
Bad username or authentication info |
0xC0000071 |
Expired password |
0xC0000224 |
Password must change at next logon |
Data Preservation
Masstin preserves original values from the evidence. Node names (hostnames, IPs) and properties are stored without transformation. Only relationship types in graph databases are normalized (uppercase, underscores) due to Cypher language restrictions. See the Neo4j and Memgraph articles for details.
$ comments