Các giao thức broadcast NetBIOS over TCP/IP và LLMNR được sử dụng trong hầu hết các mạng hiện đại chỉ để tương thích với các phiên bản Windows cũ. Cả hai giao thức đều dễ bị tấn công giả mạo (spoofing) và MITM. Trong Metasploit có các mô-đun sẵn có cho phép bạn dễ dàng khai thác lỗ hổng trong các giao thức broadcast NetBIOS và LLMNR để chặn thông tin xác thực người dùng trong mạng cục bộ (bao gồm hash NTLMv2). Để cải thiện bảo mật mạng của bạn, bạn cần vô hiệu hóa các giao thức này trên mạng miền. Hãy tìm hiểu cách vô hiệu hóa giao thức LLMNR và NetBIOS trên Windows 10/Windows Server 2019 thủ công hoặc thông qua Chính Sách Nhóm.
Giao Thức Link-Local Multicast Name Resolution (LLMNR)
LLMNR (UDP/5355, Link-Local Multicast Name Resolution) được sử dụng trong tất cả các phiên bản Windows bắt đầu từ Vista và cho phép client IPv6 và IPv4 phân giải tên của các máy tính lân cận mà không cần máy chủ DNS nhờ các yêu cầu broadcast trong phân đoạn mạng L2 cục bộ. Giao thức này được tự động sử dụng nếu DNS không khả dụng (trong workgroup Windows, giao thức này được dùng cho Network Discovery). Vì vậy, nếu có máy chủ DNS trong miền, giao thức này không cần thiết.
Giao Thức NetBIOS Over TCP/IP
NetBIOS over TCP/IP hoặc NBT-NS (UDP/137,138;TCP/139) là một giao thức broadcast là tiền thân của LLMNR và được sử dụng trong mạng cục bộ để công bố và tìm kiếm tài nguyên. Mặc định, hỗ trợ NetBIOS over TCP/IP được bật cho tất cả các giao diện mạng trong tất cả các phiên bản Windows.
Trên Windows, bạn có thể hiển thị thống kê NetBIOS và các kết nối TCP/IP hiện tại qua NBT bằng lệnh nbtstat. Để lấy tên máy tính bằng địa chỉ IP của nó:
nbtstat -A 192.168.131.190
Như bạn thấy, nbtstat tìm thấy một máy tính trên mạng cục bộ bằng giao thức NetBIOS và trả về tên của nó.
Bạn có thể hiển thị tất cả các bản ghi về các máy tính lân cận trên cùng mạng cục bộ trong bộ nhớ đệm NetBIOS:
nbtstat -c
NetBIOS và LLMNR cho phép các máy tính trên mạng cục bộ tìm thấy nhau nếu máy chủ DNS không khả dụng. Có lẽ chúng cần thiết trong môi trường workgroup, nhưng trong mạng miền, cả hai giao thức này đều có thể bị vô hiệu hóa.
Mẹo. Trước khi triển khai hàng loạt các chính sách này trong miền, chúng tôi khuyên bạn nên kiểm tra máy tính và máy chủ với NetBIOS và LLMNR bị vô hiệu hóa. Và nếu thường không có vấn đề gì khi vô hiệu hóa LLMNR, thì việc vô hiệu hóa NetBIOS có thể làm tê liệt hoạt động của các thiết bị cũ.
Vô Hiệu Hóa LLMNR Trên Windows Sử Dụng GPO
Bạn có thể vô hiệu hóa giao thức LLMNR trên máy tính Windows cục bộ qua registry bằng các lệnh PowerShell sau:
New-Item "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT" -Name DNSClient -Force
New-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name EnableMultiCast -Value 0 -PropertyType DWORD -Force
Trong môi trường miền, broadcast LLMNR có thể bị vô hiệu hóa trên máy tính và máy chủ bằng Chính Sách Nhóm. Để làm điều đó:
- Mở
gpmc.msc, tạo GPO mới hoặc chỉnh sửa GPO hiện có được áp dụng cho tất cả máy trạm và máy chủ; - Đi đến Computer Configuration -> Administrative Templates -> Network -> DNS Client;
- Bật chính sách Turn off multicast name resolution bằng cách đổi giá trị thành Enabled;
- Chờ cập nhật cài đặt GPO trên client, hoặc cập nhật thủ công bằng lệnh:
gpupdate /force
Hoặc bạn có thể dùng GPP để triển khai tham số registry EnableMulticast = 0 trên máy tính miền (trên khóa reg HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient).
Vô Hiệu Hóa NetBIOS Over TCP/IP Trên Windows 10/Windows Server 2019
Lưu ý. NetBIOS có thể được sử dụng bởi các phiên bản Windows cũ (2000, XP, v.v.) và một số thiết bị không phải Windows, do đó nó nên được kiểm tra trong từng môi trường cụ thể trước khi vô hiệu hóa.
Bạn có thể vô hiệu hóa NetBIOS trên Windows thủ công như sau:
- Mở thuộc tính kết nối mạng
- Chọn TCP/IPv4 và mở thuộc tính của nó
- Nhấn Advanced, sau đó chuyển đến tab WINS và chọn Disable NetBIOS over TCP
- Lưu thay đổi.
Nếu bạn có nhiều card mạng (hoặc VLAN) trên máy tính, bạn sẽ cần vô hiệu hóa NetBIOS trong thuộc tính của từng card.
Bạn có thể kiểm tra trạng thái NetBIOS over TCP/IP cho các card mạng từ dấu nhắc lệnh Windows:
ipconfig /all |find "NetBIOS"
NetBIOS over Tcpip . . . . . : Disabled
Bạn cũng có thể vô hiệu hóa NetBIOS cho card mạng cụ thể qua registry. Mỗi card mạng có một khóa registry riêng dưới HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces chứa TCPIP_GUID của nó.
Để vô hiệu hóa NetBIOS cho card cụ thể, hãy đi đến khóa reg của nó và thay đổi giá trị tham số NetbiosOptions thành 2 (mặc định là 0).
Bạn có thể vô hiệu hóa NetBIOS trên các client miền nhận địa chỉ IP từ máy chủ DHCP Windows bằng một tùy chọn DHCP đặc biệt.
- Chạy console
dhcpmgmt.msc, kết nối với máy chủ DHCP và chọn cài đặt Scope Options (hoặc server – Server Options); - Chuyển đến tab Advanced và chọn Microsoft Windows 2000 Options trong danh sách thả xuống Vendor class;
- Bật 001 Microsoft Disable Netbios Option và đổi giá trị thành 0x2.
Cách Vô Hiệu Hóa NetBIOS Over TCP/IP Qua Group Policy?
Không có tùy chọn GPO riêng biệt cho phép vô hiệu hóa NetBIOS over TCP/IP cho tất cả card mạng trong Group Policy Editor hoặc phiên bản mới nhất của Administrative Templates cho Windows 10/Windows Server 2019. Hãy sử dụng script PowerShell logon sau để vô hiệu hóa hoàn toàn NetBIOS cho tất cả card mạng:
$regkey = "HKLM:SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces"
Get-ChildItem $regkey |foreach { Set-ItemProperty -Path "$regkey\$($_.pschildname)" -Name NetbiosOptions -Value 2 -Verbose}
Lưu mã này vào file disableNetbios.ps1, sao chép nó vào thư mục GPO và chạy trên client qua Computer Configuration -> Policies -> Windows Settings -> Scripts -> Startup -> PowerShell Scripts.
Nếu chính sách thực thi PowerShell hiện tại của bạn chặn script này chạy trên máy tính Windows, bạn phải ký script PS1 hoặc chạy nó ở chế độ bypass.
Lưu ý. Để thay đổi này có hiệu lực, bạn phải bật/tắt card mạng hoặc khởi động lại máy tính.
Sau đó mở dấu nhắc lệnh và chạy lệnh sau để kiểm tra NetBIOS bị vô hiệu hóa cho các card mạng của bạn (trừ giao diện tunnel):
wmic nicconfig get caption,index,TcpipNetbiosOptions