Auditando sistemas de VoIP con SIPPTS (2/2)

Siguiendo con la entrada anterior Auditando sistemas de VoIP con SIPPTS (1/2) voy a explicar el resto de scripts que incorpora la herramienta SIPPTS. Ya explique cómo usar el script SIPDigestLeak en este post Atacando dispositivos VoIP para intentar obtener un hash de autenticación de un dispositivo, y posteriormente realizar fuerza bruta con la ayuda de un diccionario. Por otro lado, tenemos SIPSniff, que es un pequeño sniffer que monitoriza el puerto 5060/udp y que muesta los mensajes que captura. Hay que ejecutarlo como root y tiene 2 modos de funcionamiento. Podemos simplemente pedirle que nos muestre los mensajes que

Sigue leyendo

Auditando sistemas de VoIP con SIPPTS (1/2)

Han pasado ya 4 años desde que subí la primera versión de SIPPTS a Google Code y la verdad es que nunca he llegado a escribir un post comentando su funcionamiento, así que, unas versiones más tarde, vamos a analizar y poner algunos ejemplos de cómo usar esta herramienta para realizar auditorías de VoIP. Por cierto, no tengo logo en la herramienta porque el diseño y yo no nos llevamos bien, pero si alguien se presta a hacer alguno, será bien recibido 🙂 Actualmente podemos descargar SIPPTS desde Github y su uso es totalmente gratuito. Por supuesto, he de recordar

Sigue leyendo

Atacando dispositivos VoIP

Normalmente los ataques contra sistemas de VoIP son ataques no dirigidos, es decir, aplicaciones que envían mensajes SIP bien formados a grandes rangos de red, bien tratando de localizar sistemas, de enumerar o crackear extensiones, o de intentar llamar aprovechando una mala configuración. Al ser herramientas más que conocidas, el 99% sobre UDP, y además ser ataques siempre contra una dirección IP y no contra un dominio, suele ser fácil su detección y bloqueo. Una política básica de seguridad donde bloqueemos ciertos agentes de usuarios y donde forcemos el uso de dominios suele eliminar un alto porcentaje de ataques. A

Sigue leyendo

Writeup CTF nn6ed crypto 1 y 2

Aquí va el solucionario de los dos retos web. El primero es muy sencillo y el segundo ha sido un gran quebradero de cabeza para mucha gente 🙂 Como siempre digo, aquí en el write-up se ve todo muy sencillo, pero ha sido una prueba dura e interesante en la que he aprendido mucho. En este reto tenemos lo que parece una imagen para descargar. Tras hacerlo vemos que da error al cargar y si la abrimos con un editor hexadecimal, nos damos cuenta de que las cabeceras son erróneas: Tras arreglar las cabeceras ya se ve la imagen: Para pasar

Sigue leyendo

Jugando con VulnVoIP

El otro día impartí una clase en el Curso de Seguridad Informática y Ciberdefensa de Criptored (http://www.criptored.upm.es/formacion/ciberdefensa/TemarioCursoCiberdefensa3.pdf) por tercer año consecutivo y, esta vez, por hacer la clase un poco más amena, decidí realizar una demo sobre un ataque a un máquina vulnerable. Escogí para ello Vulnvoip que podéis descargar aquí: http://www.rebootuser.com/?page_id=1739 y donde podéis seguir una guía de cómo explotarla aquí: http://www.rebootuser.com/?p=1117 Concretamente la máquina es una FreePBX con una versión de Asterisk bastante antigua y con más agujeros que un queso gruyer. Si echáis un ojo al ‘solucionario’ de rebootuser podéis ver cómo usando SipVicious es muy sencillo enumerar las

Sigue leyendo

Sending fake auth for device XXX

Si administras  un Asterisk con conexión desde Internet seguro que habrás visto en los logs este mensaje muchísimas veces – por cierto, si tu Asterisk NO debe estar accesible desde Internet y ves esto en los logs o en la consola, ve revisando con urgencia la configuración de tu Router/Firewall 🙂 Lo normal es ver algo así en la consola: Bueno, ¿y qué tiene esto de especial o de raro? Pues que la IP que aparece NO es la del atacante, sino la de nuestro servidor Asterisk. Esto la verdad es que deja fuera de juego a mucha gente; primero porque

Sigue leyendo

Protegiendo nuestro sistema de VoIP con Kamailio

  Cuando se gestiona una centralita local, lo normal es no tener ningún tipo de puerto abierto al exterior, dado que las conexiones las realizamos siempre nosotros hacia nuestro proveedor de VoIP. A no ser que realicemos una validación por IP, con lo que deberemos permitir el acceso a nuestro puerto SIP única y exclusivamente a la IP que nos facilite nuestro(s) operador(es). En el caso de que administremos un sistema más complejo, o simplemente, ofrezcamos servicios de VoIP a terceros, seguramente tendremos otros elementos involucrados en nuestro sistema, como servidores proxy. En mi último post – guau! hace más de 1 año

Sigue leyendo

FreePBX for Fun & Profit

Hace unos días salió publicado el vídeo de mi charla en la RootedCon 2013, sobre un análisis de seguridad en plataformas basadas en Asterisk del tipo FreePBX, Elastix o Trixbox. Lo podéis ver aquí: Los slides se pueden ver o descargar en Slideshare: Y los dos scripts usados durante la charla: Primer script: Segundo script: Saludos!

Sigue leyendo

Asterisk – INVITE attack (II)

Hace casi un año (cómo pasa el tiempo) escribí una entrada sobre cómo es posible realizar llamadas a través de un sistema de VoIP sin disponer de ninguna cuenta en el sistema, si se diera el caso de que el servidor no está bien configurado. Si no has leído la entrada, la puedes ver aquí: Asterisk – INVITE attack Tal y como comenté, en la web de Sinologic podemos comprobar si nuestro servidor es vulnerable ante estos ataques, pero para una mejor comprensión, he programado un pequeño script con el que podemos comprobarlo: El script únicamente admite un host a

Sigue leyendo

PlaidCTF – RoboDate write-up

Este es otro reto de los medio-fáciles, pues también valía sólo 100 puntos. El enunciado decía: So apparently robots, despite their lack of hormones, still have an underlying desire to mate. We stumbled upon a robot dating site, RoboDate. Hack it for us! La URL del reto es: http://23.20.214.191/59ec1e5173d9cb794f1c29bc333f7327/ y tras acceder, si editamos el código fuente aparecía: Con lo cual, intentamos cargar la página de login pasando como parámetro los campos username y status: http://23.20.214.191/59ec1e5173d9cb794f1c29bc333f7327/login.py?username=pepe&status=1 Esto nos redirigía a otra página: http://23.20.214.191/59ec1e5173d9cb794f1c29bc333f7327/frontpage.py?token=13074cdda7654e75690573228d2cf91881f471a2ebc0c16c27250089e088a19c De nuevo, editando el código fuente veíamos algo así: Tras varias pruebas intentando crear un tercer parámetro

Sigue leyendo