Ataque de redireccion de llamadas en servidores Asterisk

Contextualización

El protocolo SIP (Session Initialization Protocol) es un protocolo de señalización (application-layer control) creado para administrar sesiones multimedia entre dos o más partes. Muchos se confunden pensando en que el protocolo SIP es quien transporta la voz propiamente dicha pero no es así, esta labor la realiza otro protocolo que veremos más adelante; de lo que sí se encarga SIP es de la comunicación necesaria para establecer una llamada, modificarla, así como para finalizarla.

El protocolo SIP fue diseñado con la premisa de la simplicidad en mente, se trata de un protocolo de texto con mensajes de comunicación sencillos. Inclusive SIP comparte algunos códigos de estatus con HTTP como el familiar “404: Not found” Es un protocolo peer-to-peer.

Es decir que prácticamente toda la lógica es almacenada en los endpoints.

Señalización SIP: Métodos y respuestas

Métodos

Método Descripción
INVITE Invita a un usuario a una llamada.
ACK Facilita el intercambio de mensajes confiables.
BYE Termina una conexión entre usuarios o declina una llamada.
CANCEL Termina un requerimiento o búsqueda por un usuario.
OPTIONS Solicita información acerca de capacidades del servidor SIP.
REGISTER Registra una ubicación de usuario.
INFO Usado para señalización en mitad de sesión. Para intercambiar información.

Respuestas

Response Code Response Category Response Description
100 Informational Trying
180 Informational Ringing
181 Informational Call is being forwarded
182 Informational Queued
200 Success OK
300 Redirection Multiple choices
301 Redirection Moved permanently
302 Redirection Moved temporarily
303 Redirection See other
305 Redirection Use proxy
380 Redirection Alternative service
400 Client Error Bad request
401 Client Error Unauthorized
402 Client Error Payment required
403 Client Error Forbidden
404 Client Error Not found
405 Client Error Method not allowed
406 Client Error Not acceptable
407 Client Error Proxy authentication required
408 Client Error Request timeout
409 Client Error Conflict
410 Client Error Gone
411 Client Error Length required
413 Client Error Request entity too large
414 Client Error Request URI too large
415 Client Error Unsupported media type
420 Client Error Bad extension
480 Client Error Temporarily not available
481 Client Error Call leg/transaction does not exist
482 Client Error Loop detected
483 Client Error Too many hops
484 Client Error Address incomplete
485 Client Error Ambiguous
486 Client Error Busy here
500 Server Error Internal server error
501 Server Error Not implemented
502 Server Error Bad gateway
503 Server Error Service unavailable
504 Server Error Gateway time out
505 Server Error SIP version not supported
600 Global Failures Busy everywhere
603 Global Failures Decline
604 Global Failures Does not exist anywhere
606 Global Failures Not acceptable

SIP y Asterisk

Algunos detalles a tener en cuenta cuando se usa el protocolo SIP con Asterisk son los siguientes:

  • A pesar de que SIP es independiente de la capa de transporte (puede ser usado con TCP, UDP, ATM, X.25, entre otros) en Asterisk su implementación está limitada a UDP.
  • Por omisión se usa el puerto 5060, pero este parámetro se puede modificar en el archivo sip.conf.
  • SIP adolece de problemas de NAT.
  • En Asterisk es posible hacer diagnóstico del protocolo SIP. Se verá esto más adelante.

Arquitectura de una red de VoIP



El Ataque

El ataque, básicamente, consiste en que el atacante debe de esperar a que la victima envié una petición de INVITE a lo que el atacante responde rápidamente con un mensaje SIP de redirección, provocando que la víctima envié de nuevo un INVITE pero esta vez con los datos que el atacante especifico.

El Escenario

El escenario para esta practica es relativamente sencillo, solo se necesita un servidor Asterisk, con un plan de marcacion sencillo, mínimo 3 clientes (para este caso son 3 softphones) y la herramienta RedirectPoison, que puede ser instalada en su maquina o utilizar backtrack que ya la trae instalada. Pasamos a describir cada uno (se tiene en cuenta que por falta de recursos todo se encuentra virtualozado con Virtualbox):

Servidor Asterisk (Elastix) IP 192.168.0.102, tiene configurado tres extensiones 100, 102 y la 105, todo lo demás esta en la configuración por default.

Cliente 1 Softphone Ekiga IP 192.168.0.100 extension 102 –> EXTENSION HACIA DONDE SE REDIRIGEN LAS LLAMADAS

Cliente 2 Softphone Zoiper, en una maquina windows XP, IP 192.168.0.104, extension 100 –> VICTIMA

Cliente 3 Softphone X-lite, en la misma maquina windows XP, IP 192.168.0.104, Extension 105 –> USUARIO CUALQUIERA.

La idea de la practica es marcar desde la extensión victima (100) hacia la extensión usuario cualquiera (105) y que esta llamada sea automáticamente redirigida hacia la extensión 102.

Ahora si manos a la obra.

El demo lo hice en un vídeo para mas facilidad y para que se entienda muchísimo mejor, es mi primer vídeo, no tiene audio, así que por favor mucha paciencia XD, prometo mejorar.

Demostración del ataque

Fuente 1 –> Asterisk

Fuente 2 –> Hacking Exposed VoIP

Bueno espero y les haya gustado y hasta la próxima

No Comments