T1071.002 Elastic Security · Elastic

Detect File Transfer Protocols in Elastic Security

Adversaries may communicate using application layer protocols associated with transferring files to avoid detection/network filtering by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server. Protocols such as SMB, FTP, FTPS, and TFTP that transfer files may be very common in environments. Packets produced from these protocols may have many fields and headers in which data can be concealed. Data could also be concealed within the transferred files. An adversary may abuse these protocols to communicate with systems under their control within a victim network while also mimicking normal, expected traffic.

MITRE ATT&CK

Tactic
Command and Control
Technique
T1071 Application Layer Protocol
Sub-technique
T1071.002 File Transfer Protocols
Canonical reference
https://attack.mitre.org/techniques/T1071/002/

Elastic Detection Query

Elastic Security (Elastic)
eql
network where event.type in ("connection", "start") and
  event.outcome == "success" and
  network.direction in ("outbound", "egress") and
  destination.port in (20, 21, 69, 139, 445, 990) and
  not cidrmatch(destination.ip, "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "127.0.0.0/8", "::1/128", "169.254.0.0/16", "fe80::/10")

/* Deploy as Elastic Threshold Rule:
   Threshold: count > 3
   Group by: host.name, process.executable, destination.ip, destination.port
   Time window: 24h
   This base EQL filters candidate events; the threshold config enforces the >3 count */
medium severity medium confidence

Detects repeated outbound connections on file transfer protocol ports (FTP port 20/21, FTPS port 990, SMB ports 445/139, TFTP port 69) to public IP addresses. Deployed as a threshold rule with count > 3 grouped by host, process, destination IP, and destination port to surface sustained transfer activity indicative of C2 or exfiltration via T1071.002. Uses Elastic Common Schema (ECS) network fields from Endpoint Security or Packetbeat.

Data Sources

Elastic Endpoint Security (endpoint.events.network)Packetbeat network flow logsWinlogbeat with Sysmon Event ID 3 (Network Connection)Filebeat with network firewall modules

Required Tables

logs-endpoint.events.network-*logs-system.security-*winlogbeat-*packetbeat-*.ds-logs-*

False Positives & Tuning

  • IT administrators or DevOps engineers using FTP/SFTP to deploy content to externally hosted web servers or CDNs — common in organisations without a central deployment pipeline.
  • Scheduled backup agents (e.g., Veeam, Acronis, rsync over FTP) replicating data to external storage providers will generate high connection counts with large BytesSent values.
  • Windows domain controllers or file servers with legitimate external SMB traffic to cloud-based file shares (e.g., Azure Files via port 445) will fire when destination IP resolves to a Microsoft public range.
  • Pentest or red team engagements using FTP/SMB as a deliberate living-off-the-land transfer mechanism during an authorised assessment.
Download portable Sigma rule (.yml)

Other platforms for T1071.002


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1FTP C2 Simulation via Built-in Client

    Expected signal: Sysmon Event ID 1: Process creation for ftp.exe with -s: flag pointing to script file. Sysmon Event ID 3: Network connection attempt to 127.0.0.1:21. Sysmon Event ID 11: File creation of ftp_c2.txt in TEMP directory.

  2. Test 2SMB Named Pipe C2 Simulation

    Expected signal: Sysmon Event ID 17: Pipe Created with PipeName=\\msagent_f1. Sysmon Event ID 1: PowerShell process creation with named pipe creation in command line. The pipe name 'msagent_f1' is a known Cobalt Strike default pipe name pattern.

  3. Test 3FTP Data Exfiltration via curl

    Expected signal: Sysmon for Linux Event ID 3: Network connection from curl to 127.0.0.1:21. Process creation event for curl with -T (upload) flag and ftp:// URL. File creation event for the test file.

Unlock Pro Content

Get the full detection package for T1071.002 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections