# T1547.015 - Login Items
Técnica pai: [[t1547-boot-logon-autostart-execution|T1547 - Boot or Logon Autostart Execution]]
## Descrição
**T1547.015 - Login Items** é uma sub-técnica de persistência exclusiva do macOS que permite a adversários registrar aplicações, documentos, pastas ou conexões de servidor para execução automática quando um usuário faz logon. Login Items são um recurso nativo do macOS amplamente utilizado por software legítimo - como clientes de e-mail, apps de música e ferramentas de sincronização - o que torna entradas maliciosas difíceis de distinguir sem auditoria específica.
Existem dois mecanismos distintos para criar Login Items, com características de visibilidade e persistência diferentes:
### 1. Service Management Framework (SMF)
O método mais furtivo. O adversário usa a chamada de API `SMLoginItemSetEnabled` para registrar um aplicativo como Login Item. Itens criados desta forma:
- São gerenciados pelo `launchd`
- **Não aparecem** nas Preferências do Sistema (invisíveis para o usuário)
- Só podem ser removidos pela aplicação que os criou
Adversários podem usar [[t1106-native-api|T1106 - Native API]] para invocar `SMLoginItemSetEnabled` diretamente, registrando o payload como item de logon de forma completamente transparente para o usuário.
### 2. Shared File List (Lista de Itens de Logon)
O método mais visível, mas ainda amplamente explorado. O adversário usa [[t1059-002-applescript|AppleScript]] para enviar um Apple Event ao processo "System Events", que possui um dicionário AppleScript para manipular Login Items:
```applescript
tell application "System Events"
make login item at end with properties {path:"/caminho/para/executavel", hidden:true}
end tell
```
O parâmetro `hidden:true` faz o aplicativo ser lançado em segundo plano sem jánela visível. Os itens criados dessa forma ficam armazenados em:
```
~/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm
```
Em versões anteriores ao macOS 10.5, o adversário podia usar AppleScript para adicionar Login Items enviando Apple Events diretamente ao processo "System Events".
> [!note] Distinção importante
> Login Items via Shared File List são processados pelo **LaunchServices**, não pelo `launchd`. Isso significa que o sistema abre os itens como aplicações normais, usando a infraestrutura de abertura de arquivos do macOS - diferente dos Launch Agents, que são serviços gerenciados diretamente pelo `launchd`.
## Contexto Brasil/LATAM
No Brasil e na América Latina, o uso de dispositivos macOS cresceu de forma expressiva nos últimos anos, especialmente em empresas de tecnologia, startups e órgãos governamentais que adotaram a plataforma por razões de segurança percebida. Esse crescimento amplia a superfície de ataque relevante para Login Items - uma técnica que, até recentemente, era ignorada em avaliações de risco voltadas ao cenário LATAM, dominado historicamente por alvos Windows.
Grupos como o [[g0032-lazarus-group|Lazarus Group]] têm diversificado seus implantes para macOS, e ferramentas como o [[s0198-netwire|NETWIRE]] - historicamente associado a campanhas de espionagem e fraude financeira no [[financial|setor financeiro]] brasileiro - possuem variantes macOS que utilizam Login Items para garantir persistência após o comprometimento inicial. O [[s0281-dok|Dok]], malware macOS documentado que combina Login Items com instalação de certificado raiz malicioso para interceptação HTTPS, representa um vetor particularmente relevante em ambientes corporativos brasileiros onde o tráfego bancário é frequentemente o alvo.
Do ponto de vista defensivo, a baixa maturidade de inventário de endpoints macOS em organizações brasileiras - muitas ainda sem solução MDM (como Jámf ou Mosyle) - torna a detecção de Login Items maliciosos especialmente desafiadora. A ausência de visibilidade sobre `backgrounditems.btm` em frota macOS é um gap recorrente em times de [[_defenses|defesa]] na região. Em ambientes corporativos com macs, a implementação de [[m1022-restrict-file-and-directory-permissions|M1022]] e o inventário contínuo via MDM são controles prioritários para mitigar este vetor.
## Software Associado
- [[s0690-green-lambert|Green Lambert]]: implante sofisticado atribuído a grupo de inteligência ocidental; usa Login Items para persistência discreta em alvos macOS de alto valor
- [[s0198-netwire|NETWIRE]]: RAT multiplataforma; variantes macOS exploram Login Items via AppleScript para garantir reexecução após reinicializações
- [[s0281-dok|Dok]]: malware macOS focado em interceptação de tráfego HTTPS; usa Login Items combinado com instalação de certificado raiz malicioso para ataques man-in-the-middle
## Attack Flow
```mermaid
graph TB
A["Acesso Inicial<br/>(app malicioso, spearphishing,<br/>drive-by download)"]
B{"Método de<br/>registro escolhido"}
C["Via SMF:<br/>SMLoginItemSetEnabled<br/>(invisível ao usuário)"]
D["Via AppleScript:<br/>Apple Event para System Events<br/>(pode ser ocultado com hidden:true)"]
E["Item registrado em<br/>backgrounditems.btm<br/>ou via launchd"]
F["Próximo logon do usuário<br/>→ execução automática do payload"]
G["Atividades pós-logon:<br/>backdoor C2, coleta de dados,<br/>captura de credenciais"]
A --> B
B -->|SMF| C
B -->|AppleScript| D
C --> E
D --> E
E --> F
F --> G
classDef initial fill:#e74c3c,color:#fff
classDef decision fill:#f39c12,color:#fff
classDef action fill:#3498db,color:#fff
classDef persist fill:#8e44ad,color:#fff
classDef impact fill:#e67e22,color:#fff
class A initial
class B decision
class C,D,E action
class F persist
class G impact
```
## Relação com Outras Técnicas macOS
Login Items é frequentemente comparado a outros mecanismos de persistência nativos do macOS. As diferenças operacionais são relevantes para detecção:
| Mecanismo | Técnica | Executa como | Visível ao usuário | Removível pelo usuário |
|-----------|---------|--------------|-------------------|----------------------|
| Login Items (SMF) | [[t1547-015-login-items\|T1547.015]] | usuário atual | Não | Não (apenas pelo app) |
| Login Items (Shared File) | [[t1547-015-login-items\|T1547.015]] | usuário atual | Sim | Sim |
| Launch Agent | [[t1543-001-launch-agent\|T1543.001]] | usuário atual | Não (launchctl) | Apenas root |
| Launch Daemon | [[t1543-004-launch-daemon\|T1543.004]] | root | Não (launchctl) | Apenas root |
| Login Hook (depreciado) | [[t1037-002-login-hook\|T1037.002]] | root | Não | Apenas admin |
A principal vantagem operacional de Login Items via SMF para o adversário é a **invisibilidade**: o item não aparece em nenhuma lista de configuração acessível ao usuário comum, e só pode ser removido pela própria aplicação maliciosa - o que complica a remediação.
## Detecção
```mermaid
graph TB
A["Monitorar criação e<br/>modificação de backgrounditems.btm"]
B{"Novo item adicionado<br/>ao arquivo btm?"}
C["Inspecionar path do executável:<br/>assinado e identificado?"]
D{"App assinado por<br/>desenvolvedor conhecido?"}
E["ALERTA: executável<br/>não-assinado ou desconhecido<br/>registrado como Login Item"]
F["Monitorar Apple Events<br/>ao processo System Events"]
G{"Evento 'make login item'<br/>originado de processo incomum?"}
H["ALERTA: possível abuso<br/>de AppleScript para persistência"]
A --> B
B -->|Sim| C
C --> D
D -->|Não| E
F --> G
G -->|Sim| H
classDef monitor fill:#27ae60,color:#fff
classDef check fill:#3498db,color:#fff
classDef alert fill:#e74c3c,color:#fff
class A,F monitor
class B,C,D,G check
class E,H alert
```
### Comandos para Auditoria
```bash
# Listar Login Items visíveis (Shared File List) - macOS 13+
sfltool dumpbtm
# Localização do arquivo de Login Items
ls -la ~/Library/Application\ Support/com.apple.backgroundtaskmanagementagent/
# Listar todos os itens gerenciados pelo BackgroundTaskManagement
# (requer macOS Ventura+)
pluginkit -m -A -v | grep SMLoginItem
```
### Fontes de dados MITRE
- **File: File Creation / File Modification** - monitorar alterações em `backgrounditems.btm`
- **Process: Process Creation** - detectar processos iniciados imediatamente após logon com parent process incomum
## Mitigações
| Mitigação | Descrição | Prioridade |
|-----------|-----------|------------|
| [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Restringir acesso de escrita ao diretório `com.apple.backgroundtaskmanagementagent/` para impedir adição não-autorizada de Login Items | Alta |
| [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Usar Gatekeeper e verificação de notarização da Apple para bloquear execução de aplicativos não-assinados registrados como Login Items | Alta |
> [!tip] Detecção aprimorada no macOS Ventura+
> A partir do macOS 13 (Ventura), a Apple introduziu o **Background Task Management** como substituto ao sistema legado de Login Items. O sistema agora notifica o usuário sobre novos itens de logon registrados por software de terceiros. Em ambientes corporativos, combine esse recurso nativo com MDM (Jámf, Mosyle) para inventário contínuo de Login Items registrados em todos os dispositivos.
---
*Fonte: MITRE ATT&CK - T1547.015 (https://attack.mitre.org/techniques/T1547/015/)*