# T1037.002 - Login Hook Técnica pai: [[t1037-boot-or-logon-initialization-scripts|T1037 - Scripts de Inicialização]] ## Descrição **T1037.002 - Login Hook** é uma sub-técnica de persistência exclusiva do macOS que permite a adversários executar um script arbitrário com privilégios de **root** no momento em que qualquer usuário faz logon no sistema. O mecanismo funciona por meio de uma entrada no arquivo de preferências `/Library/Preferences/com.apple.loginwindow.plist`, que pode ser configurada usando a ferramenta de linha de comando `defaults`. O arquivo `com.apple.loginwindow.plist` aceita dois tipos de hooks: - **LoginHook**: script executado com root imediatamente após o logon do usuário - **LogoutHook**: script executado com root após o logout do usuário Para configurar um Login Hook, o adversário usa o comando: ```bash defaults write com.apple.loginwindow LoginHook /caminho/para/script.sh ``` O script registrado é executado automaticamente pelo sistema operacional na próxima vez que qualquer usuário fizer logon, com as credenciais de root - tornando essa técnica especialmente poderosa para implantes que precisam de execução privilegiada sem intervenção do usuário. O sistema permite apenas **um Login Hook e um Logout Hook por vez**. Se um hook já existir, o adversário pode sobrescrever o caminho registrado para redirecionar a execução ao script malicioso, ou adicionar comandos adicionais ao script legítimo existente para encadear a execução maliciosa sem remover o hook original. > [!warning] Depreciação no macOS 10.11 (El Capitan) > A Apple depreciou Login Hooks a partir do macOS 10.11. Para sistemas modernos, o MITRE recomenda observar [[t1543-004-launch-daemon|T1543.004 - Launch Daemon]] e [[t1543-001-launch-agent|T1543.001 - Launch Agent]] como substitutos funcionais com maior prevalência em ataques atuais. Em sistemas legados ou em ambientes corporativos com versões antigas do macOS, o Login Hook ainda representa risco real. > [!note] Privilégios necessários > Todos os hooks - criação e modificação - requerem permissões de administrador. O adversário precisa de acesso root ou sudo para registrar o caminho do script no plist. ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>(exploit, credencial, engenharia social)"] B["Escalonamento de Privilégio<br/>(necessário: admin/root)"] C["Leitura do plist existente<br/>defaults read com.apple.loginwindow"] D{"Já existe<br/>um LoginHook?"} E["Sobrescrever caminho<br/>com script malicioso"] F["Adicionar comandos<br/>ao script legítimo existente"] G["Novo hook registrado<br/>no com.apple.loginwindow.plist"] H["Próximo logon de usuário<br/>→ execução do script como root"] I["Persistência ativa:<br/>C2, coleta de credenciais, backdoor"] A --> B B --> C C --> D D -->|Não| E D -->|Sim| F E --> G F --> G G --> H H --> I classDef initial fill:#e74c3c,color:#fff classDef priv fill:#8e44ad,color:#fff classDef decision fill:#f39c12,color:#fff classDef action fill:#3498db,color:#fff classDef persist fill:#27ae60,color:#fff classDef impact fill:#e67e22,color:#fff class A initial class B priv class D decision class C,E,F,G action class H persist class I impact ``` ## Relação com Outras Técnicas O Login Hook é conceitualmente próximo de outros mecanismos de persistência no macOS. A distinção principal é o contexto de execução e o nível de privilégio: | Mecanismo | Técnica | Executa como | Visibilidade | |-----------|---------|--------------|--------------| | Login Hook | [[t1037-002-login-hook\|T1037.002]] | root | Baixa (plist oculto) | | Launch Daemon | [[t1543-004-launch-daemon\|T1543.004]] | root | Média (launchctl) | | Launch Agent | [[t1543-001-launch-agent\|T1543.001]] | usuário atual | Média (launchctl) | | Login Items | [[t1547-015-login-items\|T1547.015]] | usuário atual | Alta (System Preferences) | O Login Hook executa como root independentemente de qual usuário está fazendo logon - comportamento diferente dos Launch Agents, que executam no contexto do usuário que iniciou a sessão. ## Detecção ```mermaid graph TB A["Monitorar modificações<br/>em plist de loginwindow"] B{"com.apple.loginwindow.plist<br/>foi alterado?"} C["Verificar campos:<br/>LoginHook / LogoutHook"] D{"Path aponta para<br/>arquivo legítimo<br/>e assinado?"} E["ALERTA: script não-assinado<br/>ou path suspeito registrado"] F["Auditoria de<br/>criação de processos"] G{"Script executado logo<br/>após logon do usuário<br/>com uid=0?"} H["Investigar: possível<br/>LoginHook malicioso ativo"] 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 classDef investigaté fill:#f39c12,color:#fff class A,F monitor class B,C,D,G check class E alert class H investigaté ``` ### Comandos para Auditoria Para verificar se existe um Login Hook registrado no sistema: ```bash # Leitura do hook registrado defaults read com.apple.loginwindow LoginHook defaults read com.apple.loginwindow LogoutHook # Leitura completa do plist de loginwindow sudo defaults read /Library/Preferences/com.apple.loginwindow # Remoção de hook malicioso (remediação) sudo defaults delete com.apple.loginwindow LoginHook ``` ### Fontes de dados MITRE - **File: File Modification** - monitorar escrita em `/Library/Preferences/com.apple.loginwindow.plist` - **Process: Process Creation** - detectar scripts executados como root imediatamente após eventos de logon ## Mitigações | Mitigação | Descrição | Prioridade | |-----------|-----------|------------| | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Restringir permissões de escrita em `/Library/Preferences/com.apple.loginwindow.plist` para impedir modificações não-autorizadas | Alta | > [!tip] Mitigação adicional recomendada > Além das permissões de arquivo, o monitoramento contínuo do plist com ferramentas de EDR para macOS (como Jámf Protect ou CrowdStrike Falcon para Mac) é a detecção mais efetiva. Em ambientes gerenciados, use MDM para bloquear alterações em preferências críticas do sistema. ## Contexto Brasil/LATAM No Brasil e na América Latina, o uso de Login Hooks como mecanismo de persistência é menos prevalente do que técnicas equivalentes no Windows, mas constitui um risco real em ambientes corporativos que adotaram macOS em larga escala - especialmente empresas dos setores [[financial|financeiro]], [[technology|tecnologia]] e agências de publicidade e design, onde o uso de MacBooks é predominante. Campanhas de espionagem corporativa direcionadas a executivos e times jurídicos de grandes empresas brasileiras registraram o uso de implantes macOS - incluindo variantes do [[s0482-bundlore|Bundlore]] e do [[shlayer|Shlayer]] - que exploram mecanismos de persistência nativos do macOS para garantir sobrevivência entre reinicializações. Embora esses implantes utilizem principalmente Launch Agents ([[t1543-001-launch-agent|T1543.001]]) em versões modernas do macOS, em sistemas legados sem atualização (macOS 10.10 ou anterior, ainda presentes em alguns ambientes corporativos brasileiros), o Login Hook permanece operacional e menos monitorado. O risco específico no contexto LATAM está associado à **gestão deficiente de endpoints macOS em PMEs**: ausência de MDM (como Jámf ou Mosyle), falta de políticas de atualização obrigatória e ausência de EDR com cobertura para macOS criam uma jánela de exposição significativa. Em ambientes onde a equipe de TI não é treinada específicamente para ameaças macOS, um Login Hook malicioso pode permanecer ativo por meses sem ser detectado, fornecendo ao adversário execução privilegiada a cada logon do usuário. Para equipes de segurança brasileiras que gerenciam frotas mistas Windows/macOS, a auditoria do campo `LoginHook` no `com.apple.loginwindow.plist` deve ser incluída nos runbooks de hardening de endpoint, especialmente em máquinas de usuários com acesso a sistemas financeiros, dados sensíveis de clientes ou credenciais de infraestrutura crítica. Ferramentas como o [[t1543-004-launch-daemon|T1543.004 - Launch Daemon]] são substitutos funcionais preferidos por adversários em versões modernas do macOS, mas o Login Hook deve ser auditado em qualquer inventário que inclua máquinas com macOS anterior ao Catalina (10.15). --- *Fonte: MITRE ATT&CK - T1037.002 (https://attack.mitre.org/techniques/T1037/002/)*