# T1563.001 - SSH Hijacking
> **Técnica pai:** [[t1563-remote-service-session-hijacking|T1563 - Remote Service Session Hijacking]]
## Descrição
**T1563.001 - SSH Hijacking** é uma subtécnica de [[lateral-movement|Movimentação Lateral]] na qual adversários sequestram sessões SSH legítimas e já estabelecidas para se mover lateralmente em ambientes Linux e macOS - sem precisar criar novas conexões, sem autenticação adicional e, muitas vezes, sem deixar rastros nos logs de autenticação convencionais.
O SSH (Secure Shell) é o protocolo padrão de acesso remoto em sistemas Unix-like. Quando um usuário se autentica via **chave pública**, o agente SSH (`ssh-agent`) armazena a chave privada descriptografada em memória e a expõe via socket Unix (tipicamente em `/tmp/ssh-XXXXXXXX/agent.PPID`). O socket permite que outros processos solicitem operações criptográficas sem jámais ver a chave privada - e é exatamente este socket que um adversário com acesso root pode abusar.
A diferença fundamental em relação ao uso convencional do [[t1021-004-ssh|T1021.004 - SSH]] é que esta técnica **não cria uma nova sessão autenticada**. Em vez disso, injeta comandos em uma sessão existente ou redireciona o socket do agente para uma sessão controlada pelo atacante - tornando a atividade invisível para sistemas que monitoram apenas novas autenticações SSH.
### Contexto Brasil e LATAM
Em ambientes de nuvem e infraestrutura como código (IaC), que crescem aceleradamente no Brasil, o SSH Hijacking representa risco elevado. Times de DevOps de grandes bancos, fintechs e provedores de telecomúnicações brasileiros operam com múltiplas sessões SSH abertas simultaneamente para servidores de produção em AWS, Azure e GCP. Um atacante que compromete um bastion host - o ponto central de acesso SSH - pode sequestrar dezenas de sessões ativas de administradores privilegiados.
O malware [[s1220-medusa|MEDUSA]] utiliza esta técnica entre seus vetores de movimentação lateral. Grupos de [[ransomware]] operando no Brasil têm demonstrado conhecimento de ambientes Linux/cloud, tornando esta técnica uma preocupação crescente para operações de segurança no [[financial|setor financeiro]] e de [[telecommunications|telecomúnicações]].
---
## Attack Flow
```mermaid
graph TB
A([Adversário<br/>com root]) --> B[Localiza sockets<br/>SSH-agent ativos<br/>/tmp/ssh-*/agent.*]
B --> C{{"T1563.001<br/>SSH Hijacking"}}:::highlight
C --> D[Exporta SSH_AUTH_SOCK<br/>para o socket da vítima]
D --> E[ssh -A host-destino<br/>sem nova autenticação]
C --> F[Injeção direta<br/>no pty via /proc/PID/fd]
F --> G[Execução de comandos<br/>na sessão da vítima]
E --> H[Lateral Movement<br/>para hosts confiáveis]
G --> H
classDef highlight fill:#e74c3c,color:#fff
```
---
## Como Funciona
**Passo 1 - Identificação de sessões e sockets ativos**
Com acesso root no host comprometido, o adversário enumera processos SSH ativos e localiza os sockets do agente. Comandos típicos:
```bash
# Listar processos SSH ativos
ps aux | grep ssh
# Encontrar sockets do ssh-agent
find /tmp -name "agent.*" 2>/dev/null
# Via /proc - listar variáveis de ambiente de processos SSH
for pid in $(pgrep -x sshd); do
cat /proc/$pid/environ 2>/dev/null | tr '\0' '\n' | grep SSH_AUTH_SOCK
done
```
**Passo 2 - Sequestro do socket SSH-agent**
O adversário redireciona a variável `SSH_AUTH_SOCK` para o socket da sessão legítima do usuário-alvo. Isso permite usar as chaves privadas carregadas na memória do agente da vítima sem jámais extraí-las:
```bash
# Apontar para o socket do agente da vítima
export SSH_AUTH_SOCK=/tmp/ssh-XYZABC/agent.1234
# Listar chaves disponíveis no agente sequestrado
ssh-add -l
# Conectar a hosts confiáveis usando as chaves da vítima
ssh -A
[email protected]
```
**Passo 3 - Movimentação lateral sem rastros de autenticação**
Como a conexão utiliza uma sessão ou agente já autenticado, os logs de destino registram apenas uma conexão SSH de um host confiável (o bastion ou o host do administrador legítimo) - sem nova autenticação, sem novo par de chaves. O adversário pode executar comandos, transferir arquivos e estabelecer persistência nos hosts de destino, tudo aparentando ser tráfego legítimo do administrador.
---
## Detecção
### Event IDs / Artefatos de Log (Linux)
| Fonte | Artefato | Indicador de Comprometimento |
|-------|----------|------------------------------|
| `/var/log/auth.log` | `Accepted publickey` | Autenticações SSH de origem inesperada ou fora do horário padrão |
| `/var/log/secure` | `session opened` | Sessões abertas para hosts internos a partir de bastion em horário anômalo |
| `auditd` | `syscall=connect` | Chamadas de sistema `connect()` originadas de processo com `SSH_AUTH_SOCK` externo |
| `auditd` | `syscall=open` / `path=/tmp/ssh-*` | Abertura de sockets de agente SSH por processo diferente do dono do socket |
| Shell history | `.bash_history`, `.zsh_history` | Comandos `ssh-add -l`, `export SSH_AUTH_SOCK=` executados por root |
| `ps aux` / `/proc` | `sshd: [priv]` | Processos SSH privilegiados com variáveis de ambiente suspeitas |
### Regra Sigma
```yaml
title: Acesso suspeito a socket SSH-agent por processo diferente do dono
id: 3a7f9c2e-1b4d-4e8a-b3c0-5f2d8e1a6c4b
status: experimental
description: >
Detecta tentativas de acesso a sockets do ssh-agent (/tmp/ssh-*/agent.*)
por processos cujo UID difere do proprietário do socket - indicativo de SSH Hijacking.
references:
- https://attack.mitre.org/techniques/T1563/001
author: RunkIntel
daté: 2026/03/24
tags:
- attack.lateral_movement
- attack.t1563.001
logsource:
product: linux
service: auditd
detection:
selection:
type: SYSCALL
syscall: connect
key: ssh_agent_access
filter_owner:
# Filtrar acessos do próprio dono do socket
auid: same_as_socket_uid
socket_path:
name|contains: '/tmp/ssh-'
condition: selection and socket_path and not filter_owner
falsepositives:
- Ferramentas de gestão de sessões SSH legítimas (tmux, screen com SSH agent forwarding)
- Scripts de automação com agent forwarding explicitamente configurado
level: high
```
> [!warning] Atenção para ambientes cloud no Brasil
> Em bastion hosts da AWS, GCP ou Azure utilizados por times brasileiros, habilite **auditd** com regras para monitorar acesso ao diretório `/tmp/ssh-*`. Muitas organizações monitoram apenas logs de autenticação (`auth.log`) e ficam cegos a este tipo de movimentação lateral. O Amazon GuardDuty e o Microsoft Defender for Cloud possuem detectores específicos para comportamentos SSH anômalos em instâncias Linux.
---
## Mitigação
| Controle | Mitigação MITRE | Implementação para Organizações Brasileiras |
|----------|----------------|---------------------------------------------|
| Restringir permissões do socket | [[m1022-restrict-file-and-directory-permissions\|M1022]] | Garantir que `/tmp/ssh-*/agent.*` tenha permissão `600` e pertença exclusivamente ao usuário da sessão; implementar via PAM ou script de inicialização de sessão |
| Desabilitar agent forwarding | [[m1042-disable-or-remove-feature-or-program\|M1042]] | Em `sshd_config`: `AllowAgentForwarding no` - desabilitar globalmente e permitir apenas onde estritamente necessário; em bastion hosts, nunca habilitar forwarding para hosts de produção |
| Política de rotação de chaves | [[m1027-password-policies\|M1027]] | Rotacionar chaves SSH regularmente (máx. 90 dias); usar chaves FIDO2/hardware (YubiKey) em contas privilegiadas - padrão recomendado pelo BACEN para ambientes financeiros |
| Gestão de contas privilegiadas | [[m1026-privileged-account-management\|M1026]] | Implementar PAM (Privileged Access Management) como CyberArk, Delinea ou HashiCorp Vault para gerenciar sessões SSH privilegiadas; gravar sessões para auditoria; usar acesso just-in-time |
| Monitoramento de auditd | Detecção | Configurar regras auditd para alertar acesso a `/tmp/ssh-*` por processos root; integrar com SIEM (Splunk, Elastic Security) |
---
## Threat Actors e Contexto
### [[s1220-medusa|MEDUSA]] (Ransomware Group)
O grupo operador do ransomware [[s1220-medusa|MEDUSA]] utiliza SSH Hijacking como técnica de movimentação lateral em ambientes Linux corporativos. O grupo tem histórico de ataques a infraestruturas críticas e organizações do [[financial|setor financeiro]] e educação - setores com presença significativa no Brasil.
> [!note] Relação com outras técnicas
> T1563.001 é frequentemente encadeada com:
> - [[t1078-valid-accounts|T1078 - Valid Accounts]] - comprometer credenciais iniciais para acesso ao primeiro host
> - [[t1021-004-ssh|T1021.004 - SSH]] - uso convencional de SSH para acesso inicial antes do hijacking
> - [[t1552-unsecured-credentials|T1552 - Unsecured Credentials]] - buscar chaves SSH privadas armazenadas em disco (`~/.ssh/id_rsa`)
> - [[t1087-account-discovery|T1087 - Account Discovery]] - enumerar usuários com sessões SSH ativas antes de selecionar alvo
---
## Software Associado
| Malware | Tipo | Uso da Técnica |
|---------|------|----------------|
| [[s1220-medusa\|MEDUSA]] | Ransomware Linux | Movimento lateral em ambientes corporativos Linux via sequestro de agente SSH |
---
*Fonte: [MITRE ATT&CK - T1563.001](https://attack.mitre.org/techniques/T1563/001)*