The Detection Gap: MITRE ATT&CK T1053.005
MITRE ATT&CK Walkthrough: T1053.005 (Scheduled Task/Job: Scheduled Task)
The Detection Gap is a breakdown for security practitioners who have to make quick calls under tight time constraints. In each post, we walk through what one MITRE ATT&CK technique looks like when it's legitimate activity vs. when it's actually an attacker in your environment.
- Scheduled tasks are one of the most consistently abused built-in mechanisms in Windows, precisely because legitimate use is so common.
- The difference between normal and malicious task creation comes down to context: who created it, what it launches, and how it runs.
- Threat Tracer surfaces the full creation chain so analysts can spend less time stitching together events and more time deciding whether a task belongs.
The scheduled task nobody remembers creating
A new scheduled task shows up in your environment, set to run on system startup, executing under the System account. Nobody on the ops team remembers creating it. Could it just be a leftover from a software install months back, or is it how an attacker is still hiding in your environment after your last containment effort? Before we answer that, let’s take a moment to understand why attackers reach for scheduled tasks in the first place.
Scheduled tasks solve the exact problem every attacker has after initial access: how do you maintain access after a reboot, logoff, or credential rotation without dropping a second-stage payload that immediately stands out?. schtasks.exe ships on every Windows box, it's signed by Microsoft, and it's expected in almost every environment. Every IT team uses it constantly for entirely legitimate reasons: patch windows, backup jobs, log rotation, and software update checks. That legitimate volume is exactly what makes this technique effective.
A new scheduled task isn't inherently suspicious. Your environment probably creates dozens of them a week without anyone thinking twice. So the question isn't whether there's a scheduled task. There's always a scheduled task. The real question is which one doesn't belong.
The legitimate case
IT and ops teams create scheduled tasks constantly, and they follow a recognizable shape:
- Creation context: Run interactively by an admin, or pushed via an RMM (Remote Monitoring and Management) or configuration management tool, tied to a known change ticket or deployment
- Task action: Points to a known, signed binary in an expected path, such as a backup agent, a patch management client, or documented internal script
- Run-as account: Scoped appropriately, using a service account with defined permissions rather than elevated privileges unless the task genuinely requires it
- Trigger: Matches a business rhythm such as nightly or weekly maintenance windows
The malicious case
Same utility, but notice its shape.
- Creation context: no corresponding change record, often created shortly after another suspicious event, such as a phishing execution, suspicious download, or an unexpected process spawning schtasks.exe
- Task action: points to a binary in a temp directory, a user profile path, or a masqueraded name designed to blend in, which is often something styled to resemble a Windows service but pointing at an unsigned executable
- Run-as account: frequently configured to System or another highly privileged account, since persistence with additional access is the whole point
- Trigger: ONLOGON or ONSTART are common choices, with the goal of firing every time the machine boots or a user logs in rather than running on a predictable maintenance schedule
The command line itself tells the story. Legitimate task creation rarely looks like a single dense one-liner built to run unattended and unnoticed. But a malicious one frequently does. It’s built to survive reboot all while blending into a name that fits routine: schtasks /create /tn <name> /tr <path> /sc onlogon /ru System
Note: In plain English, the single line above tells Windows:
“Create a new scheduled task called <name>. Every time someone logs in, automatically run the program at <path> in the background using full, unrestricted SYSTEM privileges."
Where the signal comes together
The manual version of this investigation includes: pulling every scheduled task creation event, cross-referencing the binary path against known-good software inventory, checking the run-as account, and determining whether the task name is trying to look like something it isn't.
Building a query and grinding through results by hand takes real skill. They’re invaluable investigation skills, especially in good threat hunting. Symantec CBX simply changes where that effort is spent.
Rather than manually reconstructing whether a task creation event connects to anything else suspicious, Threat Tracer surfaces the full creation chain and which process actually called schtasks.exe or made the underlying API call. It also provides clear insight into what the task points to, and what happened immediately before and after. Instead of rebuilding every step by hand, analysts can review the chain in context and spend more time interpreting what it means. Your job shifts from finding the connection to deciding whether it's expected or suspicious.
There's another layer worth knowing about specifically for this technique. More advanced adversaries don't just create a task, they sometimes hide it afterward by manipulating the task's registry-based security descriptor so it won't appear under a normal query of existing tasks. That deliberate evasion step makes visibility into the creation event itself critical. And much better than relying only on enumeration after the fact.
What to look for in Threat Tracer
First, trace the parent process that triggered the task creation. A task created by a scheduled deployment tool or an interactive admin session under their own credentials reads very differently from a task created by a process chain that started with a document, a script host, or an unexpected PowerShell invocation.
Then look at the run-as context and the trigger type together. System-level privileges paired with an on-logon or on-startup trigger is a combination worth slowing down on, regardless of what else the chain shows.
Once you've seen that sequence, you’ll recognize it every time: not because the scheduled task itself is suspicious, but because the surrounding context tells you whether it belongs.
A quick posture check
Before you close out, consider these questions about your own environment:
- Do you have a reliable baseline for what your ops team's legitimate scheduled task creation actually looks like, specific enough that you'd notice a mismatch quickly?
- If a task were created under the System account with an on-logon trigger tomorrow, would your visibility catch it at creation, or only if you happened to go looking for it later?
- If you opened Threat Tracer with no other context, would the parent process alone tell you whether this was worth escalating?
If the third one gave you pause, that's the whole point of this series. The task itself is rarely the smoking gun. What called it into existence usually is.
Next up, we'll look at another ATT&CK technique using the same approach: what's normal, what's not, and what tool can help you make that distinction faster.
To see how Symantec CBX helps analysts spend less time stitching together events, reach out to your in-region expert for more details.




