Enumeração SMB e Acesso de Convidado

LinuxBeginner
Pratique Agora

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.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 85%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

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 ping para verificar a conectividade de rede com um alvo.
  • Empregar nmap para escanear portas abertas e identificar o serviço SMB.
  • Usar smbclient -L para enumerar compartilhamentos de rede disponíveis anonimamente.
  • Conectar-se a um compartilhamento SMB aberto com smbclient usando uma null session.
  • Navegar por um compartilhamento remoto e baixar arquivos usando ls e get.

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.