# T1548.001 - Setuid and Setgid > [!danger] Técnica de Escalação de Privilégios - Linux/macOS > Adversários abusam dos bits SUID/SGID em executáveis Linux e macOS para executar código no contexto de outro usuário - normalmente root - ignorando as restrições de privilégio do usuário atual. ## Descrição A técnica **T1548.001 - Setuid and Setgid** explora um mecanismo fundamental dos sistemas Unix/POSIX: os bits especiais de permissão **SUID** (Set User ID) e **SGID** (Set Group ID). Quando ativados em um executável, esses bits fazem com que o binário sejá executado com os privilégios do **proprietário do arquivo** (SUID) ou do **grupo proprietário** (SGID), independentemente de quem está executando o processo. Esse mecanismo existe por design para permitir que usuários comuns realizem tarefas que requerem privilégios elevados de forma controlada - como o comando `passwd`, que precisa modificar `/etc/shadow` (acessível apenas pelo root), mas deve ser executável por qualquer usuário. O problema surge quando adversários: 1. **Definem SUID/SGID em seus próprios malwares** para garantir execução privilegiada futura 2. **Identificam binários legítimos com SUID mal configurados** que permitem shell escape ou execução arbitrária 3. **Exploram binários SUID vulneráveis** para obter escalação de privilégios vertical Esta técnica está classificada pelo [[mitre-attack|MITRE ATT&CK]] como sub-técnica de [[t1548-abuse-elevation-control-mechanism|T1548 - Abuse Elevation Control Mechanism]] e é amplamente utilizada em ataques a servidores Linux - especialmente em ambientes de nuvem e containers onde configurações inadequadas são comuns. O bit SUID é representado por `s` no campo de permissão do proprietário ao listar com `ls -l` (ex: `-rwsr-xr-x`). O bit SGID aparece no campo do grupo (`-rwxr-sr-x`). ## Como Funciona ### Configuração Maliciosa (Adversário Define SUID) O adversário que já possui acesso ao sistema como usuário com permissão de escrita em um diretório pode: 1. Fazer upload ou compilar um binário malicioso 2. Definir o bit SUID no binário com `chmod 4755 payload` ou `chmod u+s payload` 3. O binário agora executa como root (ou como o owner do arquivo) quando invocado por qualquer usuário Isso é particularmente relevante em cenários de **escalação de privilégios pós-exploração** em servidores web comprometidos, onde o processo web roda como `www-data` mas o adversário pode colocar arquivos em diretórios com permissões incorretas. ### Abuso de Binários SUID Existentes (Living off the Land) Muitos sistemas Linux possuem binários com SUID que permitem escape para shell. Exemplos documentados: | Binário | Técnica de Escape | Resultado | |---------|------------------|-----------| | `find` | `find . -exec /bin/sh \; -quit` | Shell root | | `vim` | `:!/bin/sh` dentro do editor | Shell root | | `python` | `python -c 'import os; os.execl("/bin/sh", "sh", "-p")'` | Shell root | | `nmap` (versões antigas) | `nmap --interactive` → `!sh` | Shell root | | `bash` (com SUID) | `bash -p` | Shell root | | `cp` | Sobrescrever `/etc/passwd` | Escalar privilégio | O projeto **GTFOBins** (https://gtfobins.github.io/) documenta centenas de binários Unix com potencial de abuso em contexto SUID. ### Identificação de Alvos Os adversários usam o comando `find` para enumerar todos os binários SUID/SGID no sistema: ```bash # Encontrar binários com SUID find / -perm -4000 -type f 2>/dev/null # Encontrar binários com SGID find / -perm -2000 -type f 2>/dev/null # Encontrar ambos find / -perm /6000 -type f 2>/dev/null ``` Esta enumeração é frequentemente o primeiro passo após obter acesso inicial a um sistema Linux, especialmente em cenários de CTF e red team operations. ## Attack Flow ```mermaid graph TB A([Adversário - acesso inicial como usuário comum]) --> B{Vetor de escalação} B -->|Binário vulnerável existente| C[Enumera binários SUID/SGID] B -->|Upload de payload próprio| D[Transfere binário malicioso] C --> E[Identifica binário abusável] D --> F[Define bit SUID no payload] E --> G[Executa shell escape no binário] F --> H[Invoca payload como usuário alvo] G --> I[Obtém shell com privilégio elevado] H --> I I --> J{Objetivo pós-escalação} J --> K[Lê /etc/shadow - dump de credenciais] J --> L[Instala backdoor persistente] J --> M[Acesso a dados sensíveis do sistema] J --> N[Movimento lateral via SSH keys] K --> O([Comprometimento total do host]) L --> O M --> O N --> O style A fill:#c0392b,color:#fff style I fill:#e74c3c,color:#fff style O fill:#27ae60,color:#fff style F fill:#e67e22,color:#fff style G fill:#e67e22,color:#fff ``` ## Exemplos de Uso ### Keydnap (macOS) O malware [[keydnap|Keydnap]], documentado pela ESET em 2016, é um backdoor para macOS que abusa do mecanismo SUID para manter persistência e escalar privilégios. Após infectar o sistema via engenharia social (arquivo `.zip` com executável disfarçado), o Keydnap instala um componente com bit SUID definido para garantir execução persistente com privilégios elevados, independentemente do usuário logado. O Keydnap tem como alvos primários usuários de macOS com acesso a informações sensíveis - incluindo pesquisadores de segurança e jornalistas - tornando-o relevante para o contexto de espionagem em ambientes LATAM. ### Exaramel for Linux (Sandworm / APT28-adjacent) O [[s0401-exaramel-for-linux|Exaramel for Linux]] é um backdoor desenvolvido pelo grupo [[g0034-sandworm|Sandworm]] (atribuído à GRU russa), documentado em ataques a infraestrutura crítica ucraniana e europeia. O componente Linux utiliza técnicas SUID como parte do seu mecanismo de persistência em servidores Linux, garantindo que o processo de C2 possa ser reiniciado com privilégios mesmo após tentativas de remoção por usuários não-root. ### Cenários de Red Team / APT Genérico Em operações de red team e intrusões APT documentadas contra servidores Linux (Apache, Nginx, aplicações web), a sequência típica após comprometimento via [[t1190-exploit-public-facing-application|T1190]] (exploração de aplicação web) inclui: 1. Acesso como `www-data` ou `nobody` 2. Enumeração de binários SUID com `find` 3. Identificação de Python, Perl, ou `vim` com SUID definido incorretamente 4. Shell escape para root 5. Dump de `/etc/shadow` com `john` ou `hashcat` ### Contexto de Containers e Cloud Em ambientes Kubernetes e Docker mal configurados no Brasil (especialmente em provedores de nuvem como AWS e GCP com workloads em containers), a presença de binários SUID dentro de containers pode facilitar escape do container para o host, dependendo das capacidades concedidas ao container. ## Detecção ### Sigma Rule - Execução de Binário SUID / Criação com Permissões SUID ```yaml title: SUID/SGID Binary Execution or Permission Change id: b8c2d456-7890-12ef-abcd-234567890bcd status: experimental description: > Detecta execução de binários incomuns com bit SUID/SGID ou modificação de permissões para definir SUID/SGID em arquivos, indicando possível abuso de T1548.001. author: RunkIntel daté: 2026-03-24 references: - https://attack.mitre.org/techniques/T1548/001/ - https://gtfobins.github.io/ tags: - attack.privilege_escalation - attack.t1548.001 logsource: category: process_creation product: linux detection: selection_chmod_suid: CommandLine|contains: - 'chmod u+s' - 'chmod 4' - 'chmod 6' - 'chmod +s' selection_find_suid: CommandLine|contains: - '-perm -4000' - '-perm -2000' - '-perm /6000' - '-perm +4000' filter_system_paths: CommandLine|contains: - '/usr/bin/' - '/usr/sbin/' - '/bin/' - '/sbin/' condition: (selection_chmod_suid or selection_find_suid) and not filter_system_paths falsepositives: - Scripts legítimos de administração de sistema - Instalação de pacotes via gerenciador de pacotes (apt, yum) level: high fields: - CommandLine - User - ParentCommandLine - Image ``` ### Fontes de Dados Recomendadas | Fonte | O que monitorar | |-------|----------------| | Auditd (`auditctl`) | Chamadas de sistema `chmod`, `fchmod`, `setuid` | | Syslog / journald | Execução de processos com EUID diferente do UID real | | Falco (runtime security) | Regra `write_below_binary_dir` e `set_setuid_or_setgid_bit` | | Wazuh / OSSEC | Monitoramento de integridade de arquivos SUID | | EDR Linux | Correlação de anomalia de privilégio em tempo de execução | ### Regra Falco Recomendada ```yaml - rule: Setuid or Setgid bit set via chmod desc: Detecta configuração de bit SUID/SGID em arquivo condition: > syscall.type = chmod and evt.arg.mode contains "S_ISUID" or evt.arg.mode contains "S_ISGID" output: > SUID/SGID bit definido (user=%user.name command=%proc.cmdline file=%fd.name mode=%evt.arg.mode) priority: WARNING tags: [privilege_escalation, T1548.001] ``` ## Mitigação | ID | Mitigação | Descrição | Prioridade | |----|-----------|-----------|------------| | M1028 | [[m1028-operating-system-configuration\|M1028 - Operating System Configuration]] | Revisar e remover bits SUID/SGID desnecessários de binários | Alta | | - | Montagem com `nosuid` | Montar sistemas de arquivo com a opção `nosuid` onde possível (ex: `/tmp`, `/home`, partições de dados) | Alta | | - | Auditoria periódica | Executar `find / -perm /6000` regularmente e comparar com baseline aprovado | Média | | - | Confinamento por MAC | Usar SELinux, AppArmor ou seccomp para limitar o que processos SUID podem fazer | Alta | | - | Containers sem privilégio | Garantir que containers Docker/Kubernetes rodem sem `--privileged` e com `no-new-privileges` | Alta | | - | Princípio do menor privilégio | Evitar criar binários SUID customizados; usar `sudo` com escopo limitado no sudoers | Média | > [!tip] Hardening Rápido > Para eliminar binários SUID desnecessários de um sistema Linux, execute: > `find / -perm -4000 -o -perm -2000 2>/dev/null | xargs ls -la` > Compare o resultado com a lista de binários SUID esperados para a distribuição e remova os não autorizados com `chmod u-s`. ## Contexto Brasil/LATAM ### Infraestrutura Cloud e Servidores Web O Brasil é o maior mercado de cloud computing da América Latina, com milhares de servidores Linux expostos na Internet, muitos operados por PMEs sem equipes de segurança dedicadas. Configurações incorretas de SUID são extremamente comuns em servidores web Apache e Nginx onde administradores definem bits SUID em scripts customizados para evitar problemas de permissão - criando inadvertidamente vetores de escalação. ### Ataques a Infraestrutura Crítica Grupos como o [[g0034-sandworm|Sandworm]] e adversários patrocinados por estados que operam contra infraestrutura crítica latino-americana (energia, telecomúnicações, governo) utilizam técnicas SUID em combinação com exploits de aplicações web ([[t1190-exploit-public-facing-application|T1190]]) para obter root em servidores Linux. O setor de energia brasileiro, incluindo empresas como Petrobras e Eletrobras, é alvo recorrente documentado. ### Grupos de Ransomware Grupos de ransomware que operam no Brasil - como afiliados do [[lockbit|LockBit]] e [[blackcat|BlackCat]] - frequentemente têm componentes Linux direcionados a servidores ESXi e ambientes corporativos. O abuso de SUID faz parte do toolkit pós-exploração para escalação antes da implantação do ransomware. ### CTFs e Educação em Segurança O ecossistema de CTF brasileiro (HITB, PWNABLE.BR, Roadsec CTF) popularizou o conhecimento sobre escalação SUID entre profissionais de segurança locais. O entendimento defensivo desta técnica é parte essencial da formação de Blue Teams no Brasil. > [!info] Referência GTFOBins > O site [GTFOBins](https://gtfobins.github.io/) documenta técnicas de abuso SUID para dezenas de binários Unix comuns. É referência obrigatória tanto para atacantes quanto para defensores que constroem listas de binários SUID permitidos. ## Referências - [MITRE ATT&CK - T1548.001](https://attack.mitre.org/techniques/T1548/001/) - [GTFOBins - SUID binaries reference](https://gtfobins.github.io/) - [ESET - Keydnap Analysis](https://www.welivesecurity.com/2016/07/06/new-osxkeydnap-malware-hungry-credentials/) - [ESET - Exaramel Analysis](https://www.welivesecurity.com/2018/10/11/new-telebots-backdoor-linking-industroyer-notpetya/) - [[t1548-abuse-elevation-control-mechanism|T1548 - Abuse Elevation Control Mechanism]] (técnica pai) - [[t1083-file-and-directory-discovery|T1083 - File and Directory Discovery]] (enumeração de SUID) - [[t1222-002-linux-and-mac-file-and-directory-permissions-modification|T1222.002 - Linux and Mac File and Directory Permissions Modification]] - [[m1028-operating-system-configuration|M1028 - Operating System Configuration]] (mitigação) - [[keydnap|Keydnap]] (malware associado) - [[s0401-exaramel-for-linux|Exaramel for Linux]] (malware associado) - [[g0034-sandworm|Sandworm]] (ator associado)