# T1059.004 - Unix Shell
## Técnica Pai
Esta é uma sub-técnica de [[t1059-command-scripting-interpreter|T1059 - T1059 - Command and Scripting Interpreter]].
## Descrição
**T1059.004 - Unix Shell** é uma subtécnica de [[t1059-*|T1059 - Command and Scripting Interpreter]] na qual adversários abusam de shells Unix - bash, sh, zsh, ash, ksh - para executar comandos arbitrários, scripts e payloads em sistemas Linux, macOS, ESXi e dispositivos de rede. O shell Unix é a interface de controle nativa desses sistemas: ele pode gerenciar processos, manipular o sistema de arquivos, configurar rede, criar agendamentos e instalar software - em suma, tudo que um atacante precisa para estabelecer e manter um comprometimento.
Ao contrário de linguagens de scripting importadas como [[t1059-001-powershell|PowerShell]] ou [[t1059-006-python|Python]], o shell está presente por padrão em práticamente qualquer sistema Unix-like, sem necessidade de instalação adicional. Isso torna T1059.004 particularmente valioso para adversários que desejam operar com o mínimo de "ruído" e sem dependências externas - uma característica apreciada por grupos focados em persistência silenciosa como [[g1017-volt-typhoon|Volt Typhoon]] e [[g1047-velvet-ant|Velvet Ant]]. Scripts shell complexos podem encadear dezenas de operações (download, execução, limpeza de logs, criação de backdoor) em um único arquivo, reduzindo a necessidade de ferramentas adicionais.
Ambientes como servidores ESXi, appliances de rede e dispositivos IoT frequentemente expõem shells com privilégios elevados por padrão, e seu monitoramento é historicamente mais fraco do que em estações Windows. Grupos como [[g1048-unc3886|UNC3886]] exploram exatamente essa lacuna para manter acesso persistente em infraestrutura VMware sem serem detectados por soluções EDR tradicionais, que tipicamente não cobrem hipervisores.
**Contexto Brasil/LATAM:** A crescente adoção de infraestrutura Linux em nuvem no Brasil - AWS, Azure e GCP com instâncias Ubuntu/RHEL - amplia significativamente a superfície exposta ao T1059.004. Campanhas de cryptomining como as do [[g0139-teamtnt|TeamTNT]] e [[g0106-rocke|Rocke]] miram ativamente instâncias Linux mal configuradas na América Latina, utilizando scripts shell para instalar mineradores, criar backdoors via cron, e desabilitar agentes de segurança. O setor financeiro brasileiro, com grande base de servidores Linux em produção, é alvo recorrente de grupos como [[g0096-apt41|APT41]] que combinam exploração web com execução via shell para acesso persistente.
## Attack Flow
```mermaid
graph TB
A([Acesso Inicial<br/>SSH / Exploit Web]):::normal --> B([T1059.004<br/>Execução via<br/>Unix Shell]):::attack
B --> C([T1053.003<br/>Cron Job<br/>Persistência]):::normal
B --> D([T1105<br/>Download de<br/>Ferramentas]):::normal
D --> E([T1071<br/>C2 via<br/>Protocolo Padrão]):::normal
classDef normal fill:#2c3e50,color:#ecf0f1,stroke:#7f8c8d
classDef attack fill:#e74c3c,color:#fff,stroke:#c0392b
```
## Como Funciona
### 1. Preparação
O adversário obtém acesso a um shell - sejá por comprometimento de credenciais SSH (força bruta, credential stuffing, chaves privadas roubadas), exploração de uma aplicação web que retorna RCE, abuso de funcionalidades administrativas mal protegidas (painéis phpMyAdmin, Jenkins, cPanel), ou upgrade de um webshell para um shell interativo. Em ambientes de nuvem, credenciais IAM comprometidas podem ser usadas para criar instâncias novas ou acessar instâncias existentes via SSM Session Manager, contornando restrições de firewall. Grupos como [[g0143-aquatic-panda|Aquatic Panda]] e [[g1041-sea-turtle|Sea Turtle]] frequentemente chegam ao shell após exploração de serviços expostos como VPNs e servidores de e-mail.
### 2. Execução
Com acesso ao shell, o adversário executa uma sequência de comandos orientada ao objetivo. Padrões típicos incluem: reconhecimento (`id`, `whoami`, `uname -a`, `cat /etc/passwd`), exfiltração de credenciais (`cat ~/.ssh/id_rsa`, dump de variáveis de ambiente), download e execução de implants (`curl ... | bash` ou `wget -qO- ... | sh`), e estabelecimento de persistência via cron (`crontab -e`), serviços systemd, ou modificação de arquivos de inicialização do shell (`.bashrc`, `.profile`). [[s0599-kinsing|Kinsing]] e [[g0139-teamtnt|TeamTNT]] são exemplos de malware que utilizam exatamente esse padrão em campanhas de cryptomining massivas.
### 3. Pós-execução
Após instalar o implant ou obter as informações desejadas, o adversário cobre os rastros: limpa histórico de comandos (`history -c`, `unset HISTFILE`), remove logs em `/var/log/`, e pode instalar rootkits para ocultar processos e arquivos. Malwares como [[s0377-ebury|Ebury]] e [[s0641-kobalos|Kobalos]] instalam backdoors SSH que sobrevivem a reinicializações e permitem reacesso sem autenticação convencional. Em ambientes ESXi, [[s1184-boldmove|BOLDMOVE]] e [[s1224-castletap|CASTLETAP]] utilizam shell scripts para criar tarefas persistentes no hipervisor, um vetor que a maioria das soluções de segurança corporativa não monitora adequadamente.
## Detecção
> [!warning] Sinais de Alerta
> Execução de comandos como `curl | bash` ou `wget | sh` é um dos indicadores mais confiáveis de comprometimento em andamento - nenhum workflow legítimo deveria usar esse padrão em produção.
| Event ID / Fonte | Plataforma | Descrição |
|-----------------|-----------|-----------|
| **Auditd - execve** | Linux | Auditoria de chamada de sistema - registra todos os execve com argumentos completos |
| **Syslog auth.log** | Linux/macOS | Logins SSH, sudo, su - detectar logins de origens incomuns |
| **Sysmon for Linux - Event 1** | Linux | Process creaté com linha de comando completa |
| **ESXi shell.log** | VMware ESXi | Execução de comandos no shell ESXi - raramente legítimo em produção |
| **macOS - Unified Log** | macOS | Execução de shell scripts via launchd ou terminal |
**Sigma Rule - Pipe shell de download suspeito:**
```yaml
title: Suspicious Download and Execute via Unix Shell
id: 7f3a1c2e-9d4b-4f8a-b1e0-3c5d7f9a1b2e
status: stable
description: >
Detecta padrão de download e execução direta via pipe no shell Unix -
técnica clássica de T1059.004 para instalar malware sem gravar em disco.
logsource:
product: linux
category: process_creation
detection:
curl_pipe:
Image|endswith:
- '/bash'
- '/sh'
- '/ash'
- '/zsh'
CommandLine|contains:
- 'curl '
- 'wget '
CommandLine|contains:
- '| bash'
- '| sh'
- '|bash'
- '|sh'
base64_exec:
Image|endswith:
- '/bash'
- '/sh'
CommandLine|contains:
- 'echo '
- '| base64 -d'
- 'base64 --decode'
CommandLine|contains:
- '| bash'
- '| sh'
condition: curl_pipe or base64_exec
falsepositives:
- Scripts de bootstrap de infraestrutura como código (Ansible, cloud-init) em ambientes controlados
- Instaladores de ferramentas de desenvolvimento (nvm, pyenv, homebrew) em estações de desenvolvimento
level: high
tags:
- attack.execution
- attack.t1059.004
```
## Mitigação
| Controle | Ação Recomendada | Prioridade para Orgs Brasileiras |
|---------|-----------------|----------------------------------|
| **[[m1038-execution-prevention\|M1038 - Execution Prevention]]** | Restringir execução de shells interativos em servidores de produção - usar sudo com comandos específicos via sudoers | Alta - ambientes Linux frequentemente sem controle de execução |
| **Princípio do menor privilégio** | Usuários de aplicação não devem ter acesso a bash interativo; usar `chsh -s /sbin/nologin` para contas de serviço | Alta - configuração simples de alto impacto |
| **Auditoria de processos** | Instalar e configurar `auditd` com regras para execve - gravar argumentos completos de todos os comandos | Alta - gratuito, nativo e essencial para detecção forense |
| **Monitoramento de cron/systemd** | Alertar para novos cron jobs criados por usuários não administrativos ou modificações em `/etc/cron*` | Média - persistência via cron é padrão em campanhas de cryptomining |
| **Imutabilidade de infraestrutura** | Adotar modelo imutável em nuvem - instâncias recriadas a cada deploy, sem acesso SSH permanente | Média - ideal para ambientes cloud-native no Brasil |
| **Alertas de acesso SSH incomum** | SIEM alertar para logins SSH de IPs fora de baseline, horários incomuns ou países inesperados | Alta - primeira linha de defesa contra acesso inicial via SSH comprometido |
## Threat Actors
- [[g0143-aquatic-panda|Aquatic Panda]] - grupo chinês (Winnti) que utiliza shell Unix para executar scripts de reconhecimento e instalar implants customizados em servidores Linux comprometidos via exploração de vulnerabilidades em softwares empresariais.
- [[g0139-teamtnt|TeamTNT]] - grupo especializado em cryptomining e roubo de credenciais cloud; opera inteiramente via shell scripts bash que automatizam infecção, instalação de minerador XMRig, exfiltração de tokens AWS/Docker e propagação lateral.
- [[g0106-rocke|Rocke]] - grupo de cryptomining focado em instâncias Linux na nuvem; usa shell para desinstalar agentes de segurança conhecidos antes de instalar mineradores, tornando-se especialmente perigoso para ambientes cloud na LATAM.
- [[g1047-velvet-ant|Velvet Ant]] - grupo de espionagem que manteve acesso persistente a redes corporativas por anos via implants em servidores Linux e appliances de rede, utilizando shell para execução discreta e manutenção de backdoors.
- [[g1015-scattered-spider|Scattered Spider]] - grupo de engenharia social avançada que, após obter acesso a ambientes cloud via vishing, utiliza shell Unix para movimentação lateral em instâncias Linux e acesso a buckets de storage.
- [[g1017-volt-typhoon|Volt Typhoon]] - grupo chinês focado em infraestrutura crítica dos EUA; opera via shell em dispositivos de rede comprometidos, privilegiando LOLBins e ferramentas nativas para evitar detecção.
- [[g0096-apt41|APT41]] - grupo chinês de dupla motivação (espionagem + crime financeiro); usa shell Unix em servidores Linux comprometidos para instalar webshells e implants de acesso persistente em redes corporativas.
- [[g1048-unc3886|UNC3886]] - especializado em VMware ESXi; utiliza shell do hipervisor para instalar [[s1184-boldmove|BOLDMOVE]] e manter acesso persistente invisível para EDRs de VMs guest.
- [[g1041-sea-turtle|Sea Turtle]] - grupo focado em DNS hijacking; após comprometer registradores e provedores DNS, utiliza shell em sistemas Linux para modificar configurações de zona e manter persistência de longa duração.
## Software Associado
- [[s1184-boldmove|BOLDMOVE]] - backdoor Linux desenvolvido para ambientes VMware ESXi; usa shell para execução e criação de tarefas persistentes no hipervisor, notório por operar em camada não coberta por EDR convencional.
- [[s1224-castletap|CASTLETAP]] - implant Linux do grupo [[g1048-unc3886|UNC3886]]; usa shell para execução de comandos remotos e movimentação lateral em ambientes VMware.
- [[s0377-ebury|Ebury]] - backdoor SSH para Linux ativo há mais de uma década; instala-se como módulo do OpenSSH e usa shell para exfiltração de credenciais e execução de payloads adicionais.
- [[s1107-nkabuse|NKAbuse]] - malware multiplataforma que usa blockchain NKN para C2; utiliza shell Unix para execução de DDoS e comandos de controle remoto em sistemas Linux comprometidos.
- [[s0599-kinsing|Kinsing]] - malware de cryptomining focado em containers Docker e Kubernetes; usa shell scripts para escapar de containers, comprometer o host e instalar mineradores XMRig.
- [[s0641-kobalos|Kobalos]] - backdoor Linux sofisticado que compromete clusters HPC; usa shell para exfiltração de credenciais SSH e movimentação lateral silenciosa em redes de alta performance.
- [[s0587-penquin|Penquin]] - implant Linux do grupo Turla (APT29-linked); usa shell para execução de comandos via tráfego TCP/UDP capturado por sniffer passivo, tornando C2 extremamente difícil de detectar.
- [[s0482-bundlore|Bundlore]] - adware/malware para macOS; usa shell scripts para instalar extensões maliciosas de browser e modificar configurações do sistema sem interação do usuário.
---
*Fonte: [MITRE ATT&CK - T1059.004](https://attack.mitre.org/techniques/T1059/004)*