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