IAXflood: Ataque VoIP en Kali Linux

https://www.onlinetis.com

IAXflood: Ataque VoIP en Kali Linux

Para realizar una prueba de inundación IAX (IAXflood) en Kali Linux, generalmente se utiliza la herramienta IAXflood, que forma parte del conjunto de utilidades para auditoría de VoIP.

El protocolo IAX2 (Inter-Asterisk eXchange) es utilizado por servidores Asterisk. Un ataque de este tipo busca saturar el ancho de banda o los recursos del servidor enviando una ráfaga masiva de paquetes "IAX2 POKE".

Pasos para usar IAXflood en Kali Linux

  1. Instalación:

    Si no la tienes instalada, puedes obtenerla desde los repositorios oficiales:

    Bash
    sudo apt update
    sudo apt install iaxflood
    
  2. Sintaxis básica:

    La estructura del comando es la siguiente:

    iaxflood [IP_Origen] [IP_Destino] [Número_de_paquetes]

  3. Ejemplo de ejecución:

    Si quieres enviar 10,000 paquetes desde una IP ficticia (o la tuya) hacia tu servidor de pruebas:

    Bash
    iaxflood 192.168.1.50 192.168.1.100 10000
    

Consideraciones Importantes

  • Propósito: Esta herramienta se utiliza en pruebas de estrés para verificar cuántas conexiones simultáneas o qué nivel de tráfico malformado puede soportar una centralita VoIP antes de degradar la calidad de la voz o dejar de responder.

  • Mitigación: Para proteger un servidor Asterisk contra esto, se suelen configurar reglas de iptables para limitar la tasa de paquetes (rate limiting) o usar módulos como fail2ban.

  • Ética: Recuerda que realizar estas pruebas en redes o servidores sin autorización previa es ilegal. Úsalo solo en entornos de laboratorio controlados.

¿Cómo funciona a nivel técnico?

El ataque aprovecha que IAX2 es un protocolo basado en UDP. Al no requerir un "apretón de manos" complejo como TCP, es muy fácil falsificar la IP de origen y enviar miles de solicitudes de "asiento" o "saludo" que el servidor intenta procesar, agotando su CPU o su tabla de conexiones.

 

Para proteger un servidor (como un Asterisk) contra ataques de denegación de servicio (DoS) por inundación de paquetes UDP/IAX2, la herramienta más efectiva y rápida es iptables.

Aquí te presento una configuración para aplicar un Rate Limiting (limitación de tasa). Esto permitirá el tráfico normal, pero descartará las ráfagas excesivas que caracterizan al iaxflood.

Configuración de Firewall (iptables)

Ejecuta estos comandos como superusuario para limitar las conexiones al puerto por defecto de IAX2 (4569):

Bash
# 1. Crear una cadena personalizada para IAX-FLOOD
sudo iptables -N IAX-FLOOD

# 2. Enviar el tráfico del puerto 4569 a esa cadena
sudo iptables -A INPUT -p udp --dport 4569 -j IAX-FLOOD

# 3. Establecer el límite: máximo 10 paquetes por segundo, con ráfaga de 20
sudo iptables -A IAX-FLOOD -m limit --limit 10/s --limit-burst 20 -j RETURN

# 4. Si excede el límite, registrar el ataque (opcional) y soltar el paquete
sudo iptables -A IAX-FLOOD -j LOG --log-prefix "IAX2-FLOOD-ATTEMPT: "
sudo iptables -A IAX-FLOOD -j DROP

Explicación de la estrategia

  • --limit 10/s: Define cuántos paquetes "buenos" permitimos en promedio por segundo.

  • --limit-burst 20: Es el margen de maniobra. Permite un pico repentino de hasta 20 paquetes antes de empezar a aplicar la restricción estricta.

  • DROP: En lugar de rechazar el paquete (REJECT), simplemente lo ignoramos. Esto ahorra recursos del CPU, ya que no enviamos una respuesta de error al atacante.

Una alternativa más robusta: Fail2Ban

Si prefieres algo automatizado que bloquee la IP del atacante por un tiempo determinado (por ejemplo, 1 hora), te recomiendo usar Fail2Ban. Este lee los logs de Asterisk y, si detecta demasiados intentos fallidos o tráfico anormal, banea la IP automáticamente.

Nota: Estas reglas son volátiles. Si reinicias el servidor, se borrarán. Para hacerlas permanentes, deberás usar un paquete como iptables-persistent.

Configurar Fail2Ban es una de las mejores decisiones que puedes tomar para proteger un servidor de telefonía (VoIP). A diferencia de las reglas estáticas de iptables, Fail2Ban es dinámico: "observa" los logs de Asterisk y, si ve un comportamiento sospechoso, bloquea la IP del atacante automáticamente por el tiempo que tú decidas.

Aquí tienes los pasos para dejarlo listo en un sistema basado en Debian/Ubuntu o Kali:

1. Instalación de Fail2Ban

Primero, asegúrate de tener la herramienta instalada:

Bash
sudo apt update && sudo apt install fail2ban -y

2. Configurar el "Jail" (Cárcel) para Asterisk

Debemos crear un archivo de configuración específico para que Fail2Ban sepa qué buscar. No edites el archivo original jail.conf, mejor crea uno nuevo:

Bash
sudo nano /etc/fail2ban/jail.local

Pega el siguiente contenido al final del archivo:

Ini, TOML
[asterisk]
enabled  = true
filter   = asterisk
port     = 5060,5061,4569
logpath  = /var/log/asterisk/messages
maxretry = 5
findtime = 600
bantime  = 3600
action   = iptables-allports[name=asterisk]

¿Qué significa esto?

  • port: Protegemos SIP (5060/5061) e IAX2 (4569).

  • maxretry: Si hay 5 intentos fallidos o ataques...

  • findtime: ...en un lapso de 600 segundos (10 minutos)...

  • bantime: ...la IP se bloquea por 3600 segundos (1 hora).


3. Verificar el Filtro

Fail2Ban ya trae un filtro por defecto para Asterisk en /etc/fail2ban/filter.d/asterisk.conf. Este filtro utiliza Expresiones Regulares (Regex) para detectar mensajes de error como:

  • "Registration failed"

  • "No profile found"

  • "Attack detected"


4. Reiniciar y Verificar

Para que los cambios surtan efecto, reinicia el servicio:

Bash
sudo systemctl restart fail2ban

Para ver si la "cárcel" de Asterisk está activa y si hay IPs bloqueadas, usa este comando:

Bash
sudo fail2ban-client status asterisk

Un detalle crucial

Para que esto funcione, Asterisk debe estar registrando los eventos correctamente. Asegúrate de que en tu archivo /etc/asterisk/logger.conf tengas habilitada la línea de logs:

messages => notice,warning,error

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux