Se existe um protocolo que todo pentester ama encontrar aberto, é o SMB (Server Message Block). Ele é o mecanismo de compartilhamento de arquivos e impressoras do Windows — onipresente em redes corporativas — e uma das superfícies de ataque mais ricas que existem. Um SMB mal configurado pode vazar usuários, compartilhamentos, políticas e até dados sensíveis sem exigir autenticação, e versões vulneráveis do protocolo deram origem a alguns dos ataques mais devastadores da história (o EternalBlue da aula EternalBlue: anatomia de um exploit devastador explora justamente o SMB). Esta aula ensina a enumerá-lo — extrair dele o máximo de informação — como base para tudo que vem depois. Pratique na Metasploitable e em VMs Windows do laboratório.
Onde o SMB roda e o que sinaliza
Primeiro, situe o SMB. Ele roda tipicamente nas portas 445 (SMB direto sobre TCP) e 139 (SMB sobre NetBIOS, mais antigo). Quando seu scan Nmap (aula Nmap básico: o canivete suíço do scanning) revela essas portas abertas, seu cérebro já deve traduzir: "compartilhamento de arquivos Windows — superfície rica, começar enumeração SMB". O protocolo permite que máquinas compartilhem recursos (pastas, impressoras) pela rede, e a enumeração busca descobrir o que está compartilhado, quem pode acessar, e quais detalhes do sistema o SMB revela.
A sessão nula que entrega tudo
O conceito que torna o SMB tão fértil para o atacante é a sessão nula (null session). Historicamente, versões antigas do Windows permitiam conexões SMB sem credenciais — uma "sessão anônima" — que ainda assim retornava uma quantidade surpreendente de informação: lista de usuários, grupos, compartilhamentos, políticas de senha. É uma configuração insegura por design que, quando presente, entrega o alvo de bandeja. Mesmo em sistemas modernos onde a sessão nula é restrita, o SMB frequentemente vaza informação valiosa, e enumerá-lo é sempre um passo obrigatório. As ferramentas de enumeração SMB são várias e complementares:
# scripts NSE do Nmap para SMB
nmap --script smb-os-discovery 192.168.1.10 # SO, nome, domínio via SMB
nmap --script smb-enum-shares,smb-enum-users 192.168.1.10 # compartilhamentos e usuários
# enum4linux — a ferramenta clássica de enumeração SMB/Samba
enum4linux -a 192.168.1.10 # -a = tudo (usuários, shares, grupos, políticas)
# smbclient — lista e acessa compartilhamentos
smbclient -L //192.168.1.10 -N # -L lista shares, -N tenta sem senha (sessão nula)
smbclient //192.168.1.10/nome_do_share -N # conecta a um share específico
# crackmapexec — o canivete moderno para SMB em rede
crackmapexec smb 192.168.1.10 # info básica do host
crackmapexec smb 192.168.1.0/24 # varre toda a faixa por SMB
As ferramentas de enumeração SMB
O enum4linux é o cavalo de batalha clássico: com -a, ele tenta todas as técnicas de enumeração de uma vez e despeja um relatório completo. O smbclient permite não só listar mas acessar compartilhamentos — e encontrar um share acessível sem autenticação, contendo arquivos internos, é um achado frequente e grave. O crackmapexec (ou seu sucessor NetExec) é a ferramenta moderna favorita, especialmente poderosa para operar sobre redes inteiras e, mais adiante, para ataques de autenticação.
O que a enumeração revela, item a item
O que a enumeração SMB tipicamente revela, e por que cada item importa: lista de usuários (insumo direto para força bruta e password spraying do Bloco VII — você deixa de adivinhar quem existe e passa a ter a lista); compartilhamentos (pastas que podem conter dados sensíveis, scripts com credenciais, backups); política de senhas (quantas tentativas antes de bloquear — crucial para calibrar ataques de senha sem travar contas); detalhes do SO e domínio (versão do Windows, se a máquina pertence a um domínio Active Directory, nome do domínio — ponte para o Bloco XI). Cada peça alimenta uma fase seguinte; a enumeração SMB é um dos pontos onde o reconhecimento técnico rende mais frutos.
SMBv1 e as vulnerabilidades conhecidas
Há também a dimensão de vulnerabilidades conhecidas do SMB, que fazem dele não só uma fonte de informação mas um vetor de exploração direto. Versões antigas do protocolo (especialmente o SMBv1) carregam falhas críticas. O nmap --script smb-vuln-ms17-010 verifica o EternalBlue; há scripts para outras. Encontrar SMBv1 habilitado é, por si só, um achado de relatório, porque esse protocolo obsoleto deveria estar desativado em qualquer ambiente moderno. A enumeração SMB frequentemente termina não só com um retrato do alvo, mas com um caminho de exploração identificado.
Endurecimento: desligar, restringir, fechar a 445
Do lado defensivo, o SMB é um caso de estudo de endurecimento. As contramedidas são claras e importantes: desabilitar o SMBv1 completamente (a Microsoft recomenda isso há anos); desabilitar sessões nulas e o acesso anônimo; restringir o SMB no perímetro — a porta 445 jamais deveria estar exposta à internet (muitos ataques massivos, incluindo o WannaCry, se espalharam por SMB exposto); aplicar permissões mínimas aos compartilhamentos (não deixar pastas sensíveis acessíveis amplamente); e manter os sistemas atualizados contra as vulnerabilidades conhecidas. A auditoria defensiva usa as mesmas ferramentas de enumeração para verificar a própria exposição SMB.
Fontes e leituras recomendadas
- enum4linux e enum4linux-ng — documentação e uso
- CrackMapExec/NetExec — wiki oficial (referência moderna de SMB)
- HackTricks — seção "Pentesting SMB" (445/139), muito completa
- Metasploitable e salas de SMB no TryHackMe — para praticar a enumeração
Exercícios
-
Em quais portas o SMB tipicamente roda, e o que sua presença num scan deve sinalizar imediatamente ao pentester?
✓ Resposta:Nas portas 445 (SMB direto sobre TCP) e 139 (SMB sobre NetBIOS). Sua presença sinaliza compartilhamento de arquivos Windows — uma superfície rica que deve levar imediatamente à enumeração SMB.
-
O que é uma "sessão nula" (null session) e por que ela torna o SMB tão fértil para o atacante?
✓ Resposta:É uma conexão SMB anônima, sem credenciais, permitida por configurações antigas/inseguras, que ainda assim retorna informações como usuários, grupos, compartilhamentos e políticas. Torna o SMB fértil porque entrega dados valiosos sem exigir autenticação.
-
Qual a diferença de propósito entre
enum4linux -aesmbclient -L?✓ Resposta:enum4linux -aexecuta todas as técnicas de enumeração de uma vez (usuários, grupos, shares, políticas), produzindo um relatório amplo;smbclient -Llista especificamente os compartilhamentos disponíveis e permite, em seguida, acessá-los. -
Cite três tipos de informação que a enumeração SMB revela e explique como cada um alimenta uma fase posterior do ataque.
✓ Resposta:Exemplos: lista de usuários (insumo para força bruta/password spraying); compartilhamentos (podem conter dados sensíveis, credenciais, backups); política de senhas (calibra ataques de senha sem bloquear contas); detalhes de SO/domínio (ponte para ataques de Active Directory). (Três quaisquer.)
-
Liste três contramedidas defensivas para o SMB e explique por que a porta 445 jamais deveria estar exposta à internet.
✓ Resposta:Contramedidas: desabilitar o SMBv1; desabilitar sessões nulas/acesso anônimo; restringir o SMB no perímetro; aplicar permissões mínimas aos shares; manter sistemas atualizados. A porta 445 não deve ficar exposta à internet porque ataques massivos (como o WannaCry) se propagaram exatamente por SMB exposto, explorando falhas do protocolo remotamente.