hacktricks/generic-methodologies-and-resources/pentesting-network/glbp-and-hsrp-attacks.md

7.2 KiB
Raw Blame History

GLBP & HSRP 攻击

从零开始学习 AWS 黑客技术,成为专家 htARTEHackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

FHRP 劫持概述

理解 FHRP

首跳冗余协议FHRP是一种协议套件通过将多个物理路由器组合成单个虚拟实体来确保网络的弹性。这增强了负载分配和容错能力。思科系统引入了两个著名的 FHRP 协议GLBP 和 HSRP。

GLBP 协议详情

由思科开发的 GLBP网关负载平衡协议在 TCP/IP 协议栈之上运行,使用 UDP 在端口 3222 上进行通信。GLBP 组内的路由器每 3 秒发送一次“hello”数据包。如果 10 秒内没有收到来自路由器的这些数据包,则表示路由器故障。但是,这些计时器设置是可调整的。

GLBP 运行和负载平衡

GLBP 通过使用单个虚拟 IP 和各种虚拟 MAC 地址在多个路由器之间实现负载共享。组内的每个路由器都参与转发数据包。GLBP 通过提供真正的负载平衡与 HSRP/VRRP 不同,包括:

  • 主机相关性: 确保主机接收相同的 AVF MAC 地址,保留 NAT 配置。
  • 轮询: 默认模式AVF MAC 地址交替分配。
  • 基于权重的轮询: 根据预定义的“权重”指标平衡负载。

GLBP 域角色和术语

  • AVG活动虚拟网关 主要路由器,向其他路由器分配 MAC 地址。
  • AVF活动虚拟转发器 处理网络流量的路由器。
  • GLBP 优先级: 决定 AVG默认为 100范围为 1 到 255。
  • GLBP 权重: 指示路由器的负载级别,可手动调整或通过对象跟踪调整。
  • GLBP 虚拟 IP 地址: 作为连接设备的默认网关。

GLBP 使用保留的组播地址 224.0.0.102 和 UDP 端口 3222 进行通信。每 3 秒发送一次“hello”数据包如果在 10 秒内未收到数据包,则将路由器标记为“死亡”。

GLBP 攻击机制

攻击者可以通过发送优先级值最高255的 GLBP 数据包成为主要路由器。这可能导致 DoS 或 MITM 攻击,允许拦截或重定向流量。

使用 Loki 执行 GLBP 攻击

Loki 可以通过注入优先级和权重设置为 255 的数据包执行 GLBP 攻击。攻击前的步骤包括使用诸如 Wireshark 等工具收集虚拟 IP 地址、认证存在和路由器优先级值等信息。

攻击步骤:

  1. 切换到混杂模式并启用 IP 转发。
  2. 确定目标路由器并检索其 IP。
  3. 生成一个恶意的 Gratuitous ARP。
  4. 注入一个恶意的 GLBP 数据包,冒充 AVG。
  5. 为攻击者的网络接口分配一个次要 IP 地址,镜像 GLBP 虚拟 IP。
  6. 实施 SNAT 以完全可见流量。
  7. 调整路由以确保通过原始 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

使用net-creds.py或类似工具来监视和拦截流量以捕获和分析通过受损网络流动的数据。

HSRP劫持的被动解释及命令详细信息

HSRP热备份路由器/冗余协议)概述

HSRP是思科专有协议旨在实现网络网关冗余。它允许将多个物理路由器配置为单个逻辑单元共享一个IP地址。这个逻辑单元由主路由器管理负责流量导向。与GLBP不同GLBP使用优先级和权重等指标进行负载平衡HSRP依赖于单个活动路由器进行流量管理。

HSRP中的角色和术语

  • HSRP活动路由器:充当网关的设备,管理流量流向。
  • HSRP备用路由器:备用路由器,准备在活动路由器故障时接管。
  • HSRP组:一组路由器合作形成一个弹性的虚拟路由器。
  • HSRP MAC地址分配给HSRP设置中逻辑路由器的虚拟MAC地址。
  • HSRP虚拟IP地址HSRP组的虚拟IP地址充当连接设备的默认网关。

HSRP版本

HSRP有两个版本HSRPv1和HSRPv2主要区别在于组容量、多播IP使用和虚拟MAC地址结构。该协议利用特定的多播IP地址进行服务信息交换每3秒发送一次Hello数据包。如果在10秒内未收到数据包则假定路由器处于非活动状态。

HSRP攻击机制

HSRP攻击涉及通过注入最大优先级值强制接管活动路由器的角色。这可能导致中间人攻击。攻击前的基本步骤包括收集有关HSRP设置的数据可以使用Wireshark进行流量分析。

绕过HSRP身份验证的步骤

  1. 将包含HSRP数据的网络流量保存为.pcap文件。
tcpdump -w hsrp_traffic.pcap
  1. 使用hsrp2john.py从.pcap文件中提取MD5哈希。
python2 hsrp2john.py hsrp_traffic.pcap > hsrp_hashes
  1. 使用John the Ripper破解MD5哈希。
john --wordlist=mywordlist.txt hsrp_hashes

使用Loki执行HSRP注入

  1. 启动Loki以识别HSRP广告。
  2. 将网络接口设置为混杂模式并启用IP转发。
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
  1. 使用Loki针对特定路由器输入破解的HSRP密码并执行必要的配置以冒充活动路由器。
  2. 获得活动路由器角色后配置您的网络接口和IP表以拦截合法流量。
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  1. 修改路由表以通过先前的活动路由器路由流量。
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
  1. 使用net-creds.py或类似实用程序从拦截的流量中捕获凭据。
sudo python2 net-creds.py -i eth0

执行这些步骤将使攻击者能够拦截和操纵流量类似于GLBP劫持的过程。这突显了像HSRP这样的冗余协议的漏洞以及对强大安全措施的需求。