# T1546.016 - Installer Packages
> [!abstract] Visão Geral
> **Tática:** Privilege Escalation / Persistence | **Plataformas:** Linux, Windows, macOS | **ID MITRE:** T1546.016
> Adversários abusam de scripts de instalação legítimos - que herdam permissões elevadas - para executar payloads maliciosos durante ou após a instalação de software, combinando entrega e escalonamento de privilégios em uma única operação.
## Descrição
A técnica **Installer Packages** explora o mecanismo de scripts de instalação presente em todos os principais sistemas operacionais. Quando um usuário instala um aplicativo, o processo de instalação frequentemente requer permissões administrativas e executa scripts auxiliares que preparam o ambiente, verificam dependências, configuram serviços e realizam operações de limpeza pós-instalação. Esses scripts herdam as permissões elevadas concedidas pelo usuário durante a instalação, criando uma jánela de oportunidade para adversários que conseguem trojanizar um pacote instalador legítimo ou criar um instalador malicioso disfarçado de software autêntico.
A técnica é particularmente perigosa porque explora a **confiança implícita do usuário no processo de instalação**. Quando uma pessoa concede permissões administrativas para instalar um software que considera legítimo, ela inadvertidamente autoriza a execução de scripts maliciosos embutidos no instalador. Isso torna a técnica ideal para cenários de *supply chain attack* - onde o adversário compromete a cadeia de distribuição de software - e para campanhas de *spear phishing* que entregam instaladores trojanizados para alvos específicos. A combinação de entrega de acesso inicial e escalonamento de privilégios em uma única ação torna T1546.016 especialmente eficiente em operações APT.
Cada sistema operacional possui seu próprio ecossistema de instaladores: macOS usa pacotes `.pkg` com scripts `preinstall` e `postinstall`; Linux utiliza pacotes `.deb` (Debian/Ubuntu) e `.rpm` (Red Hat/CentOS/Fedora) com scripts `preinst`, `postinst`, `prerm` e `postrm`, todos executados com privilégios de root; Windows usa o Microsoft Installer (`.msi`) com suporte a *Custom Actions* que podem executar código arbitrário durante a instalação. Essa universalidade da técnica - presente nos três principais sistemas operacionais - a torna uma das abordagens de persistência e escalonamento de privilégios mais versáteis no arsenal de adversários sofisticados.
## Como Funciona
O funcionamento da técnica varia conforme o sistema operacional alvo, mas segue o mesmo princípio fundamental: **scripts embutidos em pacotes instaladores são executados com privilégios elevados durante o processo de instalação**.
### macOS - Pacotes .pkg
Os pacotes macOS `.pkg` (e `.mpkg` para instaladores multi-pacote) suportam quatro tipos de scripts de instalação:
- **`preinstall`**: Executado antes da instalação com privilégios de root. Usado para verificar requisitos e preparar o sistema.
- **`postinstall`**: Executado após a instalação com privilégios de root. O vetor mais comum de abuso - o aplicativo legítimo é instalado normalmente, e o script malicioso é executado em seguida.
- **`preupgrade`** e **`postupgrade`**: Análogos para atualizações.
Adversários como o [[g0032-lazarus-group|Lazarus Group]] (via [[g1049-applejeus|AppleJeus]]) criaram aplicativos de criptomoedas falsos distribuídos como pacotes `.pkg` em que o script `postinstall` instalava um [[t1543-004-launch-daemon|Launch Daemon]] persistente com permissões de root.
### Linux - Pacotes .deb e .rpm
Em sistemas baseados em Debian (Ubuntu, Kali Linux), os pacotes `.deb` contêm scripts de manutenção:
- **`preinst`**: Executado como root antes da instalação dos arquivos
- **`postinst`**: Executado como root após a instalação - vetor mais comum
- **`prerm`** e **`postrm`**: Executados durante a remoção do pacote
Em sistemas baseados em Red Hat (.rpm), equivalentes são os scripts `%pre`, `%post`, `%preun` e `%postun` definidos no spec file. Todos executam como root, tornando-os vetores de privilege escalation quando abusados.
### Windows - Microsoft Installer (.msi)
Os arquivos `.msi` suportam *Custom Actions* - ações personalizadas que podem executar DLLs, executáveis, scripts VBScript/JScript ou comandos durante a instalação. Custom Actions de sequência de instalação (`InstallExecuteSequence`) rodam no contexto do usuário que executa o instalador (frequentemente com permissões de administrador via UAC elevation).
## Attack Flow
```mermaid
graph TB
A["Preparação<br/>Criar/trojanizar pacote instalador<br/>(pkg, deb, rpm, msi)"] --> B["Entrega<br/>Distribuição via phishing,<br/>supply chain, site falso ou typosquatting"]
B --> C["Execução do Instalador<br/>Usuário concede permissões<br/>administrativas (sudo / UAC)"]
C --> D["Scripts de Instalação<br/>preinst/postinst/preinstall/<br/>postinstall/Custom Actions"]
D --> E["Execução Privilegiada<br/>Payload roda como root/SYSTEM<br/>herdando permissões do instalador"]
E --> F1["Persistência<br/>Instalar Launch Daemon,<br/>serviço Windows, cron job"]
E --> F2["Acesso Remoto<br/>Deploy de backdoor/C2<br/>com privilégios elevados"]
F1 --> G["Impacto<br/>Controle persistente do sistema<br/>com privilégios máximos"]
F2 --> G
```
## Exemplos de Uso
### Lazarus Group - AppleJeus / Operation DreamJob
O [[g0032-lazarus-group|Lazarus Group]], APT norte-coreano com extenso histórico de ataques financeiros, é o ator mais documentado no uso de T1546.016. A campanha [[operation-dreamjob|Operation DreamJob]] e as operações do malware [[g1049-applejeus|AppleJeus]] consistentemente entregam pacotes `.pkg` macOS disfarçados de aplicativos de negociação de criptomoedas. O script `postinstall` desses pacotes instala um Launch Daemon persistente que estabelece comunicação com servidores C2, permitindo acesso remoto completo ao sistema comprometido com privilégios de root. Alvos incluem exchanges de criptomoedas, desenvolvedores de blockchain e empresas financeiras - setores com presença significativa no Brasil.
### Supply Chain Attack - 3CX (2023)
O ataque à cadeia de suprimentos da 3CX, atribuído ao [[g0032-lazarus-group|Lazarus Group]], demonstra o uso de instaladores trojanizados em escala. O instalador legítimo do software de comunicação 3CX foi comprometido, resultando na distribuição de versões maliciosas para milhares de empresas globalmente. No macOS, o instalador `.pkg` continha uma biblioteca maliciosa adicional; no Windows, o `.msi` entregava DLLs maliciosas via sideloading. Empresas brasileiras usuárias do 3CX foram potencialmente afetadas.
### Distribuição de Malware via Repositórios Linux
Pesquisadores documentaram casos em que pacotes maliciosos foram enviados para repositórios pip (Python), npm (Node.js) e até repositórios APT não oficiais com scripts `postinst` maliciosos. No contexto brasileiro, onde desenvolvedores frequentemente instalam pacotes de fontes diversas, esse vetor é particularmente relevante.
### XZ Utils Backdoor (2024 - CVE-2024-3094)
Um dos ataques de supply chain mais sofisticados de 2024 envolveu a inserção de um backdoor na biblioteca de compressão XZ Utils via scripts de build manipulados no tarball de distribuição. Embora técnicamente diferente de um script `postinst`, o incidente ilustra como a fase de instalação/build pode ser abusada para comprometer sistemas Linux em escala - com impacto em distribuições amplamente usadas no Brasil como Ubuntu, Debian e Fedora.
## Detecção
A detecção de T1546.016 requer monitoramento do processo de instalação e análise dos scripts executados durante esse processo. O desafio é distinguir scripts legítimos de scripts maliciosos, especialmente quando o instalador como um todo parece legítimo.
**Auditoria de scripts de instalação antes da execução**: Em ambientes corporativos, implementar processos de aprovação para novos instaladores, verificando o conteúdo dos scripts de instalação antes da implantação.
**Monitoramento de processos filhos de instaladores**: Processos de instalação que spawnam shells interativos, fazem download de conteúdo adicional da internet ou criam serviços persistentes fora dos diretórios padrão são indicadores suspeitos.
```yaml
title: Suspicious Child Process Spawned by Package Installer
id: c3d4e5f6-a7b8-9012-cdef-012345678901
status: experimental
description: Detecta processos filhos suspeitos originados de instaladores de pacotes, possível indicador de T1546.016
logsource:
category: process_creation
product: linux
detection:
selection_parent:
ParentImage|endswith:
- '/dpkg'
- '/apt'
- '/rpm'
- '/yum'
- '/dnf'
selection_suspicious_child:
Image|endswith:
- '/bash'
- '/sh'
- '/python3'
- '/python'
- '/perl'
- '/curl'
- '/wget'
CommandLine|contains:
- 'http'
- 'download'
- '/tmp/'
- 'chmod +x'
- 'base64'
condition: selection_parent and selection_suspicious_child
falsepositives:
- Scripts de postinst legítimos que fazem download de dependências
- Gestores de pacotes como Homebrew
level: medium
tags:
- attack.privilege_escalation
- attack.persistence
- attack.t1546.016
```
```yaml
title: macOS Installer postinstall Script Executes Network Connection
id: d4e5f6a7-b8c9-0123-defa-123456789012
status: experimental
description: Detecta scripts postinstall macOS realizando conexões de rede, possível C2 beacon após instalação de pacote trojanizado
logsource:
category: network_connection
product: macos
detection:
selection:
Image|contains:
- '/tmp/'
- 'postinstall'
- 'preinstall'
Initiated: 'true'
condition: selection
level: high
tags:
- attack.privilege_escalation
- attack.t1546.016
```
**Verificação de assinatura de pacotes**: Validar assinaturas digitais de instaladores antes da execução. No macOS, usar `pkgutil --check-signature <pkg>` para verificar a assinatura do desenvolvedor. No Linux, válidar chaves GPG dos repositórios.
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| [[m1038-execution-prevention\|M1038]] | Prevenção de Execução | Implementar allowlisting de aplicativos (AppLocker no Windows, aplicativos aprovados via MDM no macOS) para bloquear execução de instaladores não aprovados. Exigir que instaladores corporativos sejam distribuídos apenas por canais gerenciados. |
| [[m1045-code-signing\|M1045]] | Assinatura de Código | Exigir que instaladores sejam assinados digitalmente por certificados de desenvolvedor válidos e conhecidos. No macOS, configurar Gatekeeper para bloquear pacotes não assinados. No Linux, usar apenas repositórios com chaves GPG verificadas. |
| [[m1026-privileged-account-management\|M1026]] | Gerenciamento de Contas Privilegiadas | Adotar o princípio do menor privilégio - limitar quais usuários podem instalar software e exigir aprovação explícita para instalações com privilégios elevados. Implementar PAM (Privileged Access Management) para rastrear e aprovar instalações em ambientes críticos. |
| [[m1051-update-software\|M1051]] | Atualização de Software | Manter sistemas de distribuição de software atualizados e monitorar a integridade de repositórios de pacotes. Implementar verificação de hash para pacotes baixados antes da execução. |
**Controles adicionais**:
- **Software Composition Analysis (SCA)**: Usar ferramentas que inspecionam scripts de instalação em busca de comportamentos suspeitos antes da implantação
- **Sandbox de instalação**: Executar instaladores em ambientes isolados (VMs, containers) antes de implantação em produção
- **SBOM (Software Bill of Materials)**: Manter inventário de software instalado e verificar regularmente a integridade dos binários
## Contexto Brasil/LATAM
No Brasil e na América Latina, a técnica T1546.016 é extremamente relevante por razões culturais, econômicas e de infraestrutura específicas da região.
**Pirataria e instaladores não oficiais**: O Brasil apresenta historicamente altas taxas de uso de software pirata, o que frequentemente implica download de instaladores de fontes não oficiais - um vetor ideal para distribuição de pacotes trojanizados. Campanhas de malware bancário brasileiras, como aquelas que distribuem variantes de [[s0531-grandoreiro|Grandoreiro]] e [[mekotio|Mekotio]], frequentemente utilizam instaladores falsos disfarçados de software legítimo (Adobe Reader, Java, codecs de vídeo).
**Software bancário e fiscal**: O ecossistema de software fiscal e bancário brasileiro é único - módulos de segurança de bancos (Warsaw, GAS Tecnologia), certificados digitais (ICP-Brasil) e utilitários da Receita Federal são alvos de falsificação. Instaladores trojanizados desses utilitários são um vetor documentado em campanhas brasileiras, pois usuários têm alta propensão a instalar software fiscal mesmo de fontes duvidosas.
**Supply chain de software corporativo regional**: Fornecedores de ERP, software de RH e sistemas de gestão específicos do mercado brasileiro (TOTVS, Senior, Linx) são amplamente implantados em empresas nacionais. Um comprometimento da cadeia de suprimentos de qualquer um desses fornecedores poderia afetar dezenas de milhares de empresas brasileiras simultaneamente - escenário análogo ao ataque à 3CX.
**Grupos APT com interesse no LATAM**: O [[g0032-lazarus-group|Lazarus Group]], [[g0046-fin7|FIN7]] e grupos de ransomware como [[lockbit|LockBit]] e [[blackcat|ALPHV]] documentaram ataques a organizações brasileiras. Todos possuem capacidade técnica para empregar T1546.016 em campanhas direcionadas à região.
## Software Associado
- [[g1049-applejeus|AppleJeus]] (malware) - malware macOS do Lazarus Group distribuído via .pkg trojanizados
- [[s0531-grandoreiro|Grandoreiro]] (malware) - trojan bancário brasileiro com instaladores falsos
- [[mekotio|Mekotio]] (malware) - malware bancário LATAM distribuído via instaladores maliciosos
## Referências
### Técnicas Relacionadas
- [[t1546-event-triggered-execution|T1546 - Event Triggered Execution]] - Técnica pai desta subtécnica
- [[t1546-006-lcloaddylib-addition|T1546.006 - LC_LOAD_DYLIB Addition]] - Frequentemente usada em conjunto em macOS
- [[t1543-004-launch-daemon|T1543.004 - Launch Daemon]] - Persistência instalada via scripts postinstall
- [[t1195-002-compromise-software-supply-chain|T1195.002 - Compromise Software Supply Chain]] - Frequentemente combinada em ataques de supply chain
- [[t1059-004-unix-shell|T1059 - Command and Scripting Interpreter]] - Scripts shell em postinst/postinstall
### Atores de Ameaça Relevantes
- [[g0032-lazarus-group|Lazarus Group]] - Uso extensivo de .pkg trojanizados em macOS (AppleJeus, DreamJob)
- [[g0046-fin7|FIN7]] - Distribuição de instaladores maliciosos em campanhas contra varejo e financeiro
### Campanhas Relevantes
- [[operation-dreamjob|Operation DreamJob]] - Lazarus Group distribui .pkg maliciosos via ofertas de emprego falsas
---
*Fonte: [MITRE ATT&CK - T1546.016](https://attack.mitre.org/techniques/T1546/016)*