Bagaimana cara mengetahui versi SMB yang diaktifkan pada host jarak jauh?

11

Mesin lokal saya menjalankan Windows 7, yang mendukung versi terbaru dari protokol SMB (SMB 2.1). Saya juga memiliki host jarak jauh, dan saya tidak tahu sistem operasi atau perangkat lunak pendukung SMB apa yang diinstal pada host jarak jauh itu; Saya hanya tahu bahwa host jarak jauh mendukung beberapa versi protokol SMB.

Bagaimana saya bisa mengetahui, dari prompt perintah (atau PowerShell) dari mesin Windows 7 saya, versi SMB apa yang didukung oleh host jarak jauh itu?

Sunting: walaupun saya menyebutkan Windows 7 di atas, saya yakin bahwa pertanyaan ini relevan dengan banyak administrator sistem / jaringan atau personel dukungan desktop, karenanya mengapa saya memposting pertanyaan di sini alih-alih di superuser.com.

Kal
sumber
1
pertanyaan yang bagus tidak memiliki jawaban yang bagus Anda mungkin perlu mengendus paket, dan ya ini bisa dilakukan dari baris perintah. Semoga ada cara yang lebih baik dari ini.
tony roth

Jawaban:

3

Cara termudah adalah menginstal WireShark dan menangkap paket, itu akan memecahkan kode mereka dan akan menunjukkan kepada Anda versi protokol. Mereka memiliki entri SMBv2 di wiki mereka , jadi versi terbaru WireShark harus mendekodekannya ke dalam paket capture.

rmalayter
sumber
1
Dalam hal ini saya akan menggunakan netmon 3.4, jika Anda tidak ingin menginstalnya Anda tidak harus menjalankan "netsh trace start capture = yes" lalu terhubung ke share kemudian jalankan "netsh trace stop" yang dihasilkan * File .cab dapat dibaca oleh netmon 3.4 yang tidak harus ada di workstation / server yang Anda gunakan.
tony roth
3

Pada Windows 8 dan lebih tinggi, Anda dapat menggunakan perintah powerhsell Get-SmbConnectionuntuk memeriksa versi SMB yang digunakan per koneksi.

jortiexx
sumber
Meskipun pertanyaan awal saya adalah untuk Windows 7, senang mengetahui bahwa semuanya lebih mudah pada Windows 8 dan yang lebih baru!
Kal
1

Hanya ada dua cara yang mungkin untuk menentukan versi SMB host jarak jauh.

Yang pertama adalah ambil banner menggunakan telnet. Meski begitu, Anda tidak dijamin bahwa apa pun yang digunakan akan kembali. Saya dapat berhasil terhubung ke salah satu server SMB saya, tetapi tidak mendapatkan informasi banner yang berguna.

Yang kedua adalah sidik jari sistem melalui jaringan menggunakan pemindai keamanan jaringan. Anda harus mencari pemikiran alat yang bagus, karena Anda masih belum dijamin berhasil dengan menentukan versi SMB yang sedang berjalan. Sebagai contoh, saya hanya menggunakan pemindaian cepat dengan nmap di jaringan saya (yang saya tahu menjalankan microsoft SMB pada beberapa titik akhir) dan saya tidak mendapatkan informasi yang berkaitan dengan versi SMB yang sedang dijalankan.

Wesley
sumber
apakah nmap mendeteksi versi cifs? belum menggunakannya untuk sementara waktu.
tony roth
1
@tonyroth Mungkin ada add-on Nmap Scripting Engine yang melakukannya. Saya tahu satu pemeriksaan kerentanan seseorang - tetapi Anda tidak ingin menggunakan yang mau tak mau karena akan menyemprot server. =)
Wesley
1
Anda harus menggunakan nmap dengan flag "-sV -p 139" untuk mendapatkan detail daemon. misalnya. Samba smbd 3.X (workgroup: XXXX)
Soviero
0

Inilah yang Anda lakukan untuk menarik versi SMB:

  1. Buka Powershell sebagai Administrator. Klik kanan pada ikon tersebut dan ucapkan "open as Administrator".
  2. Arahkan ke c: \ dengan "cd \" dan kemudian "c:"
  3. Sekarang, Anda akan menjalankan 2 perintah dalam 10 detik satu sama lain atau Windows menutup port sebagai tidak terpakai.

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

    3b. Jalankan "Get-SmbConnection" dan kolom "Dialect" Anda adalah versi SMB Anda.

  4. Periksa matriks pada tautan ini untuk memastikan OS sesuai dengan versi OS yang benar atau Anda harus meningkatkan SMB Anda.

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-are-you-using /

Matriks Stack SMB

Steve C
sumber