# T1569.003 - Systemctl ## Técnica Pai Esta é uma sub-técnica de [[t1569-system-services|T1569 - T1569 - System Services]]. ## Descrição O `systemctl` é a principal interface de linha de comando do [[t1543-002-systemd-service|systemd]], o sistema de inicialização e gerenciador de serviços padrão nas distribuições Linux modernas. Adversários exploram essa ferramenta legítima para criar, habilitar ou iniciar serviços maliciosos, garantindo execução de código com alto nível de integração ao sistema operacional. Por se tratar de um binário nativo e amplamente utilizado por administradores, o abuso passa facilmente despercebido em ambientes com pouco monitoramento. Na prática, o atacante cria um arquivo de unidade de serviço (`.service`) em diretórios como `/etc/systemd/system/` ou `/lib/systemd/system/`, depois usa subcomandos como `systemctl enable` e `systemctl start` para ativar o payload. Essa abordagem oferece persistência automática entre reinicializações e execução com os privilégios do usuário que controla o serviço - frequentemente `root`. O [[g0139-teamtnt|TeamTNT]], por exemplo, usou esse mecanismo em campanhas de cryptojacking direcionadas a ambientes Docker e Kubernetes expostos. Além da persistência clássica, a técnica também é empregada para execução pontual de comandos em contextos de pós-exploração, aproveitando o `systemctl` como um substituto indireto para execução direta de binários suspeitos. Os subcomandos mais abusados incluem `start`, `stop`, `enable`, `disable` e `daemon-reload`. **Contexto Brasil/LATAM:** Infraestruturas Linux expostas à internet - especialmente servidores de aplicações, instâncias de cloud pública e ambientes de hospedagem compartilhada - são alvos recorrentes no Brasil. Grupos de cryptojacking e ransomware como o [[g0139-teamtnt|TeamTNT]] vasculham faixas de IP brasileiras em busca de Docker APIs e SSH sem autenticação adequada. O abuso de `systemctl` permite que esses grupos mantenham acesso persistente mesmo após reinicializações, dificultando a resposta a incidentes em empresas que não monitoram criação de serviços systemd. ## Attack Flow ```mermaid graph TB A[Acesso Inicial / RCE] --> B[Criação de .service malicioso] B --> C[systemctl enable + start] C --> D[Execução Persistente] D --> E[C2 / Cryptominer] ``` ## Como Funciona **1. Preparação** O atacante obtém execução de código no host Linux - via exploit de serviço web, credenciais vazadas ou API Docker exposta. Com acesso ao sistema de arquivos, grava um arquivo de unidade systemd em um diretório de serviços como `/etc/systemd/system/`. **2. Execução** O arquivo `.service` referência o binário ou script malicioso no campo `ExecStart`. Em seguida, o atacante executa a sequência de ativação: ```bash # Criação de unidade de serviço maliciosa (exemplo de artefato detectável) # Arquivo: /etc/systemd/system/updaté-svc.service # [Unit] Description=System Updaté Service # [Service] ExecStart=/tmp/.hidden/payload Type=simple Restart=always # [Install] WantedBy=multi-user.target systemctl daemon-reload systemctl enable updaté-svc.service systemctl start updaté-svc.service ``` **3. Pós-execução** O serviço passa a ser iniciado automaticamente em cada boot. O processo filho aparece na árvore de processos como filho do `systemd (PID 1)`, o que pode confundir analistas menos experientes. Para dificultar ainda mais a detecção, os grupos mais sofisticados nomeiam o serviço com nomes plausíveis como `network-helper`, `cron-updater` ou `sshd-monitor`. ## Detecção **Fontes de dados:** `/var/log/syslog`, `journalctl`, auditd (`auditd.rules`), eventos de criação de arquivos em `/etc/systemd/system/` e `/lib/systemd/system/`, chamadas de sistema `execve` com `systemctl` como argumento. ```yaml title: Criação suspeita de arquivo de unidade systemd id: a3f7c812-4e2b-41d9-b5f1-9c3d8e2a7b10 status: experimental description: Detecta criação de novos arquivos .service em diretórios de systemd por processos inesperados logsource: category: file_event product: linux detection: selection: TargetFilename|startswith: - '/etc/systemd/system/' - '/lib/systemd/system/' - '/usr/lib/systemd/system/' TargetFilename|endswith: '.service' filter_legit: Image|startswith: - '/usr/bin/dpkg' - '/usr/bin/apt' - '/usr/bin/rpm' condition: selection and not filter_legit falsepositives: - Instalação legítima de pacotes via gerenciador de pacotes - Deploys de aplicações com scripts de instalação level: high tags: - attack.execution - attack.persistence - attack.t1569.003 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1018-user-account-management\|M1018 - User Account Management]] | Restringir quais usuários podem executar `systemctl enable/start` para serviços novos; usar `sudo` com regras granulares via `/etc/sudoers.d/` e auditar tentativas de escalada | ## Referências *Fonte: [MITRE ATT&CK - T1569.003](https://attack.mitre.org/techniques/T1569/003)* ## Notas Relacionadas - [[t1569-system-services|T1569 - System Services]] - técnica pai