dissect.target.plugins.apps.av.symantec#

Module Contents#

Classes#

SymantecPlugin

Symantec Endpoint Security Suite Plugin, based on https://malwaremaloney.blogspot.com/2021/01/

Attributes#

dissect.target.plugins.apps.av.symantec.SEPLogRecord#
dissect.target.plugins.apps.av.symantec.SEPFirewallRecord#
class dissect.target.plugins.apps.av.symantec.SymantecPlugin(target: dissect.target.Target)#

Bases: dissect.target.plugin.Plugin

Symantec Endpoint Security Suite Plugin, based on https://malwaremaloney.blogspot.com/2021/01/

__namespace__ = 'symantec'#
LOG_SEP_AV = 'sysvol/ProgramData/Symantec/Symantec Endpoint Protection/*/Data/Logs/AV/*'#
LOG_SEP_NET = 'sysvol/ProgramData/Symantec/Symantec Endpoint Protection/*/Data/Logs/tralog.log'#
LOGS#
MARKER_INFECTION = 5#
QUARANTINE_SUCCESS = 2#
CLEANABLE = 0#
DELETABLE = 4#
STILL_INFECTED = 1#
OUTBOUND = 2#
BLOCKED = 1#
COMPRESSED = 1#
TCP_INIT = 301#
TCP_CLOSE = 304#
UDP_DATA = 302#
AV_TIMESTAMP = 0#
AV_EVENT = 1#
AV_USER = 5#
AV_VIRUS = 6#
AV_FILE = 7#
AV_ACTION_TAKEN = 10#
AV_VIRUS_TYPE = 11#
AV_SCAN_ID = 14#
AV_EVENT_DATA = 17#
AV_QUARANTINE_ID = 18#
AV_VIRUS_ID = 19#
AV_QUARANTINE_STATUS = 20#
AV_COMPRESSED = 23#
AV_DEPTH = 24#
AV_STILL_INFECTED = 25#
AV_CLEANABLE = 28#
AV_DELETABLE = 29#
AV_CONFIDENCE = 65#
AV_PREVALENCE = 67#
AV_DOWNLOADED_FROM = 68#
AV_RISK = 71#
FW_TIMESTAMP = 1#
FW_PROTOCOL = 2#
FW_LOCAL_IP = 3#
FW_REMOTE_IP = 4#
FW_LOCAL_PORT = 5#
FW_REMOTE_PORT = 6#
FW_DIRECTION = 7#
FW_BEGIN_TIME = 8#
FW_END_TIME = 9#
FW_REPETITION = 10#
FW_ACTION = 11#
FW_SEVERITY = 13#
FW_RULE_ID = 14#
FW_REMOTE_HOST_NAME = 15#
FW_RULE_NAME = 16#
FW_APPLICATION = 17#
FW_LOCATION = 20#
FW_USER = 21#
FW_LOCAL_IP6 = 25#
FW_REMOTE_IP6 = 26#
PROTOCOL#
SEVERITY#
ACTION#
VIRUS_TYPE#
check_compatible() None#

Perform a compatibility check with the target.

This function should return None if the plugin is compatible with the current target (self.target). For example, check if a certain file exists. Otherwise it should raise an UnsupportedPluginError.

Raises:

UnsupportedPluginError – If the plugin could not be loaded.

logs() Iterator[SEPLogRecord]#

Return log records.

Yields SEPLogRecord with the following fields:

ts (datetime): Timestamp associated with the event. virus (string): Name of the virus. user (string): Name of the user associated with the event. source_file (path): File that contains the virus. action_taken (string): Action taken by SEP. virus_type (string): Description of the type of virus. scan_id (varint): ID of the scan associated with the event. event_data (string): String or bytes from a virus event. quarantine_id (varint): ID associated with the quarantined virus. still_infected (boolean): Whether the system is still infected. quarantined (boolean): True if the virus has been quarantined succesfully. compressed (boolean): True if the virus was in a compressed file. depth (varint): How many layers of compression the virus was hidden in. cleanable (boolean): Whether the virus is cleanable. deletable (boolean): Whether the virus can be deleted. confidence (varint): Confidence level about threat verdict (higher is more confident). prevalence (varint): Prevalence of the threat (higher is more prevalent). risk (varint): Risk level of the threat (1-4, higher is more dangerous, 0 = unknown). download_url (uri): Source of the virus (if available). line_no (varint): Reference line number in log file.

firewall() Iterator[SEPFirewallRecord]#

Return log firewall records.

Yields SEPFirewallRecord with the following fields:

ts (datetime): Timestamp associated with the event. protocol (string): Protocol name associated with the firewall record. local_ip (“net.ipaddress”): Local IP address associated with the event. remote_ip (“net.ipaddress”): Remote IP address associated with the event. local_ip6 (“net.ipaddress”): Local IPv6 address associated with the event. remote_ip6 (“net.ipaddress”): Remote IPv6 address associated with the event. local_port (varint): Local port associated with the event. remote_port (varint): Local port associated with the event. outbound (boolean): True in case of outbound traffic/connection. begin_time (datetime): Start of the event. end_time (datetime): End of the event. repetition (varint): How many times this event happened within the time frame. blocked (boolean): Whether the traffic/connection was succesfully blocked. severity (string): Severity of the event. rule_id (varint): Firewall rule ID associated with this event. rule_name (string): Name of the Firewall rule associated with this event. remote_host (string): Name of the remote host if it can be traced. application (path): Application responsible for/affected by event. user (string): User associated with the event. line_no (varint): Reference line number in log file.