# T1548.003 - Sudo and Sudo Caching ## Descrição **T1548.003 - Sudo and Sudo Caching** é uma subtécnica de [[Privilege Escalation]] que abusa do mecanismo `sudo` (superuser do) no Linux e macOS para executar comandos com privilégios elevados sem necessidade imediata de autenticação, explorando configurações inadequadas do arquivo `/etc/sudoers` ou aproveitando o cache de credenciais do sudo. O `sudo` foi desenvolvido como ferramenta de delegação de autoridade, permitindo que administradores de sistema concedam a usuários específicos a capacidade de executar comandos como root ou outro usuário, mantendo uma trilha de auditoria. Entretanto, configurações excessivamente permissivas e o mecanismo de cache de credenciais criam oportunidades para que adversários com acesso inicial limitado escalem seus privilégios sem interação adicional do usuário. O arquivo de configuração `/etc/sudoers` é o coração do mecanismo sudo: ele define quais usuários e grupos podem executar quais comandos, em quais máquinas e como quais usuários de destino. Uma entrada como `user1 ALL=(ALL) NOPASSWD: ALL` concede ao usuário1 capacidade irrestrita de executar qualquer comando como root sem senha - uma configuração que, embora conveniente para automação, representa risco de segurança severo. Adversários que comprometem uma conta com essa configuração obtêm essencialmente acesso root imediato. Mais sutilmente, entradas que autorizam binários como `vim`, `python` ou `find` podem ser exploradas indiretamente se o binário autorizado permitir execução de subprocessos - fenômeno amplamente documentado no projeto GTFOBins. O mecanismo de caching temporal do sudo adiciona uma segunda superfície de ataque. Por padrão, após autenticação bem-sucedida, o sudo mantém as credenciais em cache por 15 minutos (configurável via `timestamp_timeout`), criando um arquivo de timestamp em `/var/db/sudo` (macOS) ou `/run/sudo/ts/` (Linux). Se malware monitora esse timestamp e executa durante a jánela de válidade, pode invocar comandos sudo sem solicitar senha novamente. Adicionalmente, se a variável `tty_tickets` está desabilitada, o cache de credenciais se torna global entre todos os terminais do usuário, amplificando o vetor de ataque. ## Como Funciona A exploração desta técnica pode ocorrer através de múltiplos vetores distintos: **Abuso de entradas NOPASSWD:** A condição mais direta ocorre quando `/etc/sudoers` contém entradas com `NOPASSWD` para o usuário comprometido ou para um grupo do qual o usuário é membro. Adversários verificam configurações disponíveis executando `sudo -l` (listar permissões sudo do usuário atual) e identificam comandos que podem ser executados sem senha. Mesmo entradas aparentemente restritas - como `NOPASSWD: /usr/bin/find` - podem ser exploradas via flags de execução de comandos. **Exploração de GTFOBins:** O projeto GTFOBins cataloga binários Unix que podem ser usados para escapar de ambientes restritos e elevar privilégios quando autorizados via sudo. Binários como `vim`, `less`, `awk`, `python`, `perl`, `git`, `man` e dezenas de outros podem ser usados para obter shell root se estiverem listados no sudoers sem restrições adequadas. **Timestamp hijacking (cache exploit):** Adversários monitoram o arquivo de timestamp do sudo para detectar quando o usuário autenticou recentemente. Durante a jánela de cache válida (tipicamente 15 minutos), o adversário pode executar comandos sudo sem precisar de senha. Isso requer que o malware já estejá em execução no contexto do usuário - comum em cenários de acesso inicial via trojan ou comprometimento de conta. **Manipulação do sudoers via escrita privilegiada:** Se o adversário obteve qualquer nível de acesso de escrita ao arquivo `/etc/sudoers` (diretamente ou via arquivos em `/etc/sudoers.d/`), pode adicionar entradas que concedam a si mesmo privilégios sudo permanentes. Malware como [[s0154-cobalt-strike|Cobalt Strike]] tem sido observado utilizando sessões comprometidas para adicionar entradas maliciosas ao sudoers como mecanismo de persistência. **Desabilitação de tty_tickets:** Em macOS (pré-Sierra) e em configurações Linux com `tty_tickets` desabilitado, o cache de credenciais sudo é compartilhado entre todos os terminais do usuário. Malware documentado - incluindo variantes do [[s0281-dok|Dok]] para macOS - modificou a configuração de `tty_tickets` para expandir a jánela de abuso do cache, tornando-o global entre todos os terminais ativos do usuário. **Vulnerabilidades no próprio sudo (CVEs):** Vulnerabilidades críticas no binário sudo em si, como CVE-2021-3156 (Baron Samedit) - buffer overflow que afetou sudo anterior a versão 1.9.5p2 em todas as principais distribuições Linux - permitiram escalar de qualquer usuário para root independentemente das configurações do sudoers. Esse tipo de vulnerabilidade combina [[t1068-exploitation-privilege-escalation|T1068]] com T1548.003 na prática. ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>(conta de usuário limitada)"] --> B["Enumeração de Permissões<br/>sudo -l"] B --> C{"Tipo de<br/>Configuração?"} C -->|"NOPASSWD + GTFOBin"| D["Exploração Direta<br/>via Binário Autorizado"] C -->|"Cache Ativo"| E["Monitoramento do<br/>Timestamp /var/db/sudo"] C -->|"tty_tickets off"| F["Execução sudo em<br/>Qualquer Terminal"] C -->|"CVE no sudo"| G["Exploração de<br/>Vulnerabilidade T1068"] D --> H["Shell Root Obtido"] E --> H F --> H G --> H H --> I["Modificação do sudoers<br/>(persistência de privilégios)"] I --> J["Instalação de Backdoor<br/>com Privilégios Root"] J --> K["Movimento Lateral /<br/>Impacto Final"] ``` ## Exemplos de Uso **Cobalt Strike em ambientes Linux:** O framework [[s0154-cobalt-strike|Cobalt Strike]], frequentemente utilizado em intrusões patrocinadas por estados e por grupos de crime cibernético, inclui módulos de pós-exploração que executam enumeração automática de permissões sudo e exploram entradas NOPASSWD encontradas. Em ataques a servidores Linux corporativos - incluindo alvos no Brasil como servidores de e-commerce, plataformas de streaming e infraestrutura de nuvem - operadores de Cobalt Strike frequentemente utilizam essa técnica como parte da cadeia de escalada de privilégios antes de implementar persistência e iniciar movimentação lateral. **Proton e Dok no macOS:** Os malwares [[s0279-proton|Proton]] e [[s0281-dok|Dok]], desenvolvidos para macOS, implementam a técnica de desabilitação de `tty_tickets` para expandir a jánela de abuso do cache sudo. O Proton, um RAT macOS identificado em campanhas de espionagem contra alvos de alto perfil na indústria de tecnologia e entretenimento, demonstra o nível de sofisticação com que grupos ameaça abordam o mecanismo sudo em plataformas Apple. O Dok foi distribuído via campanhas de phishing direcionadas, combinando engenharia social com exploração de sudo para comprometimento persistente. **CVE-2021-3156 (Baron Samedit):** Esta vulnerabilidade crítica no sudo (CVSS 7.8) descoberta pela Qualys em janeiro de 2021 afetou todas as versões do sudo desde 1.8.2 (lançado em 2011), representando aproximadamente 10 anos de sistemas vulneráveis sem correção. O exploit foi incorporado rapidamente a ferramentas de pentesting e kits de exploração criminosos. No Brasil, dado o ciclo de patching frequentemente lento em ambientes de servidor Linux corporativos, sistemas vulneráveis permaneceram expostos por semanas ou meses após a divulgação pública. **Exploração via GTFOBins em ambientes corporativos:** Auditorias de segurança em empresas brasileiras frequentemente revelam configurações sudo inadequadas herdadas de práticas permissivas de administração de sistemas. Entradas adicionadas para facilitar scripts de automação de deploy ou tarefas operacionais recorrentes frequentemente criam vetores de escalada de privilégios triviais que passam despercebidos em revisões de segurança convencionais. ## Detecção ```yaml title: Sudo Privilege Escalation via GTFOBins status: experimental description: > Detecta execução de binários comuns do GTFOBins via sudo com argumentos suspeitos indicando tentativa de escapar para shell com privilégios root. logsource: category: process_creation product: linux detection: selection_sudo: Image: '/usr/bin/sudo' CommandLine|contains: - 'vim' - 'vi' - 'less' - 'python' - 'perl' - 'ruby' - 'awk' - 'find' - 'git' selection_shell_escape: CommandLine|contains: - '/bin/sh' - '/bin/bash' - 'execv' - 'exec /bin/sh' - '!/bin/sh' condition: selection_sudo and selection_shell_escape falsepositives: - Administradores executando shells via sudo legitimamente - Scripts de automação com execução sudo de interpreters level: high tags: - attack.privilege_escalation - attack.t1548.003 ``` ```yaml title: Sudoers File Modification status: stable description: > Detecta modificações no arquivo /etc/sudoers ou em arquivos dentro de /etc/sudoers.d/, indicando possível persistência de privilégios ou adição de entradas NOPASSWD maliciosas. logsource: category: file_event product: linux detection: selection: TargetFilename|startswith: - '/etc/sudoers' - '/etc/sudoers.d/' filter_visudo: Image: '/usr/sbin/visudo' condition: selection and not filter_visudo falsepositives: - Scripts de provisionamento legítimos (Ansible, Chef, Puppet) - Administradores editando sudoers diretamente level: high tags: - attack.privilege_escalation - attack.t1548.003 - attack.persistence ``` ```yaml title: Sudo Timestamp File Access - Potential Cache Abuse status: experimental description: > Detecta acesso ao diretório de timestamps do sudo por processos não relacionados ao próprio sudo, indicando possível monitoramento de cache para exploração da jánela de credenciais válidas. logsource: category: file_access product: linux detection: selection: TargetFilename|startswith: - '/run/sudo/ts/' - '/var/db/sudo/' filter_sudo: Image: '/usr/bin/sudo' condition: selection and not filter_sudo falsepositives: - Ferramentas de monitoramento de sistema level: medium tags: - attack.privilege_escalation - attack.t1548.003 ``` **Estrategias complementares de detecção:** - Auditar regularmente o conteúdo de `/etc/sudoers` e `/etc/sudoers.d/` via controle de configuração (Ansible, Chef) - Habilitar auditoria de comandos sudo via plugin de log (`Defaults log_output` em `/etc/sudoers`) - Correlacionar execuções sudo com usuários que normalmente não utilizam sudo no SIEM - Monitorar execuções de interpreters (Python, Perl, Ruby) via sudo em sistemas de produção - Integrar SIEM com logs `/var/log/auth.log` (Debian/Ubuntu) ou `/var/log/secure` (RHEL/CentOS) para correlação de eventos de autenticação sudo ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | [[m1022-restrict-file-and-directory-permissions\|M1022]] | Restrict File and Directory Permissions | Garantir que `/etc/sudoers` e `/etc/sudoers.d/` tenham permissões 440 e sejam de propriedade de root; usar `visudo` exclusivamente para edições com válidação de sintaxe | | [[m1028-operating-system-configuration\|M1028]] | Operating System Configuration | Habilitar `tty_tickets` (padrão no macOS Sierra+, verificar Linux); configurar `timestamp_timeout=0` para exigir senha a cada invocação do sudo em ambientes de alta segurança; usar `log_output` para auditoria completa de comandos | | [[m1026-privileged-account-management\|M1026]] | Privileged Account Management | Seguir princípio do menor privilégio: conceder acesso sudo apenas para comandos específicos necessários; evitar entradas `ALL=(ALL)` ou `NOPASSWD: ALL`; revisar periodicamente entradas do sudoers e remover privilégios desnecessários | | [[m1038-execution-prevention\|M1038]] | Execution Prevention | Restringir acesso sudo a interpreters de linguagem (Python, Perl) em servidores de produção; implementar listas de permissão para comandos sudo autorizados; bloquear acesso sudo a binários GTFOBins conhecidos | ## Contexto Brasil/LATAM O abuso de sudo e sudo caching é particularmente relevante no ecossistema de TI brasileiro por múltiplas razões estruturais. O Brasil possui uma das maiores concentrações de servidores Linux na América Latina - hospedando infraestrutura de e-commerce, fintechs, telecomúnicações e governo - e o gerenciamento inadequado de privilégios em sistemas Linux é um problema sistêmico identificado em auditorias recorrentes de segurança realizadas por empresas do setor. A prática comum de adicionar entradas `NOPASSWD` ao sudoers para facilitar scripts de automação, deployments e tarefas operacionais cria uma superfície de ataque pervasiva em ambientes corporativos. Em ambientes DevOps e em provedores de cloud nacionais, é frequente encontrar configurações herdadas onde desenvolvedores possuem acesso sudo irrestrito em servidores de produção - prática que, combinada com comprometimento de conta via [[t1566-phishing|phishing]] ou vazamento de credenciais em breaches de terceiros, resulta em escalada de privilégios trivial para grupos adversariais. Grupos de ransomware que operam ativamente contra alvos brasileiros - incluindo operadores afiliados ao [[lockbit|LockBit]], [[black-basta|Black Basta]] e grupos regionais emergentes - frequentemente encadeiam T1548.003 com técnicas de movimento lateral após comprometer o primeiro servidor Linux acessível. O acesso root obtido via sudo permite desabilitar backups automatizados, criptografar volumes NFS montados remotamente e propagar o ransomware para outros sistemas na rede corporativa. O CERT.br registra incidentes recorrentes nessa categoria, com agravante de que muitos operadores de infraestrutura crítica brasileira carecem de capacidade de detecção e resposta a incidentes especializada em ambientes Linux. Adicionalmente, a crescente adoção de contêineres Docker e Kubernetes em empresas brasileiras cria novos vetores relacionados a esta técnica: configurações incorretas onde o usuário possui acesso ao socket Docker via sudo permitem escalar para root no host via montagem de volumes do sistema de arquivos. Esse vetor específico - documentado no GTFOBins como `sudo docker run -v /:/mnt --rm -it alpine chroot /mnt sh` - é frequentemente negligenciado em revisões de segurança focadas em configurações tradicionais de sudo, mas amplamente explorado por adversários com familiaridade com ambientes containerizados modernos. ## Referências - [[s0154-cobalt-strike|Cobalt Strike]] - Framework utilizado em exploração de sudo em ambientes Linux - [[s0279-proton|Proton RAT]] - Malware macOS com técnicas de abuso de sudo caching - [[s0281-dok|Dok Malware]] - Abuso de tty_tickets no macOS para expansão de cache - [[t1548-004-elevated-execution-with-prompt|T1548.004 - Elevated Execution with Prompt]] - Técnica irmã para macOS via API AuthorizationExecuteWithPrivileges - [[m1022-restrict-file-and-directory-permissions|M1022 - Restrict File and Directory Permissions]] - [[m1026-privileged-account-management|M1026 - Privileged Account Management]] - [[m1028-operating-system-configuration|M1028 - Operating System Configuration]] - [[t1068-exploitation-privilege-escalation|T1068 - Exploitation for Privilege Escalation]] - CVEs críticos no sudo (Baron Samedit CVE-2021-3156) - [[t1566-phishing|T1566 - Phishing]] - Vetor de acesso inicial frequentemente combinado com esta técnica --- *Técnica pai: [[t1548-abuso-de-mecanismos-de-controle-de-elevação|T1548 - Abuse Elevation Control Mechanism]]* *Fonte: [MITRE ATT&CK - T1548.003](https://attack.mitre.org/techniques/T1548/003)*