The following analytic identifies a possible windows application having a FTP connection in a non common installation path in windows operating system.This network protocol is being used by adversaries, threat actors and malware like AgentTesla as a command and control communication to transfer its collected stolen information like the desktop screenshots, browser information and system information of a targeted or compromised host.
- Type: Anomaly
- Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud
- Datamodel: Endpoint
- Last Updated: 2022-09-16
- Author: Teoderick Contreras, Splunk
- ID: 0f43758f-1fe9-470a-a9e4-780acc4d5407
Kill Chain Phase
- Command & Control
- CIS 3
- CIS 5
- CIS 16
1 2 3 4 5 `sysmon` EventCode=3 NOT(Image IN("*\\program files*", "*\\windows\\system32\\*","*\\windows\\SysWOW64\\*")) (DestinationPortName="ftp" OR DestinationPort=21) | stats count min(_time) as firstTime max(_time) as lastTime by Image DestinationPort DestinationPortName DestinationHostname DestinationIp SourcePort SourcePortName Protocol SourceHostname Computer user | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `windows_file_transfer_protocol_in_non_common_process_path_filter`
The SPL above uses the following Macros:
windows_file_transfer_protocol_in_non-common_process_path_filter is a empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
List of fields required to use this analytic.
How To Implement
To successfully implement this search, you need to be ingesting logs with the process name and sysmon eventcode = 3 connection events from your endpoints. If you are using Sysmon, you must have at least version 6.0.4 of the Sysmon TA.
Known False Positives
third party application may use this network protocol as part of its feature. Filter is needed.
Associated Analytic Story
|9.0||30||30||a process $Image$ is having a FTP connection to $DestinationHostname$ in $Computer$|
The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.
source | version: 1