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