Durante estas semanas en la lista de Elastix , están surgiendo muchas dudas e incertidumbre acerca de la seguridad de Elastix, es por ello que me animé ha publicar esta nota, bueno como saben unos de las cosas a las cuales tengo el gran gusto de trabajar, es a la seguridad e inseguridad, es por ello que constantemente monitoreo y evalúo las plataformas a las cuales tengo a cargo.
En vista de eso, después de unos meses de trifulcas en la red con mi amigos los hackers del lado oscuro 😀 , les voy a mostrar, cuales son los vectores de ataques a nivel web, que los atacantes están usando para tratar de vulnerar nuestra plataforma Elastix, por lo menos durante estos 6 primeros meses del año, para eso primero vamos a definir el escenario.
1.- Escenario
Servidor con dirección IP publica o estática directa hacia internet (sin routers o firewall perimetral)
Plataforma Elastix 2.3.0
Función principal : Solo Central telefónica o conmutador , con 10 extensiones configuradas.
Aplicaciones adicionales desde el Market : Ninguna
Sistemas o aplicaciones de seguridad
– Fail2ban , protegiendo SIP y SSH
– Scripts de IPTABLES ninguno
– Contrafuegos de Elastix sin activar
2.- Revisión de Logs
25/06/2012
69.61.14.2 – – [25/Jun/2012:07:50:51 -0500] «GET /vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../..//etc/amportal.conf%00%20[^] HTTP/1.1» 200 –
69.61.14.2 – – [25/Jun/2012:07:51:26 -0500] «GET /vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../..//etc/amportal.conf%00%20[^] HTTP/1.1» 200 –
80.237.234.150 – – [25/Jun/2012:19:34:29 -0500] «GET //vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?%20module_name=../../../../../../../..//etc/amportal.conf%00%20[^] HTTP/1.1» 200 –
28/06/2012
37.8.39.117 – – [28/Jun/2012:17:56:39 -0500] «GET /vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../..//etc/amportal.conf%00%20[^] HTTP/1.1» 200 –
29/06/2012
66.199.146.125 – – [29/Jun/2012:18:34:38 -0500] «GET /recordings/misc/callme_page.php?action=c&callmenum=7233 HTTP/1.1» 200 –
66.199.146.125 – – [29/Jun/2012:19:31:54 -0500] «GET /recordings/misc/callme_page.php?action=c&call19829291menum=7231 HTTP/1.1» 200 –
30/06/2012
37.75.214.0 – – [30/Jun/2012:14:09:43 -0500] «GET /vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../..//etc/amportal.conf%00%20[^] HTTP/1.1» 200 –
5.11.43.173 – – [30/Jun/2012:14:38:18 -0500] «GET /vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../..//etc/amportal.conf%00%20[^] HTTP/1.1» 200 –
37.8.99.133 – – [30/Jun/2012:18:47:59 -0500] «GET //vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?%20module_name=../../../../../../../..//etc/amportal.conf%00 HTTP/1.1» 200 –
41.238.85.95 – – [30/Jun/2012:19:02:34 -0500] «GET /vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../..//etc/amportal.conf%00 HTTP/1.1» 200 –
04/07/2012
176.9.105.169 – wwwadmin [04/Jul/2012:21:39:58 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – maint [04/Jul/2012:21:40:22 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – admin [04/Jul/2012:21:40:08 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – freepbx [04/Jul/2012:21:40:32 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – asteriskuser [04/Jul/2012:21:40:42 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – asterisk [04/Jul/2012:21:40:54 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – «» [04/Jul/2012:21:41:05 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – txbox [04/Jul/2012:21:41:16 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – root [04/Jul/2012:21:41:28 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – fpbx [04/Jul/2012:21:41:41 -0500] «HEAD /admin/config.php HTTP/1.1» 200 –
176.9.105.169 – – [04/Jul/2012:21:41:51 -0500] «GET /vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../..//etc/amportal.conf%00 HTTP/1.1» 200 –
3.- ANÁLISIS DE ATAQUES RECIBIDOS
Como se puede apreciar , los ataques se pueden resumir , en que los atacantes se basan para para este caso en 3 vectores:
A) Ataque de directorios Transversales vía VTIGER , buscando la pagina «sortfieldsjson.php» para a travez de esta, realizar un escalamiento de directorios transversales, llegando a los archivos de configuración de Asterisk , en este caso «amportal.conf» con el objetivo de poder tener acceso a Freepbx, pero puede tranquilamente escalar hacia otros archivos.
Reporte oficial : http://osvdb.org/show/osvdb/80552
B) Vulnerabilidad Remote Code Execution Exploit FreePBX 2.10.0, esta a estas alturas ya es conocida , si desean mas información pueden encontrarla aquí
C) Acceso de privilegios vía Backdoor Freebx , otra conocida, revelada en el 2010 , la información de ello aquí
4.- CONCLUSIONES Y CONTRAMEDIDAS
– Los ataques recibidos o vulnerabilidad que buscadas los atacantes a nivel web, tienen que ver o con Freepbx o con software tercero como en este caso VTIGER, es decir si tienen este ultimo instalado y lo necesitan, tienen como alterativa o bloquear su acceso desde internet (con cuidado, por supuesto no queremos bloquearnos a nosotros mismos) o realizan la actualización de vtiger en este caso.
– Aun no puedo determinar estas búsquedas de vulnerabilidades, son realizadas de manera manual o con alguna herramienta que automatice los ataques.
– La regla general, no exponer servicios innecesarios hacia internet, como en este caso sera muy conveniente no dejar el interfase de administración web expuesta y buscar un medio seguro de acceso , usando técnicas como VPN o SSH TUNNEL.
– Como yo siempre digo «la seguridad es transitiva» , es decir siempre aparecerán nuevas vulnerabilidades de las cuales los atacantes querrán sacar provecho,esto no es nada nuevo y sucede en todos los sistemas, para ello lo importante, estar al día siempre con los parches de seguridad en general.
Vamos a ver, que nos traen los próximos meses , y contar con la segunda parte del articulo.
PD : El agradecimiento a mi amigo @LeCams en apoyarme como siempre, en los planteamientos de mis post.
Replica a Ludwig Cancelar la respuesta