브로드캐스트 프로토콜 TCP/IP를 통한 NetBIOS 및 LLMNR 대부분의 최신 네트워크에서는 레거시 Windows 버전과의 호환성을 위해서만 사용됩니다. 두 프로토콜 모두 스푸핑 및 MITM 공격에 취약합니다. Metasploit에는 브로드캐스팅 NetBIOS 및 LLMNR 프로토콜의 취약점을 쉽게 악용하여 로컬 네트워크(NTLMv2 해시 포함)에서 사용자 자격 증명을 가로챌 수 있는 기성품 모듈이 있습니다. 네트워크 보안을 향상시키려면 도메인 네트워크에서 이러한 프로토콜을 비활성화해야 합니다. Windows 10/Windows Server 2019에서 수동으로 또는 그룹 정책을 통해 LLMNR 및 NetBIOS 프로토콜을 비활성화하는 방법을 알아보겠습니다.
내용:
- 링크-로컬 멀티캐스트 이름 확인(LLMNR) 프로토콜
- TCP/IP 프로토콜을 통한 NetBIOS
- GPO를 사용하여 Windows에서 LLMNR 비활성화
- Windows 10/Windows Server 2019에서 TCP/IP를 통한 NetBIOS 비활성화
- 그룹 정책을 통해 TCP/IP를 통한 NetBIOS를 비활성화하는 방법은 무엇입니까?
링크-로컬 멀티캐스트 이름 확인(LLMNR) 프로토콜
LLMNR (UDP/5355, Link-Local Multicast Name Resolution)은 Vista부터 시작하는 모든 Windows 버전에서 사용되며 IPv6 및 IPv4 클라이언트가 로컬 L2 네트워크 세그먼트의 브로드캐스트 요청으로 인해 DNS 서버를 사용하지 않고 인접 컴퓨터의 이름을 확인할 수 있도록 합니다. 이 프로토콜은 DNS를 사용할 수 없는 경우 자동으로 사용됩니다(Windows 작업 그룹에서 이 프로토콜은 네트워크 검색에 사용됨). 따라서 도메인에 DNS 서버가 있으면 이 프로토콜이 필요하지 않습니다.
TCP/IP 프로토콜을 통한 NetBIOS
TCP/IP를 통한 NetBIOS 또는 NBT-NS(UDP/137,138;TCP/139)는 LLMNR의 전신인 브로드캐스트 프로토콜이며 리소스를 게시하고 검색하기 위해 로컬 네트워크에서 사용됩니다. 기본적으로 NetBIOS over TCP/IP 지원은 모든 Windows 버전의 모든 네트워크 인터페이스에 대해 활성화됩니다.
Windows에서는 nbtstat 명령을 사용하여 NBT를 통한 NetBIOS 통계 및 현재 TCP/IP 연결을 표시할 수 있습니다. IP 주소로 컴퓨터 이름을 얻으려면:
nbtstat -A 192.168.131.190
보시다시피 nbtstat는 NetBIOS 프로토콜을 사용하여 로컬 네트워크에서 컴퓨터를 찾아 이름을 반환했습니다.
NetBIOS 캐시의 동일한 로컬 네트워크에 있는 인접 컴퓨터에 대한 모든 레코드를 표시할 수 있습니다.
nbtstat -c
NetBIOS 및 LLMNR 프로토콜을 사용하면 DNS 서버를 사용할 수 없는 경우 로컬 네트워크의 컴퓨터가 서로를 찾을 수 있습니다. 작업 그룹 환경에서는 필요할 수 있지만 도메인 네트워크에서는 이 두 프로토콜을 모두 비활성화할 수 있습니다.
도움말 . 도메인에서 이러한 정책을 대량으로 구현하기 전에 NetBIOS 및 LLMNR이 비활성화된 컴퓨터와 서버를 테스트하는 것이 좋습니다. 그리고 일반적으로 LLMNR을 비활성화하는 데 문제가 없다면 NetBIOS를 비활성화하면 레거시 장치의 작동이 마비될 수 있습니다.GPO를 사용하여 Windows에서 LLMNR 비활성화
다음 PowerShell 명령을 사용하여 레지스트리를 통해 로컬로 Windows 컴퓨터에서 LLMNR 프로토콜을 비활성화할 수 있습니다.
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
도메인 환경에서 그룹 정책을 사용하여 컴퓨터와 서버에서 LLMNR 브로드캐스트를 비활성화할 수 있습니다. 하려면:
gpmc.msc
를 엽니다. , 새 GPO를 만들거나 모든 워크스테이션 및 서버에 적용되는 기존 GPO를 편집합니다.- 컴퓨터 구성 -> 관리 템플릿 -> 네트워크 -> DNS 클라이언트로 이동합니다. ;
- 멀티캐스트 이름 확인 사용 중지 사용 값을 사용으로 변경하여 정책 ;
- 클라이언트의 GPO 설정이 업데이트되는 동안 기다리거나
gpupdate /force
명령을 사용하여 수동으로 업데이트합니다.
Windows 10/Windows Server 2019에서 TCP/IP를 통한 NetBIOS 비활성화
참고. NetBIOS는 레거시 Windows 버전(2000, XP 등) 및 일부 비 Windows 장치에서 사용할 수 있으므로 비활성화하기 전에 각 특정 환경에서 테스트해야 합니다.다음과 같이 Windows에서 NetBIOS를 수동으로 비활성화할 수 있습니다.
- 네트워크 연결 속성 열기
- TCP/IPv4 선택 속성을 열고
- 고급 클릭 을 클릭한 다음 WINS 로 이동합니다. 탭에서 NetBIOS over TCP 사용 안 함을 선택합니다.
- 변경 사항을 저장합니다.
컴퓨터에 여러 네트워크 어댑터(또는 VLAN)가 있는 경우 각 어댑터의 속성에서 NetBIOS를 비활성화해야 합니다.
Windows 명령 프롬프트에서 네트워크 어댑터의 TCP/IP를 통한 NetBIOS 상태를 확인할 수 있습니다.
ipconfig /all |find "NetBIOS"
NetBIOS over Tcpip . . . . . : Disabled
레지스트리를 통해 특정 네트워크 어댑터에 대해 NetBIOS를 비활성화할 수도 있습니다. 각 네트워크 어댑터에는 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces 아래에 별도의 레지스트리 키가 있습니다. TCPIP_GUID를 포함합니다.
특정 어댑터에 대해 NetBIOS를 비활성화하려면 해당 reg 키로 이동하여 NetbiosOptions 값을 변경하십시오. 매개변수를 2로 (기본값은 0).
특별한 DHCP 옵션을 사용하여 Windows DHCP 서버에서 IP 주소를 수신하는 도메인 클라이언트에서 NetBIOS를 비활성화할 수 있습니다.
dhcpmgmt.msc
실행 콘솔에서 DHCP 서버에 연결하고 범위 옵션 영역 설정(또는 서버 – 서버 옵션)을 선택합니다.- 고급 으로 이동 탭을 누르고 Microsoft Windows 2000 옵션을 선택합니다. 공급업체 클래스 드롭다운 목록;
- 001 Microsoft 비활성화 Netbios 옵션 활성화 값을 0x2로 변경합니다. .
그룹 정책을 통해 TCP/IP를 통한 NetBIOS를 비활성화하는 방법은 무엇입니까?
그룹 정책 편집기 또는 Windows 10/Windows Server 2019용 최신 관리 템플릿 버전의 모든 네트워크 어댑터에 대해 TCP/IP를 통한 NetBIOS를 비활성화할 수 있는 별도의 GPO 옵션은 없습니다. 다음 PowerShell 로그온 스크립트를 사용하여 모든 네트워크 어댑터에 대해 NetBIOS를 완전히 비활성화하십시오. 네트워크 어댑터:
$regkey = "HKLM:SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces"
Get-ChildItem $regkey |foreach { Set-ItemProperty -Path "$regkey\$($_.pschildname)" -Name NetbiosOptions -Value 2 -Verbose}
이 코드를 disableNetbios.ps1에 저장합니다. 파일을 GPO 디렉터리에 복사하고 컴퓨터 구성 -> 정책 -> Windows 설정 -> 스크립트 -> 시작 -> PowerShell 스크립트를 통해 클라이언트에서 실행합니다.
현재 PowerShell 실행 정책이 이 스크립트가 Windows 컴퓨터에서 실행되는 것을 차단하는 경우 PS1 스크립트에 서명하거나 바이패스 모드에서 실행해야 합니다.참고 . 이 변경 사항을 적용하려면 네트워크 어댑터를 활성화/비활성화하거나 컴퓨터를 다시 시작해야 합니다.
그런 다음 명령 프롬프트를 열고 다음 명령을 실행하여 네트워크 어댑터에 대해 NetBIOS가 비활성화되어 있는지 확인하십시오(터널 인터페이스 제외).
wmic nicconfig get caption,index,TcpipNetbiosOptions