Jak sprawdzić, która wersja SMB jest włączona na zdalnym hoście?

11

Na moim komputerze lokalnym działa system Windows 7, który obsługuje najnowszą wersję protokołu SMB (SMB 2.1). Mam także hosta zdalnego i nie wiem, jaki system operacyjny lub oprogramowanie obsługujące SMB jest zainstalowane na tym hoście; Wiem tylko, że zdalny host obsługuje niektóre wersje protokołu SMB.

Jak mogę dowiedzieć się z wiersza poleceń (lub programu PowerShell) mojego komputera z systemem Windows 7, która wersja SMB jest obsługiwana przez ten zdalny host?

Edycja: chociaż wspominam o systemie Windows 7 powyżej, jestem pewien, że to pytanie dotyczy wielu administratorów systemu / sieci lub personelu wsparcia pulpitu, dlatego zamieszczam pytanie tutaj zamiast na stronie superuser.com.

Kal
źródło
1
dobre pytanie nie ma świetnej odpowiedzi, której może być konieczne wąchanie pakietów, i tak można to zrobić z wiersza poleceń. Mam nadzieję, że jest lepszy sposób niż to.
Tony Roth,

Odpowiedzi:

3

Najprostszym sposobem jest instalacja WireShark i przechwytywanie pakietów, rozszyfruje je i wyświetli wersję protokołu. Mają wpis SMBv2 na swojej wiki , więc najnowsza wersja WireShark powinna go zdekodować podczas przechwytywania pakietów.

rmalayter
źródło
1
W takim przypadku użyłbym programu Netmon 3.4, jeśli nie chcesz go instalować, nie musisz po prostu uruchomić polecenia „netsh trace start capture = yes”, a następnie połączyć się z udziałem, a następnie uruchomić polecenie „netsh trace stop” Plik .cab jest czytelny dla netmon 3.4, który nie musi znajdować się na stacji roboczej / serwerze, na którym przechwytujesz.
Tony Roth,
3

W systemie Windows 8 i nowszym możesz użyć polecenia powerhsell, Get-SmbConnectionaby sprawdzić, która wersja SMB jest używana dla każdego połączenia.

jortiexx
źródło
Mimo że moje oryginalne pytanie dotyczy systemu Windows 7, wspaniale jest wiedzieć, że w systemie Windows 8 i nowszych jest łatwiej!
Kal
1

Istnieją tylko dwa możliwe sposoby określenia wersji SMB zdalnego hosta.

Pierwszym jest przechwycenie banera za pomocą telnetu. Nawet wtedy nie masz gwarancji, że coś przydatnego wróci. Mogę z powodzeniem połączyć się z jednym z moich serwerów SMB, ale nie otrzymuję żadnych przydatnych informacji na temat banerów.

Drugim jest pobranie odcisków palców systemu przez sieć za pomocą skanera bezpieczeństwa sieci. Będziesz musiał znaleźć dobrą myśl dotyczącą narzędzia, ponieważ nadal nie masz gwarancji sukcesu przy ustalaniu, która wersja SMB działa. Na przykład właśnie użyłem szybkiego skanowania za pomocą nmap w mojej sieci (wiem, że działa Microsoft SMB na kilku punktach końcowych) i nie otrzymuję żadnych istotnych informacji o tym, która wersja SMB jest uruchomiona.

Wesley
źródło
czy nmap wykrywa wersję cifs? nie używałem go od dłuższego czasu.
Tony Roth
1
@tonyroth Mogą to być dodatki Nmap Scripting Engine. Znam jedno sprawdzenie podatności na ataki - ale nie chcesz używać tego nie chcąc, ponieważ doprowadzi to do podłączenia serwera. =)
Wesley
1
Aby uzyskać szczegółowe informacje o demonie, musisz użyć nmap z flagami „-sV -p 139”. na przykład. Samba smbd 3.X (grupa robocza: XXXX)
Soviero 12.12. O
0

Oto, co robisz, aby pobrać wersję SMB:

  1. Otwórz program Powershell jako administrator. Kliknij ikonę prawym przyciskiem myszy i powiedz „otwórz jako administrator”.
  2. Przejdź do c: \ za pomocą „cd \”, a następnie „c:”
  3. Teraz uruchomisz 2 polecenia w ciągu 10 sekund od siebie, w przeciwnym razie system Windows zamknie porty jako nieużywane.

    3a. Uruchom „katalog \ NAZWA SERWERA \ C $”

    3b. Uruchom „Get-SmbConnection”, a kolumna „Dialekt” to wersja Twojego SMB.

  4. Sprawdź macierz tego łącza, aby upewnić się, że system operacyjny odpowiada poprawnej wersji systemu operacyjnego, w przeciwnym razie będziesz musiał zaktualizować swój 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-or-smb-3-02-używasz /

Matryca stosu SMB

Steve C.
źródło