Inicio > Manuales y tutoriales > DESTRIPANDO 3CX PBX A.K.A. ELASTIX 5

DESTRIPANDO 3CX PBX A.K.A. ELASTIX 5

selection_051

Ahora que ya termine de hacer varios informes de pentesting y con un respiro a cuestas por fiestas de fin de año, decidí darme un vuelta al mundo de la VOIP y ver lo que andaba pasando, después de lo que ocurrido con la venta de Elastix , era motivo de darle una mirada al «nuevo producto» por dentro y ver que tenía.

Ahora como no tengo ni una remota idea de como empezar, hacemos una búsqueda recursiva de la siguiente forma :  find / -name «3cxpbx»

Y nos arroja esto :

/etc/cron.d/3cxpbx
/etc/nginx/sites-enabled/3cxpbx
/etc/sudoers.d/3cxpbx
/usr/lib/3cxpbx
/usr/share/3cxpbx
/var/lib/3cxpbx

Bueno, ya tenemos un punto de partida, empecemos:

1.- Sistema Operativo

Esto debe ser lo mejor que tiene , el sistema está basado en un Debian 8

selection_048

2.- Servidor Web
Primero  no usa Apache si no NGINX lo cual en algún sentido es bueno por las ventajas que tiene, sin embargo ahora las preguntas de rigor

Donde está el directorio de publicación ? correrá PHP ??

En la búsqueda anterior salio la ruta «/etc/nginx/sites-enabled/3cxpbx»

veamos ( captura del fichero)

location /
index index.html;^M
root /var/lib/3cxpbx/Data/Http/wwwroot;
try_files $uri $uri/ @proxy;
}

location /MyPhone {^M
alias /var/lib/3cxpbx/Instance1/Data/Http/Interface/MyPhone;
try_files $uri $uri/ @proxy;
}

identificamos dos directorios la raiz seteada a «/var/lib/3cxpbx/Data/Http/wwwroot» y otra llamada /MyPhone seteada a «/var/lib/3cxpbx/Instance1/Data/Http/Interface/MyPhone»

Vamos al wwwroot y corremos :

touch prueba.html ; echo «ESTO ES UNA PRUEBA» > prueba.html

ingresamos a http://192.168.1.36:5000/prueba.html y nos permite visualizar el archivo.

Ahora vamos con el típico phpinfo.php y oh sorpresa no funciona 😦   es decir no tiene soporte para PHP

selection_041

3.- Base de datos
Luego de indagar sobre el servidor web, ahora ver que BD corre, donde lo saco? ,
revisando por la ruta donde al parecer reside, ubico en la ruta «/var/lib/3cxpbx/Bin» algunos archivos .ini al mismo estilo de Windows 😦

me llamo la atención este en particular : 3CXPhoneSystem.ini en donde ohh sorpresa!! encontré cadenas de conexión a base de datos Postgresql

confNIC = 127.0.0.1
DBPort = 5432
DBName = phonesystem
dbUser = phonesystem
ConfPort = 5485
dbPassword = EF11C93F-3E70-4D6E-A2C9-AC87944EC028

Evidentemente el servidor de BD solo permite conexiones locales, pero ya sabemos que tiene como BD.

4.- Motor de telefonía
Ahora lo mas importante,  tendrá ASTERISK como motor ?

Corremos el comando «asterisk -rx» y nada  entonces que tiene ?

Bueno haciendo unas capturas con Wireshark , la cosa esta se presenta como «3CXPhoneSytem»

selection_043

Y Elastix 5 😦

ahora veamos que servicio lo ejecuta en Linux , ya que quiero saber si tiene alguna interfase de comandos o un CLI al menos.

selection_044

Como vemos tenemos el programa «3CXPbxServer» ahora hacemos una búsqueda y encontramos:

selection_049

Como vemos es un binario que corre como root y además o sorpresa hay una serie de programas adicionales con el mismo nombre que solo dios sabe lo que hacen.

Ahora veamos si el binario ofrece una interfase de comandos :

selection_046

Nos pide ciertos parámetros , los averiguamos dentro los archivos ini  y nuevamente probamos:

selection_050

Definitivamente no hay respuesta.

5.- Conclusiones

Luego de esta revisión bastante rápida, las conclusiones son obvias, sobre todo para los que venimos y somos del mundo Asterisk.

  • La solución no tiene Asterisk , si no su propio desarrollo implementar SIP
  • Al no tener Asterisk no es posible usar AMI, AGI, PJSIP, ARI con lo cual resta mucho, sobre todo a gente como yo que desarrolla y personalizar mucho.
  • No corre PHP , al menos por defecto, si bien es cierto metiéndole mano se podría incluir en NGINX pero no es el caso.
  • No provee una interfase de consola o un CLI , es algo de lo que siempre me quejo de otras soluciones y esta entra a la lista ahora, por ahí vi unos logs pero no basta.
  • Lo único que veo de bueno a nivel de arquitectura es que usa Debian , aunque por hay vi algunos path como «C:\Program Files\3CX Phone System Cloud Server\» que aun se han olvidado sacar.

En resumen :  Elastix 5 o mejor dicho 3CX LINUX no va ser, ni será para mi una opción, basándome solo en algunos detalles claves de su arquitectura, ello sin mencionar las limitaciones (trunk , extensiones) a nivel de la aplicación que tiene, será motivo para ir viendo otras alternativas.

Nota final : Esta es una posición totalmente personal del escritor de este blog, no representa la opinión de ninguna empresa conexa.

 

 

Anuncio publicitario
Categorías: Manuales y tutoriales
  1. diciembre 13, 2016 a las 5:28 pm

    Muchas Gracias mi estimado.
    Me ahorraste mucho tiempo revisando esta distribución que han lanzado. Me sorprendió un correo que llego para ser Partners 3CX y Elastix 5. Lastima que no se parece a las versiones anteriores.
    Ni modo a utilizar otras alternativas.
    Saludos.

  2. Alejandro
    diciembre 13, 2016 a las 6:00 pm

    Muy interesante articulo como siempre, lo que no me queda claro es si, de aquí para delante deja de ser libre elastix o es solo esta versión?

  3. diciembre 13, 2016 a las 6:39 pm

    Excelente.

  4. Diego Perez
    diciembre 14, 2016 a las 3:39 am

    Alejandro según leí deja de ser libre elastix quedará elastix 2.5 pero sin soporte y actualizaciones. En lo personal estoy meditando si instalar freepbx o hacer una instalación de asterisk en centos o debían.

    Muy buen Post.

  5. diciembre 16, 2016 a las 4:49 pm

    para los que quieran ver Elastix resurgir, aunque va a tomar tiempo, echenle un ojo a issabel.org

    registrense y apoyen el proyecto como cada quien pueda

  6. diciembre 23, 2016 a las 12:59 am

    Buenas Noches tengo un problema con esto no se si me podrían ayudar les agradeciese mucho

    root@cristian-virtual-machine:~# apt install sylkserver-webrtc-gateway
    Leyendo lista de paquetes… Hecho
    Creando árbol de dependencias
    Leyendo la información de estado… Hecho
    E: No se ha podido localizar el paquete sylkserver-webrtc-gateway

  1. mayo 22, 2017 a las 4:59 am
  2. agosto 27, 2020 a las 3:06 pm

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: