# T1543.004 - Launch Daemon ## Técnica Pai Esta é uma sub-técnica de [[t1543-create-or-modify-system-process|T1543 - Creaté or Modify System Process]]. A técnica pai engloba todos os mecanismos de criação ou modificação de processos do sistema operacional para fins de persistência e escalada de privilégios - incluindo Windows Services (T1543.003) e Launch Agents macOS (T1543.001). A variante Launch Daemon (T1543.004) é a forma mais privilegiada de persistência nativa no macOS, pois executa código como root antes do login de qualquer usuário. ## Descrição Adversários podem criar ou modificar Launch Daemons no macOS para executar payloads maliciosos com privilégios de sistema e garantir persistência entre reinicializações. Launch Daemons são o mecanismo nativo do macOS para serviços de sistema - análogos aos Windows Services - gerenciados pelo processo `launchd`, que é o primeiro processo iniciado pelo kernel após o boot (PID 1 no macOS moderno). Os Launch Daemons são definidos por arquivos `.plist` (Property List em XML) localizados em diretórios específicos do sistema. Ao contrário dos [[t1543-001-launch-agent|Launch Agents]] - que rodam no contexto do usuário e requerem apenas privilégios de usuário para instalação - os Launch Daemons são iniciados **antes do login de qualquer usuário** e rodam com permissões de root, tornando-os uma primitiva de persistência extremamente poderosa. A relevância desta técnica se amplia quando consideramos que dispositivos macOS são amplamente adotados por profissionais de alto valor em organizações - executivos, jornalistas, pesquisadores, desenvolvedores - tornando-os alvos privilegiados de campanhas de espionagem sofisticadas. Um Launch Daemon instalado com sucesso garante ao adversário acesso root persistente que sobrevive a qualquer número de reinicializações e logouts de usuário. Grupos como o [[g0032-lazarus-group|Lazarus Group]] (Coreia do Norte) e o [[g0050-apt32|APT32]] (OceanLotus, Vietnã) utilizam Launch Daemons como mecanismo primário de persistência em suas campanhas macOS, frequentemente combinados com [[t1036-masquerading|Masquerading]] para disfarçar os daemons maliciosos de serviços legítimos da Apple ou de software popular. ## Como Funciona ### Estrutura de um Launch Daemon Um Launch Daemon é definido por um arquivo `.plist` XML com os seguintes parâmetros obrigatórios: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ...> <plist version="1.0"> <dict> <key>Label</key> <string>com.apple.mdmclient.daemon</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/payload</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> </dict> </plist> ``` O campo `Label` é o identificador único - adversários frequentemente imitam naming conventions da Apple (ex: `com.apple.*`) para confundir analistas. O campo `KeepAlive: true` faz com que o `launchd` reinicie automaticamente o daemon se ele for encerrado, criando uma camada adicional de resiliência. ### Diretórios e Escopos | Diretório | Escopo | Requer Root? | Proteção SIP | |-----------|--------|--------------|--------------| | `/System/Library/LaunchDaemons/` | Daemons do próprio macOS | Sim | Sim - imutável | | `/Library/LaunchDaemons/` | Daemons de terceiros / adversários | Sim | Não | | `/System/Library/LaunchAgents/` | Agents do macOS (por usuário) | Não | Sim - imutável | | `/Library/LaunchAgents/` | Agents de terceiros (por usuário) | Não | Não | | `~/Library/LaunchAgents/` | Agents do usuário corrente | Não | Não | O diretório de interesse para adversários é `/Library/LaunchDaemons/` - não protegido pelo System Integrity Protection (SIP), mas requerendo root para escrita. ### Fluxo de Execução 1. O adversário obtém acesso root (via exploração de vulnerabilidade, engenharia social, ou escalada de privilégios) 2. Um arquivo `.plist` malicioso é copiado para `/Library/LaunchDaemons/` 3. As permissões do arquivo são configuradas como `root:wheel` com modo `644` 4. O daemon é carregado imediatamente via `launchctl load` ou aguarda o próximo boot 5. O `launchd` (PID 1) inicia o executável específicado com permissões de root 6. O payload é executado em cada boot subsequente, antes de qualquer login de usuário ## Attack Flow ```mermaid graph TB A[Acesso inicial<br/>Phishing / Exploit] --> B[Escalada de privilégios<br/>para root / sudo] B --> C[Cria arquivo .plist malicioso<br/>em /Library/LaunchDaemons/] C --> D[Configura permissões<br/>root:wheel 644] D --> E[launchctl load<br/>ou próximo boot] E --> F[launchd PID 1<br/>lê e carrega daemon] F --> G[Payload executa<br/>como root] G --> H{Objetivos do adversário} H --> I[Backdoor C2<br/>AppleJeus / OSX.OceanLotus] H --> J[Keylogger<br/>ThiefQuest / EvilQuest] H --> K[Exfiltração de dados<br/>Credenciais e documentos] I --> L[Persistência garantida<br/>em todos os boots] J --> L K --> L ``` ## Exemplos de Uso ### Lazarus Group - AppleJeus e o Setor de Criptoativos O [[g0032-lazarus-group|Lazarus Group]], grupo de ameaça persistente avançada atribuído ao Reconnaissance General Bureau da Coreia do Norte, utiliza Launch Daemons como mecanismo primário de persistência do implante [[g1049-applejeus|AppleJeus]]. Esta backdoor macOS é distribuída disfarçada de aplicações legítimas de trading de criptomoedas e tem como alvo exchanges, carteiras digitais e profissionais do setor de criptoativos. O Launch Daemon do AppleJeus usa labels que imitam serviços legítimos da Apple (ex: `com.apple.softwareupdaté.daemon`) e configura `KeepAlive: true` para garantir reinício automático. O implante [[s0497-dacls|Dacls]], outro malware multiplataforma do Lazarus Group, implementa o mesmo padrão em alvos macOS, estabelecendo um canal C2 persistente com comunicação criptografada. ### APT32 (OceanLotus) - Espionagem em Alvos Asiáticos e Internacionais O [[g0050-apt32|APT32]] (OceanLotus), grupo de espionagem vietnamita patrocinado pelo estado, é extensivamente documentado pelo uso de Launch Daemons em campanhas macOS. O implante [[osxoceanlotusd|OSX_OCEANLOTUS.D]] instala um daemon com persistência via `/Library/LaunchDaemons/` e usa masquerading sofisticado, copiando atributos de metadados de daemons legítimos para reduzir a probabilidade de detecção. Campanhas do APT32 foram observadas contra organizações de mídia, ONGs, e entidades governamentais - com foco crescente em alvos no Sudeste Asiático, mas com registro de operações contra alvos ocidentais e sul-americanos envolvidos em assuntos da região. ### ThiefQuest (EvilQuest) - Ransomware e Spyware Combinados O ransomware [[s0595-thiefquest|ThiefQuest]] (também conhecido como EvilQuest) representa um caso incomum de malware macOS multipropósito: além de criptografar arquivos, instala um keylogger e exfiltra credenciais. O mecanismo de persistência utiliza Launch Daemons com `RunAtLoad: true` e `KeepAlive: true`, garantindo que o componente de spyware sobreviva mesmo após tentativas de remoção do componente de ransomware. ### XCSSET - Comprometimento de Cadeia de Suprimentos O [[s0658-xcsset|XCSSET]] representa um vetor de ataque incomum: malware inserido em projetos Xcode comprometidos que infecta os desenvolvedores que compilam os projetos. Após a infecção, combina Launch Daemons com Launch Agents para criar múltiplas camadas de persistência redundantes, dificultando a remoção completa. ## Detecção ### Regra Sigma ```yaml title: Malicious Launch Daemon Creation in macOS id: 7a3f9d2e-1b5c-4e8f-a6d3-2c9b7f1e4a8d status: stable description: > Detecta criação de arquivos .plist em /Library/LaunchDaemons/ por processos não pertencentes ao sistema macOS. Indica possível instalação de Launch Daemon malicioso para persistência. Técnica MITRE ATT&CK T1543.004. references: - https://attack.mitre.org/techniques/T1543/004/ author: RunkIntel daté: 2026-03-25 tags: - attack.persistence - attack.privilege_escalation - attack.t1543.004 logsource: category: file_event product: macos detection: selection_path: TargetFilename|startswith: '/Library/LaunchDaemons/' TargetFilename|endswith: '.plist' filter_legitimate_installers: Image|startswith: - '/usr/sbin/installer' - '/System/Library/' - '/usr/bin/pkgutil' condition: selection_path and not filter_legitimate_installers fields: - TargetFilename - Image - User - CommandLine falsepositives: - Instaladores legítimos de software de terceiros - Ferramentas de administração corporativa (Jámf, Munki, etc.) level: high --- title: Suspicious launchctl Load Command for LaunchDaemon id: 2e8b4f7a-9c3d-5a1e-b7f2-4d6c8e2a1b9f status: stable description: > Detecta uso de launchctl para carregar daemons a partir de caminhos não convencionais, indicando possível instalação manual de Launch Daemon malicioso. references: - https://attack.mitre.org/techniques/T1543/004/ author: RunkIntel daté: 2026-03-25 tags: - attack.persistence - attack.t1543.004 logsource: category: process_creation product: macos detection: selection: Image|endswith: '/launchctl' CommandLine|contains: - 'load' - 'bootstrap' - 'enable' CommandLine|contains: 'LaunchDaemons' filter_system: CommandLine|contains: '/System/Library/' condition: selection and not filter_system fields: - Image - CommandLine - User - ParentImage falsepositives: - Gerenciadores de pacotes e scripts de instalação legítimos level: medium ``` **Correlação recomendada:** Alertar quando um arquivo `.plist` é criado em `/Library/LaunchDaemons/` E o executável referenciado em `Program` ou `ProgramArguments` não está assinado por uma identidade de desenvolvedor Apple verificada - o que pode ser verificado via `codesign -dv --verbose=4 <path>`. ## Mitigação | ID | Mitigação | Aplicação | |----|-----------|-----------| | M1018 | [[m1018-user-account-management\|User Account Management]] | Limitar contas com sudo/root; revisar regularmente quem pode escrever em `/Library/LaunchDaemons/`; usar o princípio de menor privilégio | | M1047 | [[m1047-audit\|Audit]] | Inventário periódico de todos os plists em `/Library/LaunchDaemons/`; comparar hashes com baseline aprovado; alertar para novos arquivos fora de jánelas de manutenção | **Recomendações adicionais de hardening para macOS:** - Habilitar **System Integrity Protection (SIP)** - impede modificação de `/System/Library/LaunchDaemons/` mesmo com root - Usar o **Endpoint Security Framework (ESF)** da Apple para monitorar eventos de criação de arquivos em diretórios sensíveis em tempo real - Implementar política MDM (Jámf, Mosyle) que audite periodicamente os Launch Daemons instalados e alerte para novos itens - Verificar assinatura de código (`codesign`) de todos os executáveis referenciados em plists de sistema como parte da baseline de segurança - Habilitar **Gatekeeper** e **XProtect** - camadas nativas de proteção que bloqueiam binários não assinados ## Contexto Brasil/LATAM Embora o macOS represente uma parcela menor do parque de endpoints corporativos na América Latina em comparação com Windows, o perfil dos usuários macOS os torna alvos de alto valor: executivos, diretores de TI, desenvolvedores sênior, jornalistas investigativos e pesquisadores de segurança. **Setor financeiro:** O [[g0032-lazarus-group|Lazarus Group]] tem como alvo prioritário exchanges de criptomoedas e empresas de fintech - um setor em forte crescimento no Brasil. Operações como as que distribuíram o [[g1049-applejeus|AppleJeus]] via falsas plataformas de trading têm potencial de impactar empresas brasileiras do setor de criptoativos. **Espionagem corporativa e governamental:** Grupos como o [[g0050-apt32|APT32]] têm ampliado seu escopo geográfico para além do Sudeste Asiático. Organizações brasileiras envolvidas em negociações diplomáticas com países asiáticos, bem como empresas de tecnologia e mídia, são alvos potenciais de campanhas de espionagem que utilizam implantes macOS. **Ransomware macOS:** O surgimento de ransomware específico para macOS - incluindo variantes do [[lockbit|LockBit]] e grupos como Black Basta que desenvolveram artefatos macOS - aumenta a relevância da detecção de Launch Daemons maliciosos em ambientes corporativos brasileiros com presença significativa de dispositivos Apple. Equipes de segurança que gerenciam ambientes macOS no Brasil devem priorizar o monitoramento do diretório `/Library/LaunchDaemons/` e implementar políticas MDM que alertem para novos daemons instalados fora de processos controlados de gerenciamento de software. ## Referências - [[t1543-create-or-modify-system-process|T1543 - Creaté or Modify System Process]] - técnica pai - [[t1543-001-launch-agent|T1543.001 - Launch Agent]] - sub-técnica relacionada (contexto de usuário) - [[g0032-lazarus-group|Lazarus Group]] - grupo com uso extensivo de Launch Daemons - [[g0050-apt32|APT32]] - grupo OceanLotus, especializado em implantes macOS - [[g1049-applejeus|AppleJeus]] - malware financeiro do Lazarus Group com Launch Daemon - [[osxoceanlotusd|OSX_OCEANLOTUS.D]] - implante de espionagem do APT32 - [[s0595-thiefquest|ThiefQuest]] - ransomware/spyware macOS com Launch Daemon - [[s0658-xcsset|XCSSET]] - malware de cadeia de suprimentos Xcode - [[m1018-user-account-management|M1018 - User Account Management]] - mitigação MITRE - [[m1047-audit|M1047 - Audit]] - mitigação MITRE - [[t1036-masquerading|T1036 - Masquerading]] - técnica frequentemente combinada --- *Fonte: MITRE ATT&CK - T1543.004 Launch Daemon, v16.2*