# T1547 - Boot or Logon Autostart Execution ## Descrição **T1547 - Boot or Logon Autostart Execution** é uma das técnicas de persistência mais prevalentes no MITRE ATT&CK. O adversário registra um programa, script ou comando para execução automática no momento em que o sistema inicializa ou quando um usuário faz login - garantindo que o implante retorna mesmo após reinicializações, atualizações ou intervenções parciais da equipe de resposta. Ao contrário de técnicas que dependem de sessões ativas ou processos efêmeros, a persistência via autostart é **passiva e resiliente**: o malware fica inativo até que o evento de boot ou logon o acione novamente. Isso torna a técnica especialmente atraente para grupos APT que precisam de acesso de longa duração, e para ransomware que desejá garantir o retorno do payload caso sejá detectado antes da encriptação completa. A técnica abrange quinze sub-técnicas documentadas pelo MITRE, cada uma explorando um mecanismo nativo diferente do sistema operacional - desde chaves de registro do Windows até Launch Daemons no macOS e serviços systemd no Linux. ## Sub-técnicas - [[t1547-001-registry-run-keys|T1547.001 - Boot or Logon Autostart Execution: Registry Run Keys]] - [[ Startup Folder]] - [[t1547-002-authentication-package|T1547.002 - Authentication Package]] - [[t1547-003-time-providers|T1547.003 - Time Providers]] - [[t1547-004-winlogon-helper-dll|T1547.004 - Winlogon Helper DLL]] - [[t1547-005-security-support-provider|T1547.005 - Security Support Provider]] - [[t1547-006-kernel-modules-and-extensions|T1547.006 - Kernel Modules and Extensions]] - [[t1547-007-re-opened-applications|T1547.007 - Re-opened Applications]] - [[t1547-008-lsass-driver|T1547.008 - LSASS Driver]] - [[t1547-009-shortcut-modification|T1547.009 - Shortcut Modification]] - [[t1547-010-port-monitors|T1547.010 - Port Monitors]] - [[t1547-012-print-processors|T1547.012 - Print Processors]] - [[t1547-013-xdg-autostart-entries|T1547.013 - XDG Autostart Entries]] - [[t1547-014-active-setup|T1547.014 - Active Setup]] - [[t1547-015-login-items|T1547.015 - Login Items]] ## Mecanismos Mais Explorados ### Windows - Registry Run Keys e Startup Folder As chaves de registro de autorun são o mecanismo mais abusado no ecossistema Windows. As localizações mais exploradas: ``` HKCU\Software\Microsoft\Windows\CurrentVersion\Run HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce HKLM\Software\Microsoft\Windows\CurrentVersion\Run HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run ``` A pasta Startup também é alvo frequente: ``` %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\ %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup\ ``` Entradas em `HKCU` exigem apenas privilégios de usuário comum - tornando esse vetor acessível a práticamente qualquer malware que obtenha execução inicial. Entradas em `HKLM` requerem privilégios administrativos, mas oferecem persistência para todos os usuários do sistema. ### macOS - Launch Daemons e Launch Agents O macOS utiliza o launchd como sistema de inicialização. Arquivos `.plist` em locais específicos definem o que é executado automaticamente: ``` /Library/LaunchDaemons/ → executa como root no boot (todos os usuários) /Library/LaunchAgents/ → executa como root no logon de qualquer usuário ~/Library/LaunchAgents/ → executa como o usuário no seu logon /System/Library/LaunchDaemons/ → reservado ao sistema operacional ``` Launch Daemons em `/Library/LaunchDaemons/` requerem privilégios de root para instalação, mas executam no contexto do sistema - ideal para implantes que precisam de persistência privilegiada. ### Linux - systemd, cron e rc.local ``` /etc/systemd/system/ → serviços systemd (root) ~/.config/systemd/user/ → serviços systemd do usuário /etc/cron.d/ → cron jobs do sistema /var/spool/cron/crontabs/ → cron jobs por usuário /etc/rc.local → script legado de inicialização ~/.bashrc / ~/.profile → execução no shell de login ``` Em ambientes de servidor Linux - comuns em infraestruturas de nuvem e containers - a persistência via systemd é a mais robusta e difícil de detectar sem auditoria específica. > [!warning] Trojans Bancários e Ransomware no Brasil > - **Trojans bancários LATAM** ([[s0531-grandoreiro|Grandoreiro]], [[mekotio|Mekotio]]): registro em `HKCU\Run` com nomes que imitam utilitários legítimos do Windows (`WindowsUpdaté.exe`, `AdobeFlash.exe`) > - **Ransomware moderno** ([[g1024-akira|Akira]], [[lockbit|LockBit]]): usa T1547.001 durante a fase pré-encriptação para garantir reexecução caso o processo sejá interrompido antes da conclusão > - **[[g0008-carbanak|Carbanak]]**: persistência via scheduled tasks e Run Keys em ataques a sistemas de ponto de venda (PDV) no varejo e hotelaria > [!tip] Por que essa técnica é tão prevalente? > T1547 é atraente por três razões: (1) múltiplos mecanismos nativos de SO disponíveis - se um for removido, outro pode ser usado; (2) muitos mecanismos requerem apenas privilégios de usuário; (3) entradas de autorun são frequentemente ignoradas em análises de incident response focadas em processos ativos. ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>(phishing, exploit, credencial)"] B["Execução do Payload<br/>(primeira vez - manual ou via exploit)"] C{"Plataforma?"} D["Windows:<br/>Escrita em Run Key ou Startup Folder"] E["macOS:<br/>Instalação de LaunchAgent/Daemon .plist"] F["Linux:<br/>Criação de serviço systemd ou cron job"] G["Persistência ativa:<br/>reexecutado em cada boot/logon"] H["Atividades pós-persistência:<br/>C2, lateral movement, coleta de dados"] A --> B B --> C C -->|Windows| D C -->|macOS| E C -->|Linux| F D --> G E --> G F --> G G --> H 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 C decision class B,D,E,F action class G persist class H impact ``` ## Contexto CTI - Uso por Ameaças > [!danger] APTs e Grupos de Crime Organizado > T1547 é uma das técnicas com maior prevalência em campanhas avançadas documentadas: > > - **[[g0032-lazarus-group|Lazarus Group]]**: usa Registry Run Keys para persistência de implantes financeiros em campanhas como Operation AppleJeus e DreamJob; frequentemente combina com técnicas de mascaramento de processo > - **[[g0016-apt29|APT29]]**: combina T1547.001 com [[t1055-process-injection|T1055 - Process Injection]] para persistência discreta em redes governamentais; prefere entradas em `HKLM` que sobrevivem a logouts de usuário > - **[[g0007-apt28|APT28]]**: usa T1547.004 (Winlogon Helper DLL) em campanhas de espionagem para carregar implantes no contexto do Winlogon, aumentando a dificuldade de detecção > - **[[g0034-sandworm|Sandworm Team]]**: utiliza persistência via systemd em ataques a infraestruturas críticas Linux, notavelmente em operações contra distribuidoras de energia ## Detecção ```mermaid graph TB A["Monitoramento de Registro<br/>(Sysmon Event 13)"] B{"Modificação em<br/>Run / RunOnce Keys?"} C["ALERTA: novo entry<br/>não-assinado ou path suspeito"] D["Auditoria de<br/>Startup Folder"] E{"Novo .lnk, .bat ou .exe<br/>na pasta Startup?"} F["ALERTA: possível T1547.009<br/>Shortcut Modification"] G["EDR - Process Creation<br/>(Sysmon Event 1)"] H{"Processo iniciado por<br/>explorer.exe ou winlogon.exe<br/>com path incomum?"} I["Investigar: possível<br/>Logon Autostart"] J["Auditoria de<br/>Launch Daemons (macOS)"] K{"Novo .plist em<br/>/Library/LaunchDaemons/?"} L["ALERTA: possível<br/>Launch Daemon malicioso"] M["Auditoria de<br/>serviços systemd (Linux)"] N{"Novo serviço em<br/>/etc/systemd/system/?"} O["Investigar: possível<br/>persistência via systemd"] A --> B B -->|Sim| C D --> E E -->|Sim| F G --> H H -->|Sim| I J --> K K -->|Sim| L M --> N N -->|Sim| O 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,D,G,J,M monitor class B,E,H,K,N check class C,F,L alert class I,O investigaté ``` ### Eventos Windows para Monitorar | Evento | ID | O que captura | |--------|----|---------------| | Modificação de Run Key | Sysmon Event 13 | Registry value set em paths de autorun | | Novo arquivo em Startup | Sysmon Event 11 | File created em pasta de startup | | Processo criado por autorun | Sysmon Event 1 | `ParentImage` = `explorer.exe` ou `winlogon.exe` na inicialização | | Módulo carregado | Sysmon Event 7 | DLL carregada via Winlogon ou LSA | | Criação de serviço | Windows Event 4697 | Novo serviço instalado no sistema | ### Ferramentas de Auditoria - **Autoruns (Sysinternals)**: inventário completo de todos os mecanismos de autostart - ferramenta de referência para análise forense de persistência; comparar com baseline confiável - **Sysmon**: Events 11 e 13 com filtro em paths de registro de autorun e pastas Startup - **OSQuery**: `SELECT * FROM startup_items` para inventário contínuo de itens de logon - **launchctl list** (macOS): enumerar todos os Launch Agents e Daemons registrados ## Mitigações | Mitigação | Descrição | Prioridade | |-----------|-----------|------------| | [[m1022-restrict-file-and-dir-permissions\|M1022 - Restrict File and Directory Permissions]] | Restringir escrita em pastas Startup para não-administradores; proteger `/Library/LaunchDaemons/` e `/etc/systemd/system/` | Alta | | [[m1024-restrict-registry-permissions\|M1024 - Restrict Registry Permissions]] | Aplicar ACLs restritivas nas chaves `HKLM\...\Run` para impedir escrita por usuários não-privilegiados | Alta | | [[m1018-user-account-management\|M1018 - User Account Management]] | Limitar privilégios que permitem registro de serviços, módulos de kernel e Load/Unload de drivers | Média | --- *Fonte: MITRE ATT&CK - T1547 (https://attack.mitre.org/techniques/T1547/)*