# T1574.006 - Sequestro do Vinculador Dinâmico
## Técnica Pai
Esta é uma sub-técnica de [[t1574-hijack-execution-flow|T1574 - Sequestro de Fluxo de Execução]].
## Descrição
Adversários podem executar payloads maliciosos ao manipular as variáveis de ambiente que o vinculador dinâmico (dynamic linker) utiliza para carregar bibliotecas compartilhadas em tempo de execução. No Linux, a variável `LD_PRELOAD` permite que um usuário especifique bibliotecas que serão carregadas antes de qualquer outra, com precedência sobre as bibliotecas do sistema. No macOS, a variável equivalente é `DYLD_INSERT_LIBRARIES`. Quando um processo é iniciado, o linker carrega essas bibliotecas antes das do sistema, o que significa que funções da biblioteca maliciosa substituem as funções legítimas de mesmo nome.
Essa técnica é particularmente eficaz porque é difícil de detectar: o código malicioso é injetado dentro de processos legítimos, não há um binário estranho em execução isolada, e o mecanismo utilizado (`LD_PRELOAD`) é uma funcionalidade legítima do sistema operacional, amplamente usada por desenvolvedores para debug e testes. Quando aplicada ao daemon `sshd`, por exemplo, a biblioteca maliciosa é herdada por todos os processos filhos, resultando em execução persistente sob processos legítimos de sistema.
Além da execução de código, o sequestro do vinculador dinâmico permite que adversários usem [[t1564-hide-artifacts|T1564 - Ocultação de Artefatos]]: ao sobrepor funções como `readdir()`, `fopen()` e `execve()`, a biblioteca maliciosa pode filtrar os resultados de comandos como `ls`, `ldd`, `ps` e `iptables`, tornando o malware invisível para o usuário e para ferramentas de segurança que dependem dessas chamadas de sistema. Famílias de malware como [[s0377-ebury|Ebury]] e [[s0394-hiddenwasp|HiddenWasp]] utilizam essa abordagem para criar rootkits em userspace.
**Contexto Brasil/LATAM:** O grupo [[g0106-rocke|Rocke]], com foco em cryptojacking de servidores Linux expostos na internet, utilizou `LD_PRELOAD` para ocultar processos de mineração de criptomoedas e manter persistência em servidores comprometidos. Ambientes de cloud Linux - amplamente utilizados por empresas brasileiras para hospedar APIs, bancos de dados e serviços web - são alvos frequentes desse tipo de ataque. A técnica é especialmente relevante para servidores com acesso SSH exposto ou com configurações padrão inseguras.
## Attack Flow
```mermaid
graph TB
A[Acesso Inicial<br/>SSH Brute-force / Exploração de Serviço] --> B[Execução<br/>Shell em Contexto de Usuário ou Root]
B --> C[Escrita de Biblioteca Maliciosa<br/>libevil.so em Diretório Gravável]
C --> D{{"T1574.006<br/>Sequestro do Vinculador Dinâmico<br/>LD_PRELOAD / DYLD_INSERT_LIBRARIES"}}
D --> E[Injeção em Processo Legítimo<br/>sshd, apache2, cron]
E --> F[Ocultação de Artefatos<br/>Hooking de readdir / execve]
F --> G[Persistência<br/>/etc/ld.so.preload ou .bashrc]
G --> H[Execução Contínua<br/>Cryptomining / Backdoor / Exfiltração]
```
## Como Funciona
1. **Preparação** - O adversário compila uma biblioteca compartilhada maliciosa (`.so` no Linux, `.dylib` no macOS) que implementa versões alternativas de funções do sistema (ex: `execve`, `read`, `write`, `getpid`). A biblioteca é transferida para o sistema comprometido, geralmente em `/tmp`, `/dev/shm` ou diretórios graváveis pelo usuário atual.
2. **Execução** - A variável `LD_PRELOAD` é configurada para apontar para a biblioteca maliciosa. Isso pode ser feito de forma temporária (apenas na sessão atual), ou persistente via `/etc/ld.so.preload` (que se aplica globalmente a todos os processos), `.bashrc` / `.profile` do usuário, ou scripts de inicialização de serviços. No macOS, `DYLD_INSERT_LIBRARIES` é configurado no ambiente de execução do processo alvo.
3. **Pós-execução** - A cada execução de um processo que carrega o linker dinâmico, a biblioteca maliciosa é injetada automaticamente. Funções sobrepostas podem interceptar credenciais, ocultar processos, coletar dados do processo legítimo ou estabelecer comunicação com infraestrutura de C2 - tudo isso dentro do espaço de memória de um processo confiável.
**Exemplo - verificação de infecção via LD_PRELOAD (perspectiva defensiva):**
```bash
# Verificar se /etc/ld.so.preload existe e tem conteúdo suspeito
cat /etc/ld.so.preload
# Checar variável LD_PRELOAD nos processos em execução
for pid in $(ls /proc | grep -E '^[0-9]+