1. Vulnerabilidades Maquina Elastix BusyTone by Jennifer Murillo Areiza a.k.a r3ss1d3nt Para Resolver el Reto iré organizando la información obtenida en las siguiente Fases. 1. Recopilación de Información . 2. Enumeración 3. Explotación 1. Recopilación de Información Para identificar la maquina que tiene el Asterisk configurado utilizare la herramienta NMAP. El rango de direcciones de mi red es 172.16.50.0/24. Pasare nmap por la red para identificar la máquina de Elastix. En esta fase es importante correr diferentes herramientas para asegurarnos que encontramos la maquina que realmente se quiere auditar, entre ellas las recomendadas son ZenMap, Cain & Abel, LanMap etc. El resultado de NMAP es el siguiente.
Asumo que la maquina tiene la ip 172.16.50.247 porque es una máquina que no es conocida en mi red. Lo siguiente será hacerle un análisis mas exhaustivo a la ip para ver que mas podemos encontrar. Para esto le diremos a NMAP que escanee un rango de puertos incluyendo los no conocidos para obtener mejores resultados.
2. Mirando el resultado que arroja NMAP con el analisis mas exhaustivo, comprobamos que efectivamente es la maquina que corre Asterisk por que se muestra que se corren servicios como HYLAFAX, un servicio desconocido en el puerto 5038 "Generalmente es el puerto del AMI (Asterisk Manager Interface)" y haciendo pruebas a los puertos nos encontramos con la administración grafica de la planta en el puerto 443 :D.
3. 2. Enumeración Teniendo Ya Información para iniciar la auditoria el objetivo del Reto será:
Enumerar Versiones De Asterisk y Gestión Grafica
Enumerar Extensiones en El sistema.
Para encontrar la versión del Asterisk y su software de gestión asociados utilizare una herramienta llamada sipvicious. Es una herramienta bastante rápida para auditar Centrales IP . Con esta herramienta podemos
Realiza búsquedas de Servidores PBX y Dispositivos SIP en la red
Ver Extensiones Activas
Realizar Ataques de Fuerza Bruta a los Password de las extensiones
Generar Informes a diferentes formatos.
Para el caso vamos a utilizar la las 3 primeras opciones y el manejo de la herramienta es muy fácil así que no hay pierde. Para Realizar búsquedas de servidores utilizamos el script llamado svmap.py con la siguiente sintaxis. ./svmap.py Red -p "Rango de Puertos". Generalmente las plantas y dispositivos SIP se encuentran en los puertos 5060 a 5070.
y el resultado que arroja son todos los dispositivos SIP que encuentra en ese rango de Puertos, En el ejemplo Encuentra la planta que la ip 172.16.50.247 como lo había encontrado en la primera fase, tambien encuentra que tienen una versión de FreePBX 2.8.1 y además encuentra un Linksys PAP2 de prueba que tengo en la red. Para encontrar el Fingerprint utilizamos la opción "--fp" al final del comando y obtenemos este resultado.
4. Enumeración de Extensiones Para la enumeración de extensiones utilizaremos de nuevo la herramienta SIPVICIOUS. El script que corresponde utilizar se llama svwar.py y la sintaxis del comando es ./svwar.py IPSERVIDOR -eRango de extesiones -m INIVITE
5. Con esta herramienta Encontramos extensiones entre la 2000 a 2002. 1000 a 1002 y 3000 a 3002. Otra herramienta muy útil para encontrar extensiones validas en el sistema se ENUMIAX. Es también muy practica como SIPVICIOS por que tratara de encontrarnos la contraseña de la extensión en el momento del escaneo con Extensiones IAX. La sintaxis de comando es ./enumiax -v "Para que muestre en pantalla que está haciendo" -m"tamaño mínimo de caracteres del usuario" -M"Tamaño máximo de caracteres" IPDELSERVIDOR
En este caso no encontramos Extensiones IAX. :(
6. 3. Explotación
Ingresar a la Gestión grafica de la Planta
Ingresar con un usuario valido en el sistema
Encontrar Vulnerabilidades en la Configuración de Planta.
Ingresar a la Gestión grafica de la Planta Para ingresar a la administración hice la manera fácil y fue realizar un ataque de fuerza bruta entre las posibles contraseñas que pueda tener la planta al usuario por defecto de elastix "admin". Las contraseñas fueron: "busytone123" "01346798520" "asdqwe123" "BUSYTONE" "BUSYtone" "BusyTone123" "123456789" "BusyTone" "busytone" etc, hasta que di con la contraseña Correcta "busytone"
Con esto tenemos Acceso como administrador total de la planta y el siguiente paso fácil es tomar la administración total de las extensiones. Para ello ir a PBX-->Extensions.
7. Y si revisamos cada una de las extensiones, vemos que el rango de extensiones de 2000 a 2002 tiene contraseñas débiles "el mismo número de extensión "y podrían ser descifradas con una herramienta como SIPVICIOS sin necesidad de ingresar a la administración grafica del servidor.
8. Ingresar con un usuario valido en el sistema Mirando de nuevo la fase de enumeración me encuentro con el puerto 22 "SSH" abierto, lo que se me ocurre antes de utilizar la forma difícil es intentar las mismas contraseñas que utilice para ingresar a la administración grafica y efectivamente funciono, encontrando la contraseña del usuario Root "BusyTone".
9.
10. Vulnerabilidades de Configuración
Contraseñas Débiles para algunas Extensiones
Está Realizando NAT.
No se Está Permitiendo registro desde un solo Rango De red. Lo ideal es que solo se permitiera registrar las extensiones desde la red a la que pertenece. Este parametro se configura en Device Options --> Permit. Acá se cambia 0.0.0.0/0.0.0.0 Por la red interna en la que trabajaran las extensiones.
No se están filtrando las llamadas por canal o Extensión creada en el servidor.
11. Con la configuración de la planta como esta en el momento es posible realizar por extensión registrada 2147483647 llamadas. Por esto es importante filtrar que se puedan realizar máximo 2 llamadas simultaneas por extensión en el servidor.
El puerto de administración de la consola del Asterisk "SSH" esta por defecto y además permite conectarse como usuario root directamente.
No se tiene configurado ningún tipo de software que bloque conexiones masivas al servidor.
Cosas que Faltaron
Enumerar usuarios sin utilizar fuerza bruta
Utilizar exploits Para algún servicio asociado a la maquina
Y ya no se me ocurre nada mas :P