SMB

Habilitando SMB2

Caso queira habilitar o SMB2 no Linux, adicione a linha abaixo no final do arquivo /etc/samba/smb.conf:

min protocol = SMB2

Após isso, reinicie o serviço de SMB:

sudo service smbd restart

Utilizando Windows como Host Atacante

Net View

Listando todos os diretórios compartilhados

net view \\<ip>
net view \\<ip> /all

Listando arquivos de um determinado diretório

net view \\<ip>\<directory>

Net Use

Enumeração SMB com ataque a Sessão Nula / Anônima

Técnica também conhecida como red button.

EXPLICAÇÃO:

IPC$ = Processo oculto /u:"" = Usuário interno anônimo e as aspas duplas é senha nula

Caso recebe uma mensagem de sucesso, execute o comando abaixo para verificar se foi criado uma conexão com o host e caso esteja ok, volte a utilizar o net view para conectar com o host.

Criando unidade de rede

Agora já podemos criar uma unidade de rede. Escolha a letra de preferência, lembrando que o c já é reservado pelo Windows em si.

Desmontando uma unidade de rede

Excluindo uma máquina que estabeleceu uma sessão

Adivinhação de Senha Remota

Para que funcione, as portas 139, 445 (SMB) estejam abertas:

OBS: O asterísco (*) no lugar da senha faz o sistema remoto solicitar uma. Se o nome do login falhar, tente usar DOMINIO\conta.

Brute Force

Arquivo com senha separados por linha. Nesse exemplo, estamos utilizando o usuário administrator.

Arquivo com usuário e senha separados por espaço, sendo cada combinação em uma linha

Utilizando Linux como Host Atacante

Alterando Senha SMB Remotamente

smbpasswd

Enumeração com NMAP

Vulnerabilidades

Versões

Informações gerais sobre o host alvo

Compartilhamento (sem autenticação)

Compartilhamento (com autenticação)

Usuários (com autenticação)

Enumerando todas as pastas e drivers compartilhados, em seguida executando o comando ls em cada compartilhamento

Analisando se o alvo está com o SMB vulnerável.

Usuários logados atualmente

Domínios

Grupos de Usuários

Serviços

Estatísticas do Servidor

Metasploit

Meterpreter (necessário ter RCE)

Pegando a versão do SMB

OBS.: Os comandos abaixos talvez precise de usuário, senha e domínio, então utilize os parâmetros SMBUser, SMBPass e DOMAIN para ter um resultado mais preciso.

Detalhes como SO, Hostname e Domain

Brute Force / Verificação de Login

OBS.: Caso a senha esteja certa, será mostrado uma linha verde com sinal [+] no início, seguido da mensagem Domain is ignored for user <user>

Agora que já sabemos a senha, podemos enumerar as pastas compartilhadas. Para isso vamos usar o seguinte Auxiliary: use auxiliary/scanner/smb/smb_enumshares. Agora podemos enumerar os usuários, utilizando o seguinte Auxiliary: use auxiliary/scanner/smb/smb_lookupsid.

Diretórios que estão sendo compartilhados

Usuários do SMB

Retorna os usuários através de pesquisas de SID com força bruta. Este módulo pode enumerar contas locais e de domínio, definindo ACTION como LOCAL e DOMAIN

SMBVer

Retorna a versão do SMB

SMBMap

Verificando sessão nula

Listando diretórios e arquivos uma unidade. No exemplo abaixo utilizei o C$

Executando comando no SO alvo.

Listando arquivos, porém excluindo alguns diretórios. No exemplo abaixo os diretório IPC$ e SYSVOL não serão listados.

Acessando os diretórios compartilhados que podem ser acessados e verificando suas devidas permissões.

Realizando download de arquivo. Note que aqui estamos utilizando o C$ como diretório de destino.

Realizando upload de arquivo. Note que aqui estamos utilizando o C$ como diretório de destino.

Podemos encontrar arquivos XML em SYSVOL, que contém hashes de usuários. Então baixe todos os arquivo com determinada extensão.

Listando os drivers

SMBClient

Corrigindo Acessos do SMBCLIENT

Adicione a linha abaixo em /etc/samba/smb.conf para que o programas como smblcient e enum4linux trabalhem corretamente.

Após isso, reinicie o serviço com o seguinte comando:

Comandos Básicos

Caso esteja permitido acesso sem credenciais (Sessões Nulas), irá mostrar as informações, caso contrário, irá pedir autenticação.

Caso precise de usuário e senha, utilize os parâmentros -U e -P. Para não emitir senha, pode-se utilizar a opção -N (No Pass).

Porém, também podemos informar a senha já no comando dessa form, apesar de não ser o recomendado.

Caso esteja realizar o smbclient contra um host em um domínio, deverá informá-lo, como no exemplo abaixo:

Atente-se que, no exemplo acima estamos utilizando a opção -L para apenas listar os diretórios. Caso queira deixar o smbclient no modo interativo, retire o -L e utilize o / ao invés de \. Quando temos o aceso no modo interativo, podemos realizar o download dos arquivos, executando os comando abaixo:

Caso queira baixar somente 1 arquivo, utilize o comando:

Ou se preferir, podemos fazer isso é um única linha de comando:

Acessando SMB v1

As vezes não é possível acessar o host devido a versão do SMB, entao devemos alterar a versão de conexão do smbclient.

Podemos também executar comandos no SO, caso o usuário possua permissões.

SMBGet

Realizando download dos arquivos via SMB

Nullinux

Ferramenta para enumeração do SO, Domínio, diretórios compartilhados e usuários do SMB.

Upload de Arquivo

Reverse Shell com SMB

PsExec.py

Metasploit

OBS.: Caso não dê certo, altere o target.

SMBExec (Impacket)

Extraindo Políticas de Senhas

crackmapexec

Sempre bom utilizar o comando abaixo e verificar o valor de Minimum password length para sabermos a quantidade mínima de caracteres que ase senhas pocssuem e Account Lockout Threshold para sabermos se o usuário corre o risco de ser bloqueado após algumas tentativas de senhas incorretas

polenum

crackmapexec

Nos exemplos, estamos utilizando o protocolo smb, porém o crackmapexec trabalha com os protocolos: http, mssql, smb, ssh ewinrm.

Atacando por Sessão Nula

Baixando Arquivos

Baixando todos os arquivos do servidor SMB para /tmp/cme_spider_plus/

Baixando os arquivos SMB de um determinado compartilhamento

Pass-The-Hash

Pegando os hashes

Autenticando com os hashes

Varrendo a rede por alvos com SMB ativos

Enumerando Usuários do AD

Descobrindo Compartilhamentos

Brute Force

Trabalhando com arquivos de múltiplos servidores

Insira um IP por linha no arquivo txt

OBS.: Caso apareça escrito (Pwn3d!) em amarelo, significa que o usuário tem permissão de execução nesse host. Geralmente aparece na própria máquina do usuário, essa flag irá aparecer.

Trabalhando com hosts em um Domínio

Executando comando no SO

Listando Módulos do crackmapexec

Isso é útil para ativarmos e desativarmos módulos (serviços) do SO alvo

Verificando opções de um determinado Módulo

Ativando um Módulo

WinExe

Caso queira deixar o terminal interativo, basta chamar o cmd.exe.

Hydra

Brute Force

Impacket (Python)

Enumerando usuários (SMB)

Sites

Last updated

Was this helpful?