Come faccio a sapere quale versione di SMB è abilitata su un host remoto?


11

Il mio computer locale esegue Windows 7, che supporta l'ultima versione rilasciata del protocollo SMB (SMB 2.1). Ho anche un host remoto e non so quale sistema operativo o software di supporto SMB sia installato su quell'host remoto; So solo che l'host remoto supporta alcune versioni del protocollo SMB.

Come posso scoprire, dal prompt dei comandi (o PowerShell) della mia macchina Windows 7, quale versione di SMB è supportata da quell'host remoto?

Modifica: anche se cito Windows 7 sopra, sono sicuro che questa domanda sia rilevante per molti amministratori di sistema / rete o personale di supporto desktop, quindi perché sto pubblicando la domanda qui invece che su superuser.com.


1
una buona domanda non ha una grande risposta, potrebbe essere necessario annusare i pacchetti, e sì, questo può essere fatto dalla riga di comando. Spero che ci sia un modo migliore di questo.
tony roth,

Risposte:


3

Il modo più semplice è installare WireShark e acquisire i pacchetti, li decodificherà e dovrebbe mostrarti una versione del protocollo. Hanno una voce SMBv2 sul loro wiki , quindi l'ultima versione di WireShark dovrebbe decodificarla durante l'acquisizione dei pacchetti.


1
In questo caso userò netmon 3.4, se non si desidera installarlo non è sufficiente eseguire "netsh trace start capture = yes" quindi connettersi alla condivisione ed eseguire "netsh trace stop" il risultante * Il file .cab è leggibile da netmon 3.4 che non deve trovarsi sulla workstation / server su cui si sta eseguendo l'acquisizione.
tony roth,

3

Su Windows 8 e versioni successive, è possibile utilizzare il comando powerhsell Get-SmbConnectionper verificare quale versione SMB viene utilizzata per connessione.


Anche se la mia domanda originale è per Windows 7, è bello sapere che le cose sono più facili su Windows 8 e versioni successive!
Kal

1

Esistono solo due modi possibili per determinare la versione SMB di un host remoto.

Il primo è afferrare il banner usando telnet. Anche allora, non sei garantito che tornerà qualcosa di utile. Posso collegarmi con successo a uno dei miei server SMB, ma non ottengo utili informazioni sui banner.

Il secondo è imprimere il sistema sulla rete tramite uno scanner di sicurezza della rete. Dovrai cercare un buon strumento pensato, perché non sei ancora garantito alcun successo nel determinare quale versione di SMB è in esecuzione. Ad esempio, ho appena usato una scansione rapida con nmap sulla mia rete (che so che esegue microsoft SMB su diversi endpoint) e non ottengo informazioni pertinenti su quale versione di SMB è in esecuzione.


nmap rileva la versione cifs? non lo uso da un po '.
tony roth,

1
@tonyroth Potrebbero esserci componenti aggiuntivi di Nmap Scripting Engine che lo fanno. Conosco un controllo di vulnerabilità smb, ma non vuoi usarlo volenti o nolenti in quanto rovinerà il server. =)
Wesley,

1
Devi usare nmap con i flag "-sV -p 139" per ottenere i dettagli del demone. per esempio. Samba smbd 3.X (gruppo di lavoro: XXXX)
Soviero

0

Ecco cosa fai per estrarre la versione SMB:

  1. Apri Powershell come amministratore. Fare clic destro sull'icona e dire "Apri come amministratore".
  2. Passare a c: \ con un "cd \" e quindi "c:"
  3. Ora, eseguirai 2 comandi entro 10 secondi l'uno dall'altro altrimenti Windows chiuderà le porte come inutilizzate.

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

    3b. Esegui "Get-SmbConnection" e la colonna "Dialetto" è la versione del tuo SMB.

  4. Controlla la matrice su questo link per assicurarti che il sistema operativo corrisponda alla versione del sistema operativo corretta o dovrai aggiornare il tuo 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-o-SMB-3-02-sei-tu-con /

Matrice stack SMB

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.