Analizando broadcasts
dirigidos
Fecha: 7 de febrero del 2023
Escenario
Este este escenario analiza una variante de broadcast llamada broadcast dirigido, que a diferencia de un broadcast (a secas)
que inunda toda una red local, es ruteable de una red a otra y que comienza con un unicast, se transforma en broadcast luego
de ser “ruteado” y alcanza la red destino.
En su momento era una técnica de ataque llamada Smurf y que hoy día es obsoleta, hoy por hoy las máquinas Windows están
parcheadas para no responder, pero algunos Linux y otros equipos si, y en ocaciones nos “saca del agua” en un relevamiento.
Vamos a los bifes (o esas cosas de soja)...
En el ejemplo es un ping ICMP pero también podría ser cualquier tráfico UDP, con TCP no podría funcionar por obvios motivos.
1.- Análisis con Wireshark:
La secuencia sería mas o menos así:
1.1.- El paquete es unicast y sale con la IP 192.168.1.10 a la IP broadcast remoto 192.168.0.255, con la MAC destino del gateway.
1.2.- El gateway recibe la trama con su propia MAC como destino y la procesa.
1.3.- Como tiene activado ip directed-broadcast en la interface permite el reenvío.
1.4.- El gateway busca en la tabla de enrutamineto y encuentra la red de destino del broadcast, como tiene activado ip directed-broadcast en la interface
de salida genera un broadcast 255.255.255.255 (MAC FF:FF:FF:FF:FF:FF)
1.5.- El broadcast llega a todos los hosts de la red local, si lo tienen permitido, lo responden como unicast a la IP de origen.
1.5.1.- En este caso en particular de la trama/paquete #3, la IP de origen debería ser 192.168.0.1 que responde al broadcast, pero es 192.168.1.1 que
como es el mismo equipo lo transmitirá con la IP de la interface mas cercana al destino (tal como ocurre con los traceroute).
1.5.2.- Aqui también responde 192.168.0.10 y lo hace unicast a 192.168.1.10.
2.- Esquema del ping con broadcast dirigido y su respuesta:
3.- Diferencia con ip helper-address:
Cuando estudiamos DHCP y mas puntualmente DHCP-relay, vemos que un broadcast se convierte en unicast, es un
efecto justo a la inversa del directed-broadcast, tal como se describe en la imagen.
Debemos aclarar que ambos mecanismos no tienen nada que ver entre si, sólo se mencionan aqui para disipar dudas.
4.- Ataque Smurf:
El ataque Smurf utiliza este mismo mecanismo pero con la IP de origen falseada para que las respuestas las recibiera
un equipo víctima, y en su momento era un ping con alto payload para que el equipo tuviera alta cupación de buffers
cuando recibiese las respuesta de pings. Recordemos la época en que los recursos de CPU y memoria eran escasos.
Un ejemplo sencillo de armado de un paquete tipo Smurf, hoy día los sistemas operativos o algunos firmwares ya vienen
emparchados para no responder estos paquetes. Incuso el comando ip directed-broadcast viene desactivado en las
interfaces de los routers y switches de layer 3 Cisco.
5.- Verificación en el router:
Para realizar este laboratorio en particular debemos verificar que se den determinadas condiciones.
5.1.-
Adyacencias en el router:
Router#sh
ip int brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.0.1 YES manual up up
FastEthernet0/1 192.168.1.1 YES manual up up
Router#
Router#sh
ip route
Codes: C
- connected, S - static, R - RIP, M - mobile, B - BGP
D
- EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1
- OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1
- OSPF external type 1, E2 - OSPF external type 2
i
- IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user
static route
o
- ODR, P - periodic downloaded static route
Gateway of last resort is not set
C
192.168.0.0/24 is directly connected, FastEthernet0/0
C
192.168.1.0/24 is directly connected, FastEthernet0/1
Router#
5.2.-
Activamos el broadcast dirigido:
Router#conf
t
Enter configuration commands, one per
line. End with CNTL/Z.
Router(config)#int fa0/0
Router(config-if)#ip directed-broadcast
Router(config-if)#exit
Router(config)#int fa0/1
Router(config-if)#ip directed-broadcast
Router(config-if)#end
Router#
5.3.-
Verificamos:
Router#sh
ip int
FastEthernet0/0 is up, line protocol is up
Internet address is 192.168.0.1/24
Broadcast address is 255.255.255.255
Address
determined by non-volatile memory
MTU is
1500 bytes
Helper
address is not set
Directed broadcast forwarding is enabled
Outgoing access list is not set
Inbound access list
is not set
Proxy
ARP is enabled
Local
Proxy ARP is disabled
Security level is default
Split
horizon is enabled
ICMP
redirects are always sent
ICMP
unreachables are always sent
ICMP
mask replies are never sent
IP fast
switching is enabled
IP fast
switching on the same interface is disabled
IP Flow
switching is disabled
IP CEF
switching is enabled
IP CEF
Feature Fast switching turbo vector
IP
multicast fast switching is enabled
IP
multicast distributed fast switching is disabled
IP
route-cache flags are Fast, CEF
Router
Discovery is disabled
IP
output packet accounting is disabled
IP
access violation accounting is disabled
TCP/IP
header compression is disabled
RTP/IP
header compression is disabled
Policy
routing is disabled
Network
address translation is enabled, interface in domain inside
BGP
Policy Mapping is disabled
WCCP
Redirect outbound is disabled
WCCP
Redirect inbound is disabled
WCCP
Redirect exclude is disabled
FastEthernet0/1 is up, line protocol is up
Internet address is 192.168.1.1/24
Broadcast address is 255.255.255.255
Address
determined by setup command
MTU is
1500 bytes
Helper
address is not set
Directed broadcast forwarding is enabled
Outgoing access list is not set
Inbound access list
is not set
Proxy
ARP is enabled
Local
Proxy ARP is disabled
Security level is default
Split
horizon is enabled
ICMP
redirects are always sent
ICMP
unreachables are always sent
ICMP
mask replies are never sent
IP fast
switching is enabled
IP fast
switching on the same interface is disabled
IP Flow
switching is disabled
IP CEF
switching is enabled
IP CEF
Feature Fast switching turbo vector
IP
multicast fast switching is enabled
IP
multicast distributed fast switching is disabled
IP
route-cache flags are Fast, CEF
Router
Discovery is disabled
IP
output packet accounting is disabled
IP access
violation accounting is disabled
TCP/IP
header compression is disabled
RTP/IP
header compression is disabled
Policy
routing is disabled
Network
address translation is enabled, interface in domain outside
BGP
Policy Mapping is disabled
WCCP
Redirect outbound is disabled
WCCP
Redirect inbound is disabled
WCCP
Redirect exclude is disabled
Router#
5.4.- En los logs:
Router#
Feb
7
20:33:12: IP: tableid=0, s=192.168.1.10 (FastEthernet0/1), d=192.168.0.255
(FastEthernet0/0), routed via RIB (recepción del unicast)
Feb
7
20:33:12: IP: s=192.168.1.10
(FastEthernet0/1), d=192.168.0.255
(FastEthernet0/0), g=255.255.255.255,
len 60, forward directed broadcast
Feb
7
20:33:12: IP: s=192.168.1.10 (FastEthernet0/1), d=192.168.1.255 (FastEthernet0/1),
len 60, rcvd 5
Feb
7
20:33:12: IP: tableid=0, s=192.168.0.1
(local), d=192.168.1.10
(FastEthernet0/1), routed via FIB (respuesta del router al
broadcast)
Feb 7 20:33:12: IP: s=192.168.1.1 (local), d=192.168.1.10 (FastEthernet0/1), len 60, sending (envía con la IP de la interface mas cercana, ver punto 1.5.1.)
Feb
7
20:33:12: IP: s=192.168.0.10
(FastEthernet0/0), d=192.168.1.10
(FastEthernet0/1), len 60, rcvd 5 (recepción de respuesta del host
al broadcast)
Feb
7
20:33:12: IP: tableid=0, s=192.168.0.10 (FastEthernet0/0), d=192.168.1.10
(FastEthernet0/1), routed via FIB
Feb
7
20:33:12: IP: s=192.168.0.10 (FastEthernet0/0), d=192.168.1.10
(FastEthernet0/1), len 60, sending (envío de respuesta del host)
Router#
6.- Configuración del router:
Router#sh runn (sólo lo mas relevante)
Building configuration...
Current configuration :
1227 bytes
!
hostname Router
!
interface FastEthernet0/0
ip address 192.168.0.1 255.255.255.0
ip directed-broadcast
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.1.1 255.255.255.0
ip directed-broadcast
duplex auto
speed auto
!
end
Router#
(2023) Your broadcast is my broadcast...
Rosario, Argentina