Como descubro qual versão do SMB está habilitada em um host remoto?

11

Minha máquina local está executando o Windows 7, que suporta a versão mais recente do protocolo SMB (SMB 2.1). Também tenho um host remoto e não sei qual sistema operacional ou software de suporte a SMB está instalado nesse host remoto; Eu só sei que o host remoto suporta alguma versão do protocolo SMB.

Como posso descobrir, no prompt de comando (ou PowerShell) da minha máquina com Windows 7, qual versão do SMB é suportada por esse host remoto?

Edit: embora eu mencione o Windows 7 acima, tenho certeza de que essa pergunta é relevante para muitos administradores de sistema / rede ou pessoal de suporte de desktop, por isso estou postando a pergunta aqui em vez de em superuser.com.

Kal
fonte
1
Se uma boa pergunta não tiver uma ótima resposta, talvez você precise farejar os pacotes e, sim, isso pode ser feito na linha de comando. Espero que haja uma maneira melhor do que isso.
tony roth

Respostas:

3

A maneira mais fácil é instalar o WireShark e capturar os pacotes, ele os decodificará e deverá mostrar uma versão do protocolo. Eles têm uma entrada SMBv2 em seu wiki , portanto, a versão mais recente do WireShark deve decodificá-lo na captura de pacotes.

rmalayter
fonte
1
Nesse caso, eu usaria o netmon 3.4, se você não quiser instalá-lo, não precisará executar "netsh trace start capture = yes", conectar-se ao compartilhamento e executar "netsh trace stop" o resultante * O arquivo .cab é legível pelo netmon 3.4, que não precisa estar na estação de trabalho / servidor em que você está capturando.
tony roth
3

No Windows 8 e superior, você pode usar o comando powerhsell Get-SmbConnectionpara verificar qual versão SMB é usada por conexão.

jortiexx
fonte
Embora minha pergunta original seja para o Windows 7, é ótimo saber que as coisas são mais fáceis no Windows 8 e posterior!
Kal
1

Existem apenas duas maneiras possíveis de determinar a versão SMB de um host remoto.

O primeiro é o banner agarrar usando telnet. Mesmo assim, você não tem garantia de que algo de uso voltará. Posso me conectar com êxito a um dos meus servidores SMB, mas não recebo nenhuma informação útil sobre o banner.

A segunda é a impressão digital do sistema na rede usando um scanner de segurança de rede. Você terá que procurar uma boa ferramenta, porque ainda não é garantido nenhum sucesso ao determinar qual versão do SMB está em execução. Por exemplo, eu apenas usei uma verificação rápida com o nmap na minha rede (que eu sei que está executando o microsoft SMB em vários pontos de extremidade) e não recebo informações pertinentes sobre a versão do SMB em execução.

Wesley
fonte
o nmap detecta a versão cifs? não usa há um tempo.
tony roth
1
@tonyroth Pode haver complementos do Nmap Scripting Engine que fazem isso. Conheço uma verificação de vulnerabilidade de smb - mas você não deseja usar esse willy nilly, pois ele administra o servidor. =)
Wesley
1
Você precisa usar o nmap com os sinalizadores "-sV -p 139" para obter detalhes do daemon. por exemplo. Samba smbd 3.X (grupo de trabalho: XXXX)
Soviero
0

Aqui está o que você faz para obter a versão SMB:

  1. Abra o PowerShell como administrador. Clique com o botão direito do mouse no ícone e diga "abrir como administrador".
  2. Navegue para c: \ com um "cd \" e depois "c:"
  3. Agora, você executará 2 comandos dentro de 10 segundos um do outro ou o Windows fechará as portas como não utilizadas.

    3a. Execute "dir \ SERVERNAME \ C $"

    3b Execute "Get-SmbConnection" e sua coluna "Dialect" é a versão do seu SMB.

  4. Verifique a matriz neste link para garantir que o sistema operacional corresponda à versão correta do sistema operacional ou você precisará atualizar seu SMB.

https://blogs.technet.microsoft.com/josebda/2013/10/02/windows-server-2012-r2-which-version-of-the-smb-protocol-smb-1-0-smb-2- 0-smb-2-1-smb-3-0-ou-smb-3-02-você-está-usando /

Matriz de pilha SMB

Steve C
fonte