# T1003.007 - Proc Filesystem
> [!danger] Técnica de Credential Access - Linux
> **Tática:** Credential Access | **Plataforma:** Linux | **MITRE ID:** T1003.007
> Adversários acessam o pseudo-sistema de arquivos `/proc` para extrair credenciais da memória de processos em execução, incluindo senhas em texto claro, hashes e tokens de autenticação - sem necessidade de ferramentas externas além das nativas do sistema.
## Descrição
A técnica **T1003.007 - Proc Filesystem** descreve como adversários exploram o sistema de arquivos virtual `/proc` do Linux para realizar **OS Credential Dumping** - a extração de credenciais diretamente da memória de processos em execução.
O `/proc` é um **pseudo-sistema de arquivos** (não existe fisicamente em disco) que expõe a interface entre o espaço de usuário e o kernel do Linux. Para cada processo em execução no sistema, o kernel cria um diretório `/proc/<PID>/` contendo informações detalhadas sobre aquele processo, incluindo seus mapeamentos de memória virtual.
Os dois arquivos mais críticos para extração de credenciais são:
- **`/proc/<PID>/maps`** - Contém o mapa de espaço de endereçamento virtual do processo, listando cada região de memória com endereços de início e fim, permissões (leitura/escrita/execução) e o arquivo mapeado. Adversários usam este arquivo para identificar regiões de memória legíveis e, potencialmente, quais contêm dados sensíveis.
- **`/proc/<PID>/mem`** - Expõe o espaço de endereçamento virtual completo do processo para fins de depuração. Com as permissões adequadas, qualquer processo com capacidade de `ptrace` pode ler e escrever neste arquivo diretamente. Processos executando como root ou com `CAP_SYS_PTRACE` podem ler a memória de qualquer processo do sistema.
**Por que credenciais ficam na memória?** Múltiplos cenários comuns resultam em credenciais armazenadas em memória de processo:
1. **Processos SSH/PAM:** Ao autenticar um usuário, o processo `sshd` mantém brevemente a senha em texto claro na memória antes do hash.
2. **Navegadores web:** Firefox, Chrome e outros mantêm credenciais de sites em cache na memória para autopreenchimento.
3. **Aplicações web (Java, Python, PHP):** Conexões com bancos de dados frequentemente armazenam strings de conexão (usuário + senha) na memória heap da aplicação.
4. **sudo e su:** O processo de elevação de privilégios mantém brevemente a senha em memória.
5. **Clientes de e-mail e serviços cloud:** Tokens OAuth e senhas de serviços ficam em memória enquanto a aplicação está ativa.
Esta técnica é particularmente poderosa em servidores Linux de produção onde múltiplos serviços críticos estão em execução simultânea, cada um potencialmente contendo credenciais valiosas para movimentação lateral [[t1021-lateral-movement|T1021]].
Está diretamente relacionada com [[t1003-os-credential-dumping|T1003 - OS Credential Dumping]] (técnica pai) e é o equivalente Linux das técnicas de dumping de memória LSASS no Windows. Ferramentas como [[s0349-lazagne|LaZagne]], [[s0179-mimipenguin|MimiPenguin]] e [[s1109-pacemaker|PACEMAKER]] automatizam esta extração.
## Como Funciona
### Pré-requisito: Nível de Privilégio
O acesso à memória de outros processos via `/proc/<PID>/mem` requer uma das seguintes condições:
- **root (UID 0)** - pode ler a memória de qualquer processo
- **Mesmo usuário:** Um processo pode sempre ler sua própria memória
- **CAP_SYS_PTRACE:** Capacidade Linux que permite depuração e acesso à memória de outros processos
- **CAP_DAC_READ_SEARCH:** Permite bypass de restrições de leitura no filesystem
### Passo 1: Identificar Processos de Interesse
```bash
# Listar processos em execução e identificar targets (ex: sshd, apache, java)
ps aux | grep -E "sshd|apache|nginx|java|python|ruby"
# Ver todos os PIDs em /proc
ls /proc | grep -E '^[0-9]+