SMB - Server Message Block
Last updated
Last updated
Giao thức giao tiếp máy chủ - máy khách (server - client) được sử dụng để chia sẻ quyền truy cập vào các tệp, máy in, cổng nối tiếp và các tài nguyên khác trên mạng. Máy chủ cung cấp hệ thống tệp và các tài nguyên khác (máy in, đường ống có tên, API) cho máy khác trên mạng. Máy khách có thể có ổ cứng riêng, nhưng họ cũng muốn truy cập vào hệ thống tệp và máy in được chia sẻ trên máy chủ. Giao thức SMB được biết đến như một giao thức request - response, nghĩa là nó truyền nhiều thông điệp giữa máy khách và máy chủ để thiết lập kết nối. Máy khác kết nối với máy chủ bằng TCP/IP (thực tế là NetBIOS qua TCP/IP như được chỉ định trong RFC1001 và RFC1002), NetBEUI hoặc IPX/SPX.
Shares, đại diện cho các phần tùy ý của local file system, có thể được cung cấp bởi SMB server,làm cho hệ thống phân cấp có thể nhìn thấy được đối với máy khách, độc lập một phần với cấu trúc thực tế của máy chủ. Access Control Lists (ACLs), xác định quyền truy cập , cho phép kiểm soát chi tiết các quyền của người dùng, bao gồm các thuộc tính như execute, read, và full access. Các quyền này có thể được chỉ định cho từng người dùng hoặc nhóm, dựa trên shares và khác biệt với các quyền cục bộ được đặt trên máy chủ.
Microsoft Windows từ Windows 95 đã bao gồm hỗ trợ giao thức SMB của máy khác và máy chủ. Samba, một máy chủ nguồn mở hỗ trợ giao thức SMB, đã được phát hành cho các hệ thống Linux và Unix
Network Basic Input Output System** (NetBIOS)** là một giao thức phần mềm được thiết kế để cho phép các ứng dụng, PC và máy tính để bàn trong mạng cục bộ (LAN) tương tác với phần cứng mạng và tạo điều kiện thuận lợi cho việc truyền dữ liệu qua mạng. Việc nhận dạng và định vị các ứng dụng phần mềm hoạt động trên mạng NetBIOS được thực hiện thông qua tên NetBIOS. Phiên NetBIOS giữa hai ứng dụng được khởi tạo khi một ứng dụng (hoạt động như máy khách) đưa ra lệnh "gọi" một ứng dụng khác (hoạt động như máy chủ) sử dụng Cổng TCP 139 .
SMB sử dụng cổng 445
Yêu cầu của máy khách SMB – Thông qua giao thức SMB, thiết bị máy khách gửi yêu cầu đến máy chủ SMB để tìm cách truy cập vào các tài nguyên được chia sẻ.
Xác thực – Sau khi thiết lập phiên với máy chủ, máy khách sẽ truyền thông tin xác thực nhận dạng của mình đến máy chủ. Sau đó, máy chủ sẽ xác minh xem máy khách có được phép truy cập vào các tài nguyên được yêu cầu hay không.
Truy cập tài nguyên – Sau khi xác thực thành công, máy khách có thể truyền, đọc và ghi dữ liệu vào các tệp được chia sẻ, truy cập các thiết bị được chia sẻ và thực hiện các tác vụ trên các tệp đó.
Kết thúc phiên – Khi máy khách đã hoàn thành nhiệm vụ của mình, nó có thể chấm dứt giao tiếp SMB, giải phóng tài nguyên ở cả phía máy khách và máy chủ.
NT LAN Manager (NTLM): giao thức xác thực cũ sử dụng cơ chế challenge - response dễ bị tấn công và kém an toàn.
Kerberos là giao thức an toàn hơn, sử dụng mã hóa đối xứng và Key Distribution Center (KDC), được khuyến nghị cho các giao tiếp SMB trong môi trường Active Directory.
SMB2 và SMB3 mang lại nhiều cải tiến bảo mật, như xác minh tính toàn vẹn gói dữ liệu và thỏa thuận phiên bản an toàn. Việc sử dụng các phương pháp xác thực hiện đại là cần thiết để bảo vệ an toàn dữ liệu.
Một điểm mạnh của giao thức SMB mà nhiều công cụ khác không có được chính là hỗ trợ cả Unicode. Bên cạnh đó thì SMB còn có những chức năng quan trọng khác như:
Hỗ trợ tìm kiếm máy chủ sử dụng giao thức SMB khác.
Hỗ trợ in qua mạng.
Cho phép xác thực các file và thư mục được chia sẻ.
Thông báo những thay đổi của file và thư mục.
Xử lý những thuộc tính mở rộng của file.
Hỗ trợ dàn xếp, đàm phán để tương thích giữa các hình thái của SMB.
Cho phép khóa file đang truy cập tùy theo yêu cầu.
Khi sử dụng SMB kết hợp với giao thức xác thực NTLM người dùng sẽ được cung cấp trọn gói chia sẻ file, máy in ở mức user. Chỉ cần thực hiện đăng nhập kết nối với dữ liệu ở máy khác, Windows sẽ lập tức gửi dữ liệu thông tin đăng nhập của người dùng đó về SMB trước khi yêu cầu tên đăng nhập và mật khẩu.
Cuộc tấn công này sử dụng Responder toolkit để capture SMB authentication sessions trên mạng nội bộ và chuyển tiếp chúng đến máy mục tiêu. Nếu phiên xác thực thành công, nó sẽ tự động đưa bạn vào system shell.
Thư viện Windows URLMon.dll sẽ tự động xác thực với máy chủ khi một trang cố gắng truy cập một số kết nối thông qua SMB, ví dụ: img src="\\10.10.10.10\path\image.jpg"
Điều này xảy ra với các hàm:
URLDownloadToFile
URLDownloadToCache
URLOpenStream
URLOpenBlockingStream
Được sử dụng bởi một số trình duyệt và công cụ (như Skype)
Enable SMB signing on all devices
Disable NTLM authentication on the network.
Phân cấp tài khoản
Hạn chế quản trị cục bộ
Loại bỏ phiên bản SMB1 và thay thế bằng các bản cao hơn
Khởi chạy tường lửa hoặc để chế độ Endpoint Protection để bảo vệ port SMB và cập nhật blacklist để ngăn chặn các kết nối từ địa chỉ IP đã tấn công trước đó.
Thiết lập VPN để mã hóa và bảo vệ lưu lượng mạng.
Sử dụng mạng VLAN riêng với lưu lượng nội bộ.
Sử dụng bộ lọc địa chỉ MAC để phát hiện và ngăn chặn những địa chỉ không xác định đang muốn truy cập.
Tắt SMB, đóng các cổng 139 và 445 khi không sử dụng
From:
Từ:
Giống với SMB Trapping, việc cài các tệp độc hại vào hệ thống mục tiêu (via SMB) có thể thực hiện một nỗ lực xác thực SMB bất hợp pháp, cho phép chặn băm NetNTLMv2 bằng một công cụ như Responder. Sau đó, giá trị băm có thể bị bẻ khóa ngoại tuyến hoặc được sử dụng trong mộtSMB relay attack.
Theo dõi tấn công theo thời gian thực cho thấy SMB là một trong những vectơ tấn công chính cho các nỗ lực xâm nhập, ví dụ như và năm 2017. Vào năm 2020, hai lỗ hổng SMB có mức độ nghiêm trọng cao đã được tiết lộ và được đặt tên là ( ) và ( ), khi được kết nối với nhau có thể cung cấp đặc quyền cho kẻ tấn công.