32
Configuración de un laboratorio VoIP para pruebas de penetración

VoIP Pentest Lab BusyTone

Embed Size (px)

Citation preview

Configuración de un laboratorio VoIP para

pruebas de penetración

Configuración de un laboratorio VoIPpara pruebas de penetración

Busy Tone GroupDaniel Rodríguez Rodríguez

Security ResearcherAgosto 2012

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Tabla de Contenido

Acerca de Esta GuíaRequisitos:

HardwareSoftware

Descripción del Entorno VoIPEntorno Asterisk

Configuración Máquina VirtualInstalación ElastixConfiguración ElastixConfiguración Cliente Windows

Entorno FreeSwitchConfiguración Máquina VirtualInstalación FusionPBXConfiguración Cliente Linux

Configuración Máquina AtacanteConclusiones

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Acerca de Esta GuíaComo parte del proceso de aprendizaje en temas de seguridad es indispensable contar con las                           herramientas necesarias para poder generar pruebas de seguridad en entornos específicos,                   para este caso particular, entornos de Voz sobre IP (VoIP). Durante esta guía veremos como                           configurar y colocar en marcha un entorno virtualizado de VoIP el cual permitirá realizar                         pruebas de seguridad para encontrar vulnerabilidades, mejorar la seguridad de los sistemas de                       PBX, y establecer mejores prácticas para este tipo de entornos.

Esta guía se desarrolla con fines educativos, los escenarios que se establecen en este                         documento son escenarios de prueba, la configuración realizada en esta guía no debe ser                         aplicada a entornos en producción ya que aquí no se establecen las mejores prácticas de                           configuración y seguridad, los entornos instalados contienen configuraciones y/o servicios por                   defecto.

Requisitos:A continuación se enumeran los requisitos para poder configurar de forma óptima el laboratorio                         de Pentest para VoIP. El laboratorio puede ser instalado sobre cualquier sistema operativo ya                         que todas las plataformas serán virtualizadas.

Hardware● Procesador: 2 GHz o superior● RAM: 4 GB● Disco Duro: 20 GB disponibles● Tarjeta de Red: 100 Mbps

Software● VirtualBox: https://www.virtualbox.org/wiki/Downloads● Elastix: http://www.elastix.org/index.php/es/descargas/distro­principal.html● FusionPBX: http://www.fusionpbx.com/downloads● SFLPhone: http://sflphone.org/download/stable­release● 3CX: http://www.3cx.es/voip­telefono/index.html

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Descripción del Entorno VoIPPara la configuración del entorno de Pentest VoIP vamos a trabajar con Virtualbox o VMware                           Player como herramientas de virtualización, FreeSwitch y Asterisk como plataformas de VoIP                     y Backtrack será la distribución para realizar las pruebas de seguridad sobre el entorno VoIP.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Entorno AsteriskLa primera plataforma a configurar en el laboratorio será un servidor asterisk, se ha                         seleccionado la plataforma Elastix debido a que es una de las distribuciones para VoIP y                           Comunicaciones Unificadas con Asterisk más populares en la actualidad, Elastix permite que                     desde un archivo .ISO podemos instalar sistema operativo (CentOS), servidor asterisk, interfaz                     de administración para el PBX, módulo de firewall, Call Center y otros servicios como FAX,                           Email, CRM, Bases de Datos y Mensajería instantánea.

Configuración Máquina Virtual

Descargar Elastix desde: http://www.elastix.org/index.php/es/descargas/distro­principal.html

Crear una nueva máquina virtual, con tipo de Sistema Operativo Redhat

Establecer mínimo 256 Mb en memoria RAM (mínimo) 512 Mb (recomendado)

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Crear un nuevo disco duro virtual, recomendado 8 GB

Una vez creada la máquina se debe asignar la imagen .iso de Elastix a la Unidad de CD de lamáquina virtual.

La tarjeta de red se debe asignar en modo Adaptador puente o Bridge, asociando eldispositivo físico de nuestra máquina física.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Iniciar la máquina virtual.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Instalación ElastixPara iniciar la instalación de Elastix presionamos la tecla enter cuando aparezca la siguientepantalla.

Seleccionamos el idioma de instalación

Seleccionamos la distribución de teclado

Aparecerá el siguiente mensaje indicando que no se pudo leer la tabla de particiones, paracontinuar seleccionamos la opción Si, de esta forma se preparará el disco duro.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Para el tipo de particionamiento seleccionamos la opción 3, de esta forma se crea elparticionamiento predetermindado.

Para continuara seleccionamos la opción Aceptar

Habilitamos la tarjeta de red detectada por el sistema y el soporte para IPv4

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Podemos establecer una IP Fija para la tarjeta de red o dejarlo por DHCP, este casoseleccionamos la opción DHCP.

Seleccionamos el huso horario correspondiente a nuestra región.

Establecemos una contraseña para el usuario root y la confirmamos.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Tras configurar las opciones básicas de instalación comenzará la instalación de paquetes.

Establecemos la contraseña de My SQL para el usuario root.

Establecemos la contraseña para el usuario admin, esta contraseña se configura para acceder

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

a la administración de Elastix, FreePBX, VTiger, A2Billing y Flash Operator Panel.

De esta forma finalizará la instalación de Elastix, ingresamos con el usuario root y la contraseñacorrespondiente, verificamos la dirección IP (comando ifconfig) asignada por el servidorDHCP, ya que para configurar Elastix debemos ingresar a través de un navegador Web.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Configuración Elastix

Ingresamos al panel de administración de Elastix desde un navegador, a través de la url:https://ip­server

Al ingresar veremos el Dashboard principal, allí se puede observar un panel que indica elestado de los procesos., En el menú principal damos clic sobre la opción PBX.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

En el menú de la izquierda, dentro de la sección Basic seleccionamos la opción Extensions,seleccionamos en la lista Device la opción Generic Sip Device y damos clic en Submit.

En User Extension establecemos el número de la extensión para este laboratorio será la 1001y en Display Name colocamos un nombre que identificará a la extensión.

En la sección Device Options establecemos el parámetro secret, esta será la contraseña conla cual se registrará la extensión SIP.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Para finalizar la creación de la extensión damos clic en el botón submit, los demás campos son                               opcionales.

De este mismo modo crearemos unas cuantas extensiones.

Configuración Cliente WindowsEn esta sección vamos a configurar un softphone para Windows, trabajaremos con 3CX perocualquier otro cliente en cualquier sistema operativo funcionará similar.

Ejecutamos el instalador de 3CX y seguimos el asistente de instalación.

Al finalizar la instalación ejecutamos el 3CXPhone

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

La primera vez que iniciemos el Softphone, nos informará que no existe un perfil SIP,seleccionamos la opción Create Profile.

Creamos una  cuena ingresando a la opción New

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

En account name, ingresamos un nombre que describa la cuenta, en Caller ID establecemos el                           Identificador de la cuenta. En la sección credentials colocamos el número de la extensión, el ID                             y la contraseña correspondiente y en la sección Specify the IP of your PBX, colocamos la ip                               de nuestro PBX.

Guardamos la cuenta presionando el botón OK

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

El softphone debe registrarse contra el PBX, mostrando un mensaje de disponible (Available)

Para verificar marcamos *65 de esta forma nos contestará el servidor indicandonos el número                         de la extensión.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Entorno FreeSwitchPara el entorno con FreeSwitch vamos a instalar la distribución FusionPBX.

Configuración Máquina Virtual

Descargamos la imagen .iso del instalador de FusionPBX desde la siguiente URL.http://www.fusionpbx.com/downloads/iso/centos/Fusionpbx­1.0­i386­BalajiBHR.iso

Creamos una nueva máquina en VirtualBox con las siguientes características :

Nombre: FusionPBXSistema operativo: Linux ­ Red HatMemoria RAM: 512Disco Duro: 8 GBTarjeta de Red: Bridge (Puente)

Asignamos la imagen .ISO a la unidad de cd de la máquina virtual.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Instalación FusionPBX

Al iniciar desde el CD de instalación aparece la opción para instalar FusionPBX con MySQL oPostgreSQL. En el mensaje boot, presionamos enter o la opción que deseemos, en este casoal presionar enter se instalará por defecto con MySQL.

El proceso de instalación tardará unos minutos, y solo debemos reiniciar para finalizar.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Luego del primer inicio de FusionPBX aparecerá un mensaje que nos informa las credencialesde acceso al sistema y a la base de datos. (Importante realizar el cambio de las contraseñaspor defecto.)

Configuración FusionPBX

Ingresamos con el usario root al sistema y procedemos a crear  la base de datos de nuestroPBX.

Ingresamos a MySQLmysql -u root -p

Creamos la base de datos, en este caso la llamamos fusionpbx:create database fusionpbx;

Debemos recibir un mensaje como este:

Salimos de la consolo de mysql con el comando exit

Verificamos la dirección ip de nuestro servidor con el comando ifconfig

En caso de que no tengamos asignada una dirección IP podemos establecerla manualmente,                       ingresamos el comando setup, aparecerá un menú ingresamos a la sección Network                     

Configuration y establecemos los parámetros de red.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Una vez establecidos los parámetros de red, volvemos al menú con la tecla ESC yseleccionamos la opción Save&Quit

Por último reiniciamos el servicio de red con el comando service network restart

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Ingresamos desde un navegador web a la dirección de nuestro PBX: http://ip­server/install.php

Seleccionamos el tipo de base de datos, en este caso MySQL, el directorio de freeswitch/usr/local/freeswitch  y en PHP Directory: /usr/bin

En esta parte configuramos los datos de conexión a la base de datos (host, puerto, nombre dela base de datos, usuario y contraseña)

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Si todo salió correctamente aparecerá un mensaje que nos indica que la instalación se ha                           completado y nos informa los usuarios y contraseñas para acceder al panel de administración                         de FusionPBX.

Ingresamos al panel de administración,  primero vamos a crear un usuarios, vamos al menúAccounts y luego a User Manager

Para crear un nuevo usuario damos clic en el botón   e ingresamos los datoscorrespondientes.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Para crear una extensión vamos a Accounts / Extensions y damos clic sobre el icono 

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Inicialmente colocaremos el número de la extensión, en rango dejamos 1, seleccionamos el                       usuarios de la lista y damos clic en el botón Save.

En este caso, la contraseña de la extensión fue generada aleatoriamente, para validar o                         cambiar la contraseña editamos la extensión y nos ubicamos sobre el campo

Configuración Cliente LinuxEn esta parte vamos a configurar un cliente SIP para linux, aunque vamos a trabajar con                             linphone para comunicarnos con el FreeSwitch, se puede utilizar cualquier otro softphone, la                       configuración es similar.

para instalar linphone en debian o ubuntu se debe ejecutar: sudo apt-get install linphone

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Ejecutamos linphone y configuramos una cuenta SIP.

Vamos al menú Linphone/ Preferencias /  y luego vamos a la pestaña Manage SIP Accounts

Para agregar una nueva cuenta damos clic en el botón añadir 

Ingresamos los datos de la cuenta ej: SIP:[email protected]  y en el proxy SIP:192.168.0.11

Al aceptar la configuración aparecerá un mensaje solicitando la contraseña de la extensión,                       ingresamos la contraseña y Aceptamos, con esto ya tendremos registrada la extensión.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Para verificar el registro podemos marcar *9197 o *9198, al llamar se deben escuchar unostonos de prueba.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Configuración Máquina AtacantePara realizar las pruebas de seguridad a las plataformas de VoIP utilizaremos la distribuciónBacktrack que se puede descargar desde la siguiente URL:http://www.backtrack­linux.org/downloads/

Allí seleccionamos la versión a descargar, arquitectura, tipo de imagen y tipo de descarga, para                           este laboratorio descargamos la versión 5R3, 32 bits, ISO o Imagen de VMware, Descarga                         directa o Torrent.

Una vez descargado procedemos a configurar una nueva máquina virtual en VirtualBox,configuramos la red en modo puente (bridge), 512 MB de Memoria RAM, si descargamos laimagen de VMWare cargamos el disco duro (VMDK) a la configuración de disco de virtualbox,en el caso de la imagen .ISO lo asignamos a la unidad de CD.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Iniciamos la máquina virtual e iniciamos con el usuario root y contraseña toor,  luego iniciamosel entorno de escritorio (gnome) con el comando startx

Backtrack cuenta con una serie de herramientas dedicadas a pruebas de pentest en VoIP que                           se encuentran dentro de la carpeta /pentest/voip estas herramientas serán explicadas en                     próximas guías.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012

Conclusiones● El desarrollo de un ambiente de prueba, nos permite crear un espacio controlado, donde                         

podemos revisar características de las soluciones instaladas y herramientas de ataque                   y defensa en un marco totalmente práctico.

● Durante esta guía se pudo evidenciar que con unos cuantos pasos se puede colocar en                           funcionamiento una plataforma de VoIP, en muchas oportunidades se realizan                 configuraciones simples sin pensar en aspectos de seguridad y desafortunadamente,                 muchas veces las instalaciones solamente se reducen a estos simples pasos.

● Al contar con un laboratorio para pruebas de seguridad de VoIP se pueden realizar                         pruebas de concepto sobre los nuevos ataques a este tipo de plataformas, de esta                         forma se puede analizar como funcionan y cómo se pueden contrarrestar los ataques.

● Los ambientes controlados permiten el desarrollo de nuevas necesidades, falencias y                   desarrollos en cuanto a aspectos de seguridad, comprendiendo un ambiente real, sin                     generar posibles afectaciones a plataformas no autorizadas.

Busy Tone Group |  http://www.busy­tone.org | @BusyToneGroup | 2012