Response playbooks, investigation guides, and Atomic Red Team tests are Pro-only. Upgrade to unlock the full detection package for THREAT-Exfiltration-LinuxCronScheduledExfil.

Upgrade to Pro
THREAT-Exfiltration-LinuxCronScheduledExfil Splunk · SPL

Detect Scheduled Data Exfiltration via Linux Cron Jobs in Splunk

Adversaries who compromise Linux servers, containers, or cloud instances frequently use cron — the native Linux job scheduler — to establish recurring, low-and-slow data exfiltration rather than a single large transfer. A malicious crontab entry or drop file in /etc/cron.d/ can invoke curl, wget, scp, rsync, or nc at a fixed interval to stage and transmit archived data (tar/zip of /home, /var/www, database dump directories, or cloud instance metadata) to an external destination, blending with legitimate scheduled maintenance jobs. This pattern is common on internet-facing Linux servers, self-managed databases, and container hosts, and is frequently paired with cron-based persistence mechanisms. The existing T1029 baseline detection in this platform is written entirely against Windows/Microsoft Defender for Endpoint telemetry (DeviceNetworkEvents beaconing, Task Scheduler) and does not address the Linux cron equivalent, leaving a platform gap for organizations running Linux infrastructure.

MITRE ATT&CK

Tactic
Exfiltration

SPL Detection Query

Splunk (SPL)
spl
index=linux sourcetype="linux:audit" type=EXECVE
(
  (exe="*/crontab" AND (a0="-e" OR a0="-l" OR a0="-u"))
  OR (comm IN ("cron", "crond", "anacron") AND exe IN ("*/curl", "*/wget", "*/scp", "*/rsync", "*/nc", "*/ncat", "*/socat"))
  OR (comm IN ("cron", "crond", "anacron") AND exe IN ("*/tar", "*/zip", "*/gzip", "*/7z")
      AND (a0="*home*" OR a0="*var/www*" OR a0="*shadow*" OR a0="*mysql*"))
)
| eval Signal=case(
    match(exe, "crontab"), "CrontabModified",
    match(exe, "curl|wget|scp|rsync|nc|ncat|socat"), "CronSpawnedTransferTool",
    match(exe, "tar|zip|gzip|7z"), "CronArchiveStaging",
    true(), "Other"
  )
| table _time, host, uid, comm, exe, a0, a1, a2, Signal
| sort - _time
high severity medium confidence

Splunk detection over Linux auditd EXECVE records (via the Splunk Add-on for Unix and Linux) identifying crontab modifications, cron/crond/anacron spawning network transfer utilities, and cron spawning archive tools targeting sensitive paths — the classic stage-then-transfer pattern for cron-based scheduled exfiltration on Linux hosts.

Data Sources

Linux auditd (EXECVE records)Splunk Add-on for Unix and Linux

Required Sourcetypes

linux:audit

False Positives & Tuning

  • Documented cron-driven backup or replication jobs using rsync/scp to a known backup server
  • Configuration management agents (Ansible, Puppet) invoking curl/wget from cron for scheduled runs
  • Certificate renewal cron jobs (certbot) invoking curl for ACME validation

Other platforms for THREAT-Exfiltration-LinuxCronScheduledExfil


Testing Methodology

Validate this detection against 2 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 1Add Cron Job Spawning curl to External Host

    Expected signal: auditd EXECVE record for crontab with '-' (replace) argument. Subsequent auditd EXECVE record for curl spawned with comm=cron/crond as parent, invoking the httpbin.org POST.

  2. Test 2Cron-Triggered Archive and Stage of Home Directory

    Expected signal: auditd EXECVE record for tar with comm=cron/crond as parent, arguments including '/home' as the target path.

Unlock playbooks & atomic tests with Pro

Get the full detection package for THREAT-Exfiltration-LinuxCronScheduledExfil — response playbook and atomic red team tests, plus investigation guidance and hunting queries.

df00tech Pro — £29/user/month

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections