# T1543.001 - Launch Agent
## Técnica Pai
[[t1543-create-or-modify-system-process|T1543 - Criar ou Modificar Processo do Sistema]]
## Descrição
Adversários criam ou modificam **Launch Agents** no macOS para executar payloads maliciosos de forma persistente. Quando um usuário realiza login, o processo `launchd` por usuário é iniciado e carrega os parâmetros definidos em arquivos Property List (`.plist`) localizados em três diretórios padrão:
- `/System/Library/LaunchAgents/` - agentes do sistema (somente leitura)
- `/Library/LaunchAgents/` - agentes globais (requer privilégios elevados)
- `~/Library/LaunchAgents/` - agentes do usuário corrente (escrita permitida)
Os arquivos `.plist` utilizam as chaves `Label`, `ProgramArguments` e `RunAtLoad` para definir o nome do agente, o caminho do executável e o momento de execução. Launch Agents legítimos são amplamente usados por softwares para atualizações automáticas e inicialização de serviços na sessão do usuário.
Um adversário instala um novo Launch Agent criando um arquivo `.plist` nos diretórios acima com as chaves `RunAtLoad` ou `KeepAlive` definidas como `true`. O nome do agente pode ser camuflado para imitar componentes legítimos do sistema operacional ou de aplicações conhecidas. Como os Launch Agents são criados com permissões de nível de usuário, não é necessário escalação de privilégios para a persistência - bastando acesso à conta do usuário alvo.
A técnica pode ser combinada com [[t1569-001-launchctl|T1569.001 - Launchctl]] para carregar ou descarregar agentes dinâmicamente, sem reinicialização. Grupos como [[g1052-contagious-interview|Contagious Interview]] utilizam esta técnica em campanhas direcionadas a desenvolvedores macOS, associando-a ao malware [[s0497-dacls|Dacls]] e [[s1016-macma|MacMa]].
## Attack Flow
```mermaid
graph TB
A([Acesso Inicial]) --> B[Comprometer conta de usuário macOS]
B --> C[Gravar arquivo .plist malicioso]
C --> D{Diretório alvo}
D --> E["~/Library/LaunchAgents/<br/>(nível usuário)"]
D --> F["/Library/LaunchAgents/<br/>(requer root)"]
E --> G["RunAtLoad = true<br/>KeepAlive = true"]
F --> G
G --> H[launchd carrega agente no próximo login]
H --> I[Payload executado a cada sessão]
I --> J([Persistência estabelecida])
J --> K[Movimentação lateral / Exfiltração]
```
## Como Funciona
**1. Criação do arquivo `.plist`**
O adversário grava um arquivo Property List no diretório `~/Library/LaunchAgents/` - acessível sem privilégios elevados. O arquivo define o executável a ser lançado e as condições de disparo.
**2. Chaves de persistência**
- `RunAtLoad`: executa o programa imediatamente ao carregar o agente (no login do usuário)
- `KeepAlive`: reinicia o processo caso sejá encerrado - garante resiliência
**3. Camuflagem**
O campo `Label` é preenchido com nomes que imitam agentes legítimos (`com.apple.mdmclient`, `com.google.keystone.agent`), dificultando a detecção visual.
**4. Execução via `launchctl`**
Além da persistência em login, o adversário pode usar [[t1569-001-launchctl|Launchctl]] para carregar o agente imediatamente (`launchctl load -w <plist>`), sem aguardar reinicialização.
**5. Exemplos de malware que exploram esta técnica**
- [[s0274-calisto|Calisto]] - backdoor macOS que instala Launch Agent para manter acesso
- [[s0279-proton|Proton]] - RAT comercial que usa `.plist` para persistência e coleta de credenciais
- [[s1016-macma|MacMa]] - backdoor atribuído ao APT vietnamita, usa Launch Agent com `KeepAlive`
- [[s0497-dacls|Dacls]] - malware cross-platform do [[g0032-lazarus-group|Lazarus Group]], variante macOS usa esta técnica
- [[s0595-thiefquest|ThiefQuest]] - ransomware/spyware macOS que persiste via Launch Agent
- [[s0482-bundlore|Bundlore]] - adware macOS que instala agentes para manter presença
## Contexto Brasil/LATAM
No Brasil e na América Latina, o uso de Launch Agents maliciosos em macOS ganhou relevância com o crescimento do ecossistema de startups, fintechs e empresas de tecnologia que adotaram MacBooks como dispositivos padrão de desenvolvimento. A campanha [[g1052-contagious-interview|Contagious Interview]], atribuída ao [[g0032-lazarus-group|Lazarus Group]], tem impactado desenvolvedores brasileiros na plataforma LinkedIn, onde falsas oportunidades de emprego levam à execução de pacotes npm maliciosos que instalam Launch Agents para manter persistência no macOS da vítima. O malware [[s0497-dacls|Dacls]], variante macOS do arsenal do [[g0032-lazarus-group|Lazarus Group]], utiliza exatamente esse mecanismo para manter conexão com servidores de [[t1071-application-layer-protocol|comando e controle]] mesmo após reinicializações. No contexto corporativo latino-americano, a ausência de soluções de MDM (Mobile Device Management) em muitas empresas de médio porte deixa dispositivos macOS sem monitoramento centralizado de `~/Library/LaunchAgents/`, tornando a detecção dependente de EDR endpoints. Equipes de blue team devem implementar regras de detecção focadas em criação de `.plist` por processos como `node`, `python` ou navegadores - vetores comuns de entrega inicial no cenário LATAM.
## Detecção
**Monitoramento recomendado:**
- Criação ou modificação de arquivos `.plist` em `~/Library/LaunchAgents/`, `/Library/LaunchAgents/`
- Execução de `launchctl load` com parâmetros de `.plist` externos ao sistema
- Processos filhos de `launchd` com executáveis em caminhos incomuns (`/tmp`, `~/.local`, `~/Downloads`)
- Hashes de `.plist` desconhecidos em diretórios de LaunchAgents
**Regra Sigma - Criação de Launch Agent suspeito:**
```yaml
title: Suspicious macOS Launch Agent Creation
id: a7e3f9b1-3c4d-4e8a-b2f1-9d0c5e7a8f3b
status: experimental
description: >
Detecta criação ou modificação de arquivos .plist em diretórios de
Launch Agents do macOS por processos não-padrão.
logsource:
category: file_event
product: macos
detection:
selection:
TargetFilename|contains:
- '/Library/LaunchAgents/'
TargetFilename|endswith: '.plist'
filter_legitimate:
Image|contains:
- '/usr/sbin/installer'
- '/Library/Apple/usr/'
- '/System/Library/'
condition: selection and not filter_legitimate
falsepositives:
- Instaladores legítimos de software de terceiros
- Ferramentas de gestão de dispositivos (MDM)
level: medium
tags:
- attack.persistence
- attack.t1543.001
```
## Mitigação
| ID | Mitigação | Descrição |
|---|-----------|-----------|
| M1022 | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Restringir permissões de escrita nos diretórios `/Library/LaunchAgents/` para usuários não-administrativos. Monitorar e auditar regularmente os agentes instalados. |
## Referências
*Fonte: [MITRE ATT&CK - T1543.001](https://attack.mitre.org/techniques/T1543/001)*