# T1569.001 - Launchctl ## Técnica Pai Esta é uma sub-técnica de [[t1569-system-services|T1569 - T1569 - System Services]]. ## Descrição O `launchctl` é uma ferramenta de linha de comando nativa do macOS que serve como interface para o `launchd` - o daemon central responsável pelo gerenciamento de serviços, agentes e daemons no sistema. Por ser parte integrante do sistema operacional e assinada pela Apple, a ferramenta possui alta confiabilidade perante controles de segurança, o que a torna um alvo atrativo para adversários que buscam executar código de forma discreta. Atacantes abusam do `launchctl` para carregar [[t1543-001-launch-agent|Launch Agents]] e [[t1543-004-launch-daemon|Launch Daemons]] maliciosos. Através dos subcomandos `load`, `unload` e `start`, um agente malicioso consegue registrar processos que são executados automaticamente no login do usuário ou na inicialização do sistema. Essa técnica é frequentemente usada em conjunto com [[t1543-create-or-modify-system-process|criação de processos de sistema]] para garantir persistência duradoura. Alguns malwares conhecidos por explorar essa técnica incluem [[loudminer|LoudMiner]], [[s0658-xcsset|XCSSET]] e [[g1049-applejeus|AppleJeus]], todos com histórico documentado de uso do `launchctl` para estabelecer presença persistente em sistemas macOS. O [[s1153-cuckoo-stealer|Cuckoo Stealer]] e o [[s0274-calisto|Calisto]] também utilizam esse mecanismo para manter acesso mesmo após reinicializações. **Contexto Brasil/LATAM:** Embora o macOS tenha menor penetração corporativa no Brasil em comparação ao Windows, o crescimento do uso de MacBooks em equipes de tecnologia, design e executivos torna essa técnica relevante para empresas brasileiras de médio e grande porte. Ataques direcionados a desenvolvedores e profissionais de TI que usam macOS são uma tendência crescente na região, especialmente por meio de pacotes de software maliciosos distribuídos em fóruns e repositórios de código. ## Attack Flow ```mermaid graph TB A[Acesso Inicial] --> B[Criação de plist malicioso] B --> C[launchctl load] C --> D[Execução persistente] D --> E[Movimentação Lateral] ``` ## Como Funciona 1. **Preparação:** O adversário cria um arquivo de propriedades (`.plist`) com o caminho para um executável ou script malicioso. Esse arquivo pode ser colocado em `~/Library/LaunchAgents/` (contexto de usuário) ou em `/Library/LaunchDaemons/` (contexto de root, requer privilégios elevados). 2. **Execução:** O atacante utiliza `launchctl load` para registrar o agente ou daemon, ou aguarda o próximo login/boot para que o `launchd` carregue o arquivo automaticamente. O subcomando `load -w` força o carregamento imediato e desabilita qualquer flag de desativação no plist. 3. **Pós-execução:** Uma vez carregado, o processo malicioso é supervisionado pelo `launchd`, o que significa que ele pode ser reiniciado automaticamente caso sejá encerrado. Isso confere resiliência à presença do atacante no sistema. **Exemplo:** ```bash # Artefato de detecção - carregamento de Launch Agent suspeito launchctl load -w "$HOME/Library/LaunchAgents/com.malicious.updater.plist" # Verificar agentes carregados (para blue team) launchctl list | grep -v com.apple ``` ## Detecção **Fontes de dados:** logs de auditoria do macOS (`/var/log/audit/`), Unified Log (`log stream`), EDR (Endpoint Detection and Response), monitoramento de criação de arquivos `.plist` em diretórios LaunchAgents/LaunchDaemons. **Event IDs relevantes:** ESF (Endpoint Security Framework) - `ES_EVENT_TYPE_NOTIFY_EXEC`, `ES_EVENT_TYPE_NOTIFY_CREATE` ```yaml title: Launchctl Carregando Plist Fora de Diretórios Apple id: a3f1c2e4-8b7d-4a9c-b1e5-f6d2a8c3b7e9 status: experimental description: Detecta uso de launchctl load em arquivos plist fora dos diretórios padrão da Apple logsource: category: process_creation product: macos detection: selection: Image|endswith: '/launchctl' CommandLine|contains: - 'load' - 'start' CommandLine|not|contains: - '/System/Library/' - '/usr/libexec/' condition: selection falsepositives: - Instaladores de software legítimos - Ferramentas de gerenciamento de TI (Jámf, Munki) level: medium tags: - attack.execution - attack.t1569.001 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1018-user-account-management\|M1018 - User Account Management]] | Restringir acesso de usuários padrão a diretórios `/Library/LaunchDaemons/` e `/Library/LaunchAgents/`; implementar controle de acesso baseado em perfis MDM (ex: Jámf) para bloquear modificações não autorizadas nesses diretórios | ## Software Associado - [[loudminer|LoudMiner]] - minerador de criptomoeda que usa Launch Daemons para persistência - [[s1153-cuckoo-stealer|Cuckoo Stealer]] - infostealer macOS com persistência via launchctl - [[g1049-applejeus|AppleJeus]] - backdoor do grupo Lazarus direcionado a exchanges de criptomoeda - [[s1048-macososaminer|macOS.OSAMiner]] - minerador furtivo que usa scripts AppleScript e LaunchAgents - [[s0658-xcsset|XCSSET]] - malware que infecta projetos Xcode e usa launchctl para persistência - [[s0274-calisto|Calisto]] - backdoor macOS com captura de credenciais e persistência via LaunchAgents *Fonte: [MITRE ATT&CK - T1569.001](https://attack.mitre.org/techniques/T1569/001)*