# T1021.004 - SSH ## Técnica Pai Esta é uma sub-técnica de [[t1021-remote-services|T1021 - T1021 - Remote Services]]. ## Descrição **T1021.004 - SSH** é uma subtécnica de [[t1021-remote-services|T1021 - Remote Services]] que descreve o uso de contas válidas ([[t1078-valid-accounts|T1078]]) para autenticar em sistemas remotos via Secure Shell (SSH), o protocolo padrão de acesso remoto em ambientes Linux, macOS e ESXi. Após autenticação bem-sucedida, o adversário opera com os privilégios da conta comprometida, podendo executar comandos arbitrários, transferir arquivos, implantar malware e pivotar para outros sistemas na rede. SSH suporta dois métodos de autenticação principais: senha e par de chaves pública/privada. Adversários exploram ambos: ataques de força bruta e credential stuffing contra autenticação por senha, e roubo ou implantação de chaves SSH ([[t1098-004-ssh-authorized-keys|T1098.004 - SSH Authorized Keys]]) para autenticação persistente sem senha. Em ambientes VMware ESXi, o SSH pode ser habilitado via `vim-cmd hostsvc/enable_ssh` ou pelo vCenter, representando um vetor crítico especialmente relevante dado o crescente número de ransomwares que visam hipervisores ESXi para maximizar impacto. No Brasil e América Latina, esta técnica é extremamente prevalente dado o vasto parque de servidores Linux em provedores de internet (ISPs), e-commerce, agro-tech, fintechs e infraestrutura de nuvem. O grupo [[g0139-teamtnt|TeamTNT]] realizou campanhas massivas de cryptomining que comprometeram servidores Linux brasileiros via SSH com credenciais padrão ou fracas. O [[g0032-lazarus-group|Lazarus Group]] usa SSH para movimentação lateral em redes financeiras Linux, e grupos de ransomware como [[g1015-scattered-spider|Scattered Spider]] exploram SSH em ambientes ESXi para implantação de ransomware em hipervisores. > [!warning] Relevância Brasil/LATAM > O Brasil possui um dos maiores parques de servidores Linux da América Latina. ISPs regionais, provedores de hosting, operadoras de e-commerce e empresas de agro-tech frequentemente expõem SSH diretamente à internet com credenciais fracas. O CERT.br documenta regularmente campanhas de brute-force SSH contra prefixos de endereço IP brasileiros. Ataques de ransomware ESXi (grupos como Royal, RansomHub) comprometeram ambientes de virtualização de empresas brasileiras via SSH habilitado no hipervisor. --- ## Attack Flow ```mermaid graph TB A([Acesso Inicial<br/>Brute-force / Credenciais Roubadas]) --> B([Credenciais SSH Válidas<br/>T1078 / T1098.004]) B --> C([Autenticação SSH<br/>Porta 22 / Porta Customizada]) C --> T1021004([T1021.004<br/>SSH Lateral<br/>Movement]):::highlight T1021004 --> E([Execução Pós-Acesso<br/>Implante / Coleta / Pivô]) E --> F([Impacto<br/>Cryptomining / Ransomware / Exfiltração]) classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b,stroke-width:2px ``` --- ## Como Funciona **Passo 1 - Obtenção de credenciais SSH ou chaves válidas** O adversário obtém acesso SSH por três vetores principais: (a) brute-force e credential stuffing contra servidores com autenticação por senha habilitada - especialmente eficaz contra contas root ou de serviço com senhas fracas; (b) roubo de chaves privadas SSH armazenadas em sistemas já comprometidos (tipicamente em `~/.ssh/id_rsa` ou `~/.ssh/id_ed25519`); (c) implantação de chaves públicas no arquivo `~/.ssh/authorized_keys` do alvo após comprometimento inicial, garantindo acesso persistente sem senha. O [[g0032-lazarus-group|Lazarus Group]] frequentemente usa o método (b) para pivotar lateralmente a partir de um servidor de desenvolvimento comprometido para sistemas de produção. **Passo 2 - Conexão SSH e reconhecimento no sistema alvo** Com credenciais em mãos, o adversário conecta ao alvo via `ssh usuario@host` ou usando a chave privada (`ssh -i chave.pem usuario@host`). Ferramentas como [[s0154-cobalt-strike|Cobalt Strike]] (SOCKS proxy + proxychains), [[s1187-regeorg|reGeorg]] e [[s0363-empire|Empire]] automatizam o tunneling SSH para criar cadeias de pivôs. Em ambientes ESXi, o adversário habilita SSH no hipervisor e acessa o datastore para implantar VMs maliciosas ou executar comandos `esxcli` diretamente nos volumes de armazenamento. **Passo 3 - Execução de ações maliciosas e persistência** Após autenticação, o adversário executa sua missão: o [[g0139-teamtnt|TeamTNT]] implanta miners de criptomoeda ([[s0599-kinsing|Kinsing]]) e scripts de worm que se propagam automaticamente pela rede varrendo faixas de IP por SSH; o [[g0032-lazarus-group|Lazarus Group]] exfiltra dados financeiros; grupos de ransomware como [[g1015-scattered-spider|Scattered Spider]] e [[g1046-storm-1811|Storm-1811]] implantam ransomware nos datastores ESXi para criptografar VMs em massa. Persistência é garantida via crontab, serviços systemd ou adição de chave pública ao `authorized_keys`. --- ## Detecção ### Fontes de Eventos Recomendadas | Fonte | Evento / Indicador | Prioridade | |---|---|---| | `/var/log/auth.log` (Debian/Ubuntu) | Múltiplas tentativas de autenticação falhas seguidas de sucesso (brute-force bem-sucedido) | Crítica | | `/var/log/secure` (RHEL/CentOS) | Logon root via SSH de IP externo | Crítica | | auditd | `execve` pós-login SSH com comandos de reconhecimento (`id`, `whoami`, `uname`, `ifconfig`) | Alta | | SSH server logs | Login de usuário não interativo / conta de serviço via SSH | Alta | | Firewall / NetFlow | Conexões SSH originando de hosts internos inesperados (movimentação lateral interna) | Alta | | ESXi syslog | Habilitação do serviço SSH no hipervisor fora de jánela de manutenção | Crítica | ### Regra Sigma - Brute-force SSH Bem-sucedido ```yaml title: Brute-force SSH Bem-sucedido - Login Após Múltiplas Falhas id: t1021-004-ssh-brute-force-success status: stable description: > Detecta padrão de brute-force SSH bem-sucedido: múltiplos logins falhos do mesmo IP seguidos de autenticação bem-sucedida em jánela de 10 minutos. Indicativo de T1021.004 via credential stuffing. logsource: product: linux service: auth detection: failed_logins: keywords: - ‘Failed password for’ - ‘Invalid user’ successful_login: keywords: - ‘Accepted password for’ - ‘Accepted publickey for’ timeframe: 10m condition: failed_logins | count() by src_ip > 10 | then successful_login falsepositives: - Usuários esquecendo senha com múltiplas tentativas legítimas - Scripts de automação com credenciais incorretas temporariamente level: high tags: - attack.lateral_movement - attack.t1021.004 - attack.credential_access --- title: Implantação de Chave SSH Não Autorizada (T1098.004) id: t1021-004-ssh-authorized-keys-modification status: stable description: > Detecta modificação do arquivo authorized_keys, potencial indicador de implantação de backdoor SSH persistente (T1098.004 + T1021.004). logsource: product: linux category: file_event detection: selection: TargetFilename|endswith: ‘/.ssh/authorized_keys’ filter_legitimate: Image|endswith: - ‘/ssh-keygen’ - ‘/ansible’ condition: selection and not filter_legitimate falsepositives: - Gestão legítima de chaves SSH via Ansible, Puppet, Chef - Administradores adicionando chaves manualmente level: high tags: - attack.persistence - attack.lateral_movement - attack.t1098.004 - attack.t1021.004 ``` --- ## Mitigação | Controle | Descrição | Aplicabilidade Brasil/LATAM | |---|---|---| | Desabilitar autenticação por senha no SSH ([[m1042-disable-or-remove-feature-or-program\|M1042]]) | Configurar `PasswordAuthentication no` no `sshd_config`; exigir autenticação por chave pública | Medida mais impactante para reduzir brute-force; crítica para servidores expostos à internet | | MFA para SSH ([[m1032-multi-factor-authentication\|M1032]]) | Implementar autenticação de dois fatores via Google Authenticator (PAM) ou certificados SSH com válidade curta | Recomendado para ambientes com múltiplos administradores; adotado por bancos e fintechs brasileiros | | Gestão de contas de usuário ([[m1018-user-account-management\|M1018]]) | Desativar login SSH para root (`PermitRootLogin no`); usar contas individuais com `sudo`; remover contas de serviço sem uso | Padrão CIS Benchmarks para hardening Linux - aplicável a qualquer servidor Ubuntu/RHEL | | Restrição de acesso SSH por IP/rede | Usar `AllowUsers`, `AllowGroups` no `sshd_config` ou firewall (iptables/nftables) para limitar quais IPs podem conectar na porta 22 | Fundamental para servidores em cloud pública (AWS, Azure, GCP) - usar Security Groups e VPN | | Rotação e auditoria de chaves SSH | Manter inventário de todas as chaves autorizadas; revogar chaves de ex-funcionários; rotacionar chaves de acesso a sistemas críticos anualmente | Crítico para empresas com alta rotatividade de equipe de infra - implementar com HashiCorp Vault ou AWS Secrets Manager | | Monitoramento de authorized_keys | Usar auditd ou IDS para detectar modificações no arquivo `~/.ssh/authorized_keys` em tempo real | Detecta implantação de backdoors SSH persistentes - especialmente relevante para servidores de produção | | Desabilitar SSH no ESXi quando não necessário | Desligar o serviço SSH no hipervisor por padrão; habilitar apenas durante jánelas de manutenção com aprovação formal | Mitiga ransomware ESXi; recomendado para ambientes de virtualização de médias e grandes empresas brasileiras | --- ## Threat Actors e Software > [!danger] Principais Operadores desta Técnica ### [[g0032-lazarus-group|Lazarus Group]] APT norte-coreano com histórico extenso de operações financeiras contra bancos, exchanges de criptomoeda e fintechs globalmente. Usa SSH como vetor primário de movimentação lateral em ambientes Linux/macOS, frequentemente aproveitando chaves SSH roubadas de sistemas de desenvolvimento para alcançar servidores de produção. Responsável por ataques ao setor financeiro em LATAM, incluindo o roubo do Banco de Bangladesh via SWIFT. ### [[g0139-teamtnt|TeamTNT]] Grupo especializado em cryptomining e roubo de credenciais cloud, com campanhas massivas contra servidores Linux brasileiros. Propaga-se via SSH com credential stuffing usando listas de credenciais padrão (root/root, ubuntu/ubuntu, admin/admin). Ao comprometer um servidor, implanta o malware [[s0599-kinsing|Kinsing]] para mineração de Monero e scripts de worm que varrem subredes por novos alvos SSH. ### [[g1015-scattered-spider|Scattered Spider]] Grupo ativo em ataques de engenharia social e ransomware, com operações documentadas contra infraestrutura ESXi. Usa SSH para acessar hipervisores VMware e implantar ransomware diretamente nos datastores, criptografando VMs em massa para maximizar impacto em empresas com ambientes de virtualização centralizados. ### [[g1046-storm-1811|Storm-1811]] Afiliado de ransomware RaaS com operações recentes. Combina [[t1078-valid-accounts|contas válidas]] com SSH para movimentação lateral em ambientes híbridos Linux/Windows, frequentemente aproveitando credenciais de jump servers ou bastion hosts comprometidos. ### [[g0046-fin7|FIN7]] Grupo criminoso financeiramente motivado com operações contra varejo, restaurantes e setor financeiro. Usa SSH como parte de um toolkit de movimentação lateral em ambientes Linux, frequentemente em combinação com [[s0154-cobalt-strike|Cobalt Strike]] para gerenciar implantes em redes corporativas mistas. ### [[g0117-fox-kitten|Fox Kitten]] APT iraniano especializado em exploração de VPNs e acesso remoto. Após comprometer dispositivos de borda, usa SSH para movimentação lateral na rede interna, especialmente em ambientes com servidores Linux de administração de rede. ### Software Associado | Software | Tipo | Uso em T1021.004 | |---|---|---| | [[s0154-cobalt-strike\|Cobalt Strike]] | Framework C2 | SOCKS proxy + proxychains para pivoting via SSH | | [[s0363-empire\|Empire]] | Framework C2 | Módulo SSH para movimentação lateral em Linux/macOS | | [[s1187-regeorg\|reGeorg]] | Ferramenta de pivoting | Tunneling HTTP/HTTPS para criar proxy SOCKS via SSH | | [[s0599-kinsing\|Kinsing]] | Malware cryptominer | Propagação worm via SSH com credential stuffing | --- *Fonte: [MITRE ATT&CK - T1021.004](https://attack.mitre.org/techniques/T1021/004)*