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