GLBP & HSRP Attacks
Last updated
Last updated
AWS 해킹 학습 및 실습:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 학습 및 실습: HackTricks Training GCP Red Team Expert (GRTE)
FHRP는 여러 라우터를 하나의 가상 단위로 병합하여 네트워크 견고성을 제공하도록 설계되어 로드 분산 및 장애 허용성을 향상시킵니다. Cisco Systems는 GLBP 및 HSRP와 같은 중요한 프로토콜을 이 스위트에 소개했습니다.
Cisco의 창작물인 GLBP는 TCP/IP 스택에서 작동하며 통신에 UDP 포트 3222를 사용합니다. GLBP 그룹의 라우터는 3초 간격으로 "hello" 패킷을 교환합니다. 라우터가 이러한 패킷을 10초 동안 보내지 않으면 오프라인으로 간주됩니다. 그러나 이러한 타이머는 고정되어 있지 않고 수정할 수 있습니다.
GLBP는 단일 가상 IP와 여러 가상 MAC 주소를 사용하여 라우터 간의 로드 분산을 가능하게 함으로써 라우터 간의 로드 분산을 가능하게 합니다. GLBP 그룹에서 각 라우터는 패킷 전달에 참여합니다. HSRP/VRRP와 달리 GLBP는 다음과 같은 여러 메커니즘을 통해 진정한 로드 밸런싱을 제공합니다:
호스트 종속 로드 밸런싱: 호스트에 일관된 AVF MAC 주소 할당을 유지하여 안정적인 NAT 구성에 필수적입니다.
라운드 로빈 로드 밸런싱: 요청하는 호스트 사이에서 AVF MAC 주소 할당을 번갈아가며 사용하는 기본 접근 방식입니다.
가중 라운드 로빈 로드 밸런싱: 미리 정의된 "가중치" 메트릭에 따라 부하를 분배합니다.
AVG (Active Virtual Gateway): MAC 주소를 동료 라우터에 할당하는 주요 라우터입니다.
AVF (Active Virtual Forwarder): 네트워크 트래픽을 관리하는 라우터입니다.
GLBP 우선 순위: AVG를 결정하는 메트릭으로, 기본값은 100이며 1에서 255 사이의 범위를 가집니다.
GLBP 가중치: 라우터의 현재 부하를 반영하며, 수동으로 조정하거나 Object Tracking을 통해 조정할 수 있습니다.
GLBP 가상 IP 주소: 모든 연결된 장치에 대한 네트워크의 기본 게이트웨이로 작동합니다.
상호 작용을 위해 GLBP는 예약된 멀티캐스트 주소 224.0.0.102와 UDP 포트 3222를 사용합니다. 라우터는 3초 간격으로 "hello" 패킷을 전송하며, 패킷이 10초 동안 누락되면 비운용 상태로 간주됩니다.
공격자는 우선 순위 값이 가장 높은(255) GLBP 패킷을 보내어 주 라우터가 될 수 있습니다. 이로 인해 DoS 또는 MITM 공격이 발생할 수 있으며, 트래픽 가로채기 또는 리디렉션이 가능해집니다.
Loki는 우선 순위와 가중치가 255로 설정된 패킷을 주입하여 GLBP 공격을 수행할 수 있습니다. 공격 전 단계는 Wireshark와 같은 도구를 사용하여 가상 IP 주소, 인증 존재 여부 및 라우터 우선 순위 값을 수집하는 것입니다.
공격 단계:
Promiscuous 모드로 전환하고 IP 포워딩을 활성화합니다.
대상 라우터를 식별하고 해당 IP를 검색합니다.
Gratuitous ARP를 생성합니다.
AVG를 흉내 내는 악의적인 GLBP 패킷을 주입합니다.
공격자의 네트워크 인터페이스에 GLBP 가상 IP를 반영하는 보조 IP 주소를 할당합니다.
완전한 트래픽 가시성을 위해 SNAT를 구현합니다.
원래 AVG 라우터를 통해 계속된 인터넷 액세스를 보장하기 위해 라우팅을 조정합니다.
이러한 단계를 따라가면 공격자는 "중간자"로 위치하여 암호화되지 않거나 민감한 데이터를 포함한 네트워크 트래픽을 가로채고 분석할 수 있습니다.
시연을 위해 필요한 명령어 스니펫은 다음과 같습니다:
HSRP는 네트워크 게이트웨이의 여분 시스템을 위한 시스코 독점 프로토콜입니다. 여러 물리적 라우터를 공유 IP 주소를 가진 단일 논리적 단위로 구성할 수 있습니다. 이 논리적 단위는 트래픽을 관리하는 주 라우터에 의해 관리됩니다. GLBP와 달리 HSRP는 우선순위와 가중치와 같은 메트릭을 사용하지 않고 단일 활성 라우터에 의존하여 트래픽을 관리합니다.
HSRP 활성 라우터: 트래픽 흐름을 관리하는 게이트웨이로 작동하는 장치입니다.
HSRP 대기 라우터: 활성 라우터가 실패할 경우 대기하여 대체할 백업 라우터입니다.
HSRP 그룹: 단일 견고한 가상 라우터를 형성하기 위해 협력하는 라우터의 집합입니다.
HSRP MAC 주소: HSRP 설정에서 논리적 라우터에 할당된 가상 MAC 주소입니다.
HSRP 가상 IP 주소: 연결된 장치를 위한 기본 게이트웨이로 작동하는 HSRP 그룹의 가상 IP 주소입니다.
HSRP에는 HSRPv1과 HSRPv2 두 가지 버전이 있으며 주로 그룹 용량, 멀티캐스트 IP 사용 및 가상 MAC 주소 구조가 다릅니다. 이 프로토콜은 서비스 정보 교환을 위해 특정 멀티캐스트 IP 주소를 활용하며 3초마다 Hello 패킷을 보냅니다. 10초 간격 내에 패킷을 수신하지 않으면 라우터는 비활성으로 간주됩니다.
HSRP 공격은 최대 우선순위 값을 주입하여 활성 라우터의 역할을 강제로 인수하는 것을 포함합니다. 이는 중간자 공격을 유발할 수 있습니다. 필수적인 사전 공격 단계에는 HSRP 설정에 대한 데이터 수집이 포함되며, 이는 트래픽 분석을 위해 Wireshark를 사용하여 수행할 수 있습니다.
HSRP 데이터를 포함하는 네트워크 트래픽을 .pcap 파일로 저장합니다.
hsrp2john.py를 사용하여 .pcap 파일에서 MD5 해시를 추출합니다.
John the Ripper를 사용하여 MD5 해시를 해독합니다.
Loki를 사용한 HSRP 인젝션 실행
HSRP 광고를 식별하기 위해 Loki를 실행합니다.
네트워크 인터페이스를 수동 모드로 설정하고 IP 포워딩을 활성화합니다.
Loki를 사용하여 특정 라우터를 대상으로 하고 해독된 HSRP 암호를 입력하고 활성 라우터를 위장하기 위해 필요한 구성을 수행합니다.
활성 라우터 역할을 얻은 후 네트워크 인터페이스 및 IP 테이블을 구성하여 합법적인 트래픽을 가로챕니다.
라우팅 테이블을 수정하여 트래픽을 이전 활성 라우터를 통해 라우팅합니다.
가로챈 트래픽에서 자격 증명을 캡처하기 위해 net-creds.py 또는 유사한 유틸리티를 사용합니다.
이러한 단계를 실행하면 공격자가 GLBP 하이재킹과 유사한 방식으로 트래픽을 가로채고 조작할 수 있는 위치에 있게 됩니다. 이는 HSRP와 같은 여분 프로토콜의 취약성을 강조하며 견고한 보안 조치의 필요성을 강조합니다.