Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
LLMNR, NBT-NS, and mDNS:
Microsoft 및 기타 운영 체제는 DNS가 실패할 때 로컬 이름 해석을 위해 LLMNR 및 NBT-NS를 사용합니다. 유사하게, Apple 및 Linux 시스템은 mDNS를 사용합니다.
이러한 프로토콜은 UDP를 통한 인증되지 않은 브로드캐스트 특성으로 인해 가로채기 및 스푸핑에 취약합니다.
Responder는 이러한 프로토콜을 쿼리하는 호스트에 위조된 응답을 보내 서비스로 가장하는 데 사용할 수 있습니다.
Responder를 사용한 서비스 가장에 대한 추가 정보는 여기에서 확인할 수 있습니다.
WPAD는 브라우저가 프록시 설정을 자동으로 발견할 수 있도록 합니다.
발견은 DHCP, DNS를 통해 이루어지며, DNS가 실패할 경우 LLMNR 및 NBT-NS로 대체됩니다.
Responder는 WPAD 공격을 자동화하여 클라이언트를 악성 WPAD 서버로 유도할 수 있습니다.
Responder는 LLMNR, NBT-NS 및 mDNS 쿼리를 오염시키기 위해 사용되는 도구로, 주로 SMB 서비스를 목표로 쿼리 유형에 따라 선택적으로 응답합니다.
Kali Linux에 기본적으로 설치되어 있으며, /etc/responder/Responder.conf
에서 구성할 수 있습니다.
Responder는 캡처된 해시를 화면에 표시하고 /usr/share/responder/logs
디렉토리에 저장합니다.
IPv4와 IPv6를 모두 지원합니다.
Windows 버전의 Responder는 여기에서 사용할 수 있습니다.
기본 설정으로 Responder를 실행하려면: responder -I <Interface>
더 공격적인 탐색을 위해 (잠재적인 부작용이 있을 수 있음): responder -I <Interface> -P -r -v
NTLMv1 챌린지/응답을 캡처하여 더 쉽게 크랙할 수 있는 기술: responder -I <Interface> --lm --disable-ess
WPAD 가장을 활성화하려면: responder -I <Interface> --wpad
NetBIOS 요청을 공격자의 IP로 해결하고 인증 프록시를 설정할 수 있습니다: responder.py -I <interface> -Pv
DHCP 응답을 스푸핑하면 피해자의 라우팅 정보를 영구적으로 오염시킬 수 있으며, ARP 오염보다 더 은밀한 대안이 됩니다.
이는 대상 네트워크의 구성에 대한 정확한 지식이 필요합니다.
공격 실행: ./Responder.py -I eth0 -Pdv
이 방법은 NTLMv1/2 해시를 효과적으로 캡처할 수 있지만, 네트워크 중단을 피하기 위해 신중한 처리가 필요합니다.
Responder는 위에서 언급한 프로토콜을 사용하여 서비스를 가장하고, 사용자가 스푸핑된 서비스에 대해 인증을 시도할 때 자격 증명(일반적으로 NTLMv2 챌린지/응답)을 캡처합니다.
NetNTLMv1로 다운그레이드하거나 ESS를 비활성화하여 자격 증명을 더 쉽게 크랙할 수 있는 시도를 할 수 있습니다.
이러한 기술을 사용하는 것은 법적 및 윤리적으로 수행되어야 하며, 적절한 승인을 보장하고 중단이나 무단 접근을 피해야 합니다.
Inveigh는 Windows 시스템을 위한 침투 테스터 및 레드 팀원을 위한 도구입니다. Responder와 유사한 기능을 제공하며, 스푸핑 및 중간자 공격을 수행합니다. 이 도구는 PowerShell 스크립트에서 C# 바이너리로 발전하였으며, Inveigh 및 InveighZero가 주요 버전입니다. 자세한 매개변수 및 지침은 wiki에서 확인할 수 있습니다.
Inveigh는 PowerShell을 통해 운영할 수 있습니다:
C# 바이너리로 실행됨:
이 공격은 SMB 인증 세션을 활용하여 대상 머신에 접근하며, 성공할 경우 시스템 셸을 부여합니다. 주요 전제 조건은 다음과 같습니다:
인증하는 사용자는 릴레이된 호스트에서 로컬 관리자 권한을 가져야 합니다.
SMB 서명이 비활성화되어야 합니다.
직접적인 네트워크 소개가 불가능한 경우, 포트 445의 트래픽을 포워딩하고 터널링해야 합니다. PortBender와 같은 도구는 포트 445 트래픽을 다른 포트로 리디렉션하는 데 도움을 주며, 이는 드라이버 로딩을 위한 로컬 관리자 접근이 가능할 때 필수적입니다.
Cobalt Strike에서 PortBender 설정 및 운영:
Metasploit: 프록시, 로컬 및 원격 호스트 세부정보로 설정합니다.
smbrelayx: SMB 세션을 릴레이하고 명령을 실행하거나 백도어를 배포하는 Python 스크립트입니다.
MultiRelay: 특정 사용자 또는 모든 사용자를 릴레이하고, 명령을 실행하거나 해시를 덤프하는 Responder 스위트의 도구입니다.
각 도구는 필요에 따라 SOCKS 프록스를 통해 작동하도록 구성할 수 있어 간접 네트워크 액세스가 있는 경우에도 공격이 가능합니다.
MultiRelay는 /usr/share/responder/tools 디렉토리에서 실행되며, 특정 IP 또는 사용자를 대상으로 합니다.
이 도구와 기술은 다양한 네트워크 환경에서 NTLM Relay 공격을 수행하기 위한 포괄적인 세트를 형성합니다.
Windows에서는 일부 특권 계정이 임의의 머신에 인증하도록 강제할 수 있습니다. 방법을 배우려면 다음 페이지를 읽어보세요:
Force NTLM Privileged AuthenticationLearn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)