Làm cách nào để biết phiên bản SMB nào được bật trên máy chủ từ xa?


11

Máy cục bộ của tôi đang chạy Windows 7, hỗ trợ phiên bản mới nhất của giao thức SMB (SMB 2.1). Tôi cũng có một máy chủ từ xa và tôi không biết hệ điều hành hoặc phần mềm hỗ trợ SMB nào được cài đặt trên máy chủ từ xa đó; Tôi chỉ biết rằng máy chủ từ xa hỗ trợ một số phiên bản của giao thức SMB.

Làm cách nào tôi có thể tìm ra, từ dấu nhắc lệnh (hoặc PowerShell) của máy Windows 7, phiên bản SMB nào được máy chủ từ xa đó hỗ trợ?

Chỉnh sửa: mặc dù tôi đề cập đến Windows 7 ở trên, tôi chắc chắn rằng câu hỏi này có liên quan đến nhiều quản trị viên hệ thống / mạng hoặc nhân viên hỗ trợ máy tính để bàn, do đó tại sao tôi lại đăng câu hỏi ở đây thay vì tại superuser.com.


1
câu hỏi hay không có câu trả lời hay, bạn có thể cần phải đánh hơi các gói và có, điều này có thể được thực hiện từ dòng lệnh. Hy vọng có một cách tốt hơn sau đó này.
tony roth

Câu trả lời:


3

Cách dễ nhất là cài đặt WireShark và chụp các gói, nó sẽ giải mã chúng và sẽ hiển thị cho bạn một phiên bản giao thức. Họ có một mục SMBv2 trên wiki của họ , vì vậy phiên bản mới nhất của WireShark sẽ giải mã nó trong phần chụp gói.


1
Trong trường hợp này, tôi sẽ sử dụng netmon 3.4, nếu bạn không muốn cài đặt nó, bạn không cần phải chạy "Netsh dấu bắt đầu chụp = có", sau đó kết nối với chia sẻ rồi chạy "Netsh dấu vết dừng" kết quả * Tập tin .cab có thể đọc được bởi netmon 3.4 mà không phải trên máy trạm / máy chủ mà bạn đang chụp.
tony roth

3

Trên Windows 8 trở lên, bạn có thể sử dụng lệnh powerhsell Get-SmbConnectionđể kiểm tra phiên bản SMB nào được sử dụng cho mỗi kết nối.


Mặc dù câu hỏi ban đầu của tôi là dành cho Windows 7, thật tuyệt khi biết rằng mọi thứ dễ dàng hơn trên Windows 8 trở lên!
Kal

1

Chỉ có hai cách có thể hiểu được để xác định phiên bản SMB của máy chủ từ xa.

Đầu tiên là lấy banner bằng telnet. Ngay cả khi đó, bạn không được đảm bảo rằng mọi thứ sử dụng sẽ quay trở lại. Tôi có thể kết nối thành công với một trong các máy chủ SMB của mình, nhưng không nhận được bất kỳ thông tin biểu ngữ hữu ích nào.

Thứ hailấy dấu vân tay của hệ thống qua mạng bằng máy quét an ninh mạng. Bạn sẽ phải tìm kiếm một công cụ tốt, bởi vì bạn vẫn không đảm bảo bất kỳ thành công nào với việc xác định phiên bản SMB nào đang chạy. Ví dụ: tôi chỉ sử dụng quét nhanh với nmap trên mạng của mình (mà tôi biết đang chạy microsoft SMB trên một số điểm cuối) và tôi không nhận được thông tin thích hợp nào về phiên bản SMB mà nó đang chạy.


nmap có phát hiện phiên bản cifs không? đã không sử dụng nó trong một thời gian.
tony roth

1
@tonyroth Có thể có các addon Nmap Scripting Engine làm điều đó. Tôi biết về một kiểm tra lỗ hổng smb - nhưng bạn không muốn sử dụng willy nilly vì nó sẽ vòi máy chủ. =)
Wesley

1
Bạn phải sử dụng nmap với các cờ "-sV -p 139" để lấy chi tiết daemon. ví dụ. Samba smbd 3.X (nhóm làm việc: XXXX)
Soviero

0

Đây là những gì bạn làm để kéo phiên bản SMB:

  1. Mở Powershell với tư cách Quản trị viên. Nhấp chuột phải vào biểu tượng và nói "mở với tư cách Quản trị viên".
  2. Điều hướng đến c: \ bằng "cd \" và sau đó "c:"
  3. Bây giờ, bạn sẽ chạy 2 lệnh trong vòng 10 giây hoặc nếu không Windows sẽ đóng các cổng là không sử dụng.

    3a. Chạy "dir \ SERVERNAME \ C $"

    3b. Chạy "Get-SmbConnection" và cột "Phương ngữ" là phiên bản SMB của bạn.

  4. Kiểm tra ma trận trên liên kết này để đảm bảo HĐH tương ứng với phiên bản HĐH chính xác hoặc bạn sẽ cần nâng cấp SMB của mình.

https://bloss.technet.microsoft.com/josebda/2013/10/02/windows-server-2012-r2-which-version-of-the-smb-protatio-smb-1-0-smb-2- 0-smb-2-1-smb-3-0-hoặc-smb-3-02-bạn đang sử dụng /

Ma trận ngăn xếp SMB

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.