Pruebas de
agotamiento DHCP y tabla de direcciones MAC en ASA 5505
Fecha: 16 de noviembre del 2016 Clase: CCNA Security
Escenario
En este escenario se intenta realizar una DoS en un ASA 5505 mediante inyección de paquetes DHCP,
y flooding mediante la saturación de la tabla de direcciones MAC del switch interno.
Fuente: www.cisco.com
1.- Pruebas de DHCP
1.1.- Verificación preliminar:
ciscoasa# sh runn | incl dhcpd
dhcpd auto_config outside
dhcpd address
192.168.1.5-192.168.1.132 inside (pool DHCP generado por default)
dhcpd enable inside
ciscoasa#
Si quisieramos aumentar el rango de direcciones ofrecidas no es posible:
ciscoasa(config)# dhcpd address 192.168.1.5-192.168.1.205
inside
Warning, DHCP pool range is limited
to 128 addresses, set address range as: 192.168.1.5-192.168.1.132
ciscoasa(config)#
ciscoasa# sh dhcpd bind
IP address Client Identifier Lease expiration Type
192.168.1.5 001b.387e.f171 3164 seconds Automatic (equipo con herramientas de captura)
192.168.1.6 0024.815c.7510 2375 seconds Automatic(equipo con herramientas de DoS)
ciscoasa#
1.2.- Disparamos el ataque DHCP:
1.3.- Verificamos en el equipo de capturas:
Al ser tráfico DHCP, el handshacking inicial es broadcast, por lo que llegará a todos los dispositivos en la VLAN.
Observamos que el tráfico comienza a fluctuar, las sesiones SSH y de consola se interrumpen.
1.4.- Verificación en el ASA:
ciscoasa#sh dhcpd bind
IP address
Client Identifier Lease
expiration Type
192.168.1.5
fe33.3670.2d6f 53
seconds Automatic
192.168.1.6
32c1.6d75.646e 53
seconds Automatic
192.168.1.7
d71b.f328.3529 40
seconds Automatic
192.168.1.8
7258.6f77.fe76 41
seconds Automatic
192.168.1.9 c35a.fb46.83b2 41 seconds Automatic
192.168.1.10
1169.8243.caee 41
seconds Automatic
---resumido---
192.168.1.130
321f.a40a.d830 41
seconds Automatic
192.168.1.131
ce6d.9018.5a73 41
seconds Automatic
192.168.1.132 9309.5b23.1e36 41 seconds Automatic (pool completo, si un
cliente genuino solicitara
ciscoasa# una IP quedaría afuera del pool sin servicio)
ciscoasa# sh
cpu
CPU utilization for 5 seconds = 89%; 1 minute: 57%; 5 minutes: 41%
ciscoasa#
Posiblemente el procesador queda forzado al máximo debido a que debe buscar dentro de la tabla DHCP una
IP disponible en la tabla llena cada vez que debe realizar una oferta, al tener una alta demanda de solicitudes,
la búsqueda se realiza cada vez, demandando ciclos de CPU.
ciscoasa#sh
switch mac-address-table | incl Total
Total Entries: 8225
ciscoasa#
Podemos observar el máximo de direcciones MAC aprendidas, esto se debe a que Yersinia para
poder solicitar direcciones diferentes cada vez, debe generarlas desde una MAC diferente, de lo
contrario obtendría siempre la misma IP “bindeada” (asociada) a dicha MAC.
Esta condición también genera flooding en la VLAN correspondiente.
2.- Pruebas de CAM overflow
2.1.- Disparamos el ataque
2.2.- Verificación en la PC de capturas
La herramienta macof dispara flloding de tráfico pero no genera una DoS por saturación.
2.3.- Verificación en
el ASA
ciscoasa# sh
switch mac-address-table
Legend: Age - entry expiration time in seconds
Mac
Address | VLAN | Type | Age | Port
-------------------------------------------------------
001b.387e.f171 | 0001 |
dynamic | 287 | Et0/5
30e4.db69.bc2c
| 0001 | static |
- | In0/1
0ae5.1e6c.2f44 | 0001 |
dynamic | 0 |
In0/3
1a2b.9e0f.dbce
| 0001 | dynamic |
0 | In0/3
881b.cccc.9a8b | 0001 |
dynamic | 0
| In0/3
---resumido---
ffff.ffff.ffff | 0001 | static broadcast |
- | In0/1,Et0/0-7
30e4.db69.bc2c | 0002 | static | - | In0/1
ffff.ffff.ffff | 0002 | static broadcast |
- | In0/1,Et0/0-7
Total Entries: 8225 (luego de que la consola se interrumpe y se recupera)
ciscoasa#
3.1.- Contramedidas
No se pudieron encontrar contramedidas para el ataque DHCP ni limitaciones de MAC para el ASA 5505,
generalmente en un ambiente mediano-grande esta protección se ofrece en el switch de acceso mediante
la función port-security con la limitación de 1 dirección MAC por puerto (o la cantidad necesaria).
En el ASA esta funcionalidad no es posible.
ciscoasa# conf t
ciscoasa(config)# s? (buscamos “switch algo”)
configure mode commands/options: (nada)
same-security-traffic service service-policy setup
sla
smtp-server smtps snmp
snmp-map
snmp-server ssh ssl
sunrpc-server sysopt
exec mode commands/options: (nada)
session show shun
ssh
*s=show
ciscoasa(config)# mac?
configure mode commands/options:
mac-list (permite generar una ACL de direcciones MAC pero sólo para AAA 802.1x, no para este caso)
ciscoasa(config)# int eth0/3
ciscoasa(config-if)# switchport ? (buscamos comandos parecidos a portsecurity de IOS)
interface mode commands/options:
access Set access mode
characteristics of the interface
mode Set trunking mode of
the interface
monitor Monitor another
interface
protected Configure an interface
to be a protected port (previene la comunicación entre
puertos protegidos
trunk Set trunking
characteristics of the interface dentro de la misma VLAN)
ciscoasa(config-if)#
Por lo tanto, con este equipo y un par de dispositivos conectados a el estamos vulnerables a este tipo de ataque.
4.- Pruebas de DoS DHCP en un server configurado en un Cisco 1941:
Repetimos las pruebas utilizando un Cisco 1941 con IOS 15 para verificar si esta vulnerabilidad existe.
4.1.- Limpiamos el pool DHCP
Cisco1941#clear ip dhcp bind *
4.2.- Verificamos
Cisco1941#sh ip dhcp bind
Cisco1941#
4.3.- Lanzamos el ataque
Cisco1941#sh proc | incl cpu CPU
CPU utilization for five seconds: 99%/51%; one minute: 61%; five minutes:
30%
Cisco1941#
Cisco1941#sh
ip dhcp bind
Bindings from all pools not associated with
VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
--- la IP .1 es la del propio router ---
192.168.72.2 90b6.b827.82f2 Nov 15 2016 09:39 PM Automatic
--- resumido, ofrece todas las direcciones disponibles en la subred ---
192.168.72.252 4294.7b0f.6274 Nov 15 2016 09:39 PM Automatic
192.168.72.254 1540.0b22.01d2 Nov 15 2016 09:39 PM Automatic
Cisco1941#
4.4.- Detenemos el ataque
Cisco1941#sh proc | incl CPU
CPU utilization for five seconds: 99%/51%; one minute: 45%; five minutes:
42%
Cisco1941#sh
proc | incl CPU
CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes:
16%
Cisco1941#
En este caso, la recomendación también es la limitación de direcciones MAC por puerto en los switchs de acceso.
(2016) Sensei, this is a
tsunami packets ?
Rosario, Argentina