18 agosto 2012

Hace unos días recibí una llamada de Movistar, con la que tengo contratado el ADSL, para comentarme que por motivos técnicos me iban a enviar un nuevo router ADSL ya que la instalación que les constaba que tenía se había quedado algo desactualizada.

A los pocos días llegué a casa y, ¡router nuevo!

Se trata de un router wifi ADSL2/2+ fabricado por Alpha Networks, y está etiquetado con el nombre Amper ASL 26555. Son los modelos más actuales de router casero que está distribuyendo actualmente Movistar a sus clientes. El zombie no viene incluido.

Para acceder a la configuración tenemos diferentes opciones.

El dispositivo cuenta con dos paneles web para su configuración, uno "dummy" de Movistar que corre en el puerto 80 y no vamos a tocar (por la complejidad del asunto), y el panel de configuración original de Alpha Networks que está en el puerto 8000.

Si accedemos mediante el navegador a la IP del dispositivo utilizando el puerto 8000 (http://192.168.1.1:8000/) e introducimos los credenciales de administración (1234 / 1234 por defecto), accedemos al panel.

Mediante este panel podemos configurar de forma avanzada el dispositivo.

Como curiosidad, podemos ver toda la configuración que tiene Movistar para acceder a nuestro router a través de sus redes de forma transparente al usuario. Podemos cambiarla para no permitirles acceso, pero si luego no os funciona Internet y el técnico no puede acceder de forma remota, ¡no os quejéis!

Otra posibilidad que nos da el router es acceder vía telnet.

Si nos conectamos por telnet, vemos que utiliza BusyBox 1.00 con un juego de comandos algo reducido.

$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
login as: admin
password:

BusyBox v1.00 (2011.05.02-12:14+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

ASL-26555 #

El dispositivo cuenta con una CPU MIPS 24K, arquitectura MIPS Little Endian.

ASL-26555 # cat /proc/cpuinfo
system type             : Ralink SoC
processor               : 0
cpu model               : MIPS 24K V4.12
BogoMIPS                : 255.48
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes
ASEs implemented        : mips16 dsp
VCED exceptions         : not available
VCEI exceptions         : not available

El sistema de ficheros al que tenemos acceso no tiene permisos de escritura, a excepción de /tmp/, y con el BusyBox que viene instalado no podemos transferir datos a través de la red. Por suerte, el router tiene un puerto USB al que podemos conectar un dispositivo de almacenamiento. Si le conectamos un pendrive nos lo monta automáticamente en /var/tmp/storage_dev/usb1_1

Podemos descargar el binario de la última versión de BusyBox para MIPSEL, que incluye un juego de comandos mucho más amplio, y meterlo en el pendrive.

Ya que tenemos acceso a una consola con bastantes comandos, el siguiente paso es compilar nuestros propios programas.

Para hacerlo necesitamos realizar compilación cruzada para MIPS. Podemos hacerlo con Buildroot, que nos permite generar un juego de herramientas para compilar código para diferentes arquitecturas.

Una vez lo tengamos podemos probar a portar, por ejemplo, Unhide (herramienta de detección de rootkits y procesos ocultos).

Unhide realiza algunas llamadas a comandos del sistema que no están disponibles, pero sí están en el BusyBox que hemos metido. Por ello, modificamos el código fuente para que ejecute los comandos a través de nuestro BusyBox, de esta forma no sólo nos vale para nuestro router sino para cualquier otro sistema embebido acompañado de un BusyBox actualizado.

La modificación es trivial (unhide - unhide-tcp), ahora nos queda compilar el código. Con nuestras herramientas de compilación preparadas:

mipsel-linux-gcc -static -O3 unhide.c -o unhide
mipsel-linux-gcc -static -O3 unhide-tcp.c -o unhide-tcp

Limpiamos un poco los binarios ...

mipsel-linux-strip unhide
mipsel-linux-strip unhide-tcp

Y lo acompañamos del binario de BusyBox. Podéis descargar los tres binarios ya preparados aquí.

Lo pasamos al pendrive y ejecutamos en el router:

ASL-26555 # ls -l
-rwxrwxrwx    1 0        0           65488 unhide-tcp
-rwxrwxrwx    1 0        0           65752 unhide
-rwxrwxrwx    1 0        0         1563696 busybox
ASL-26555 # ./unhide sys
Unhide 20110113
http://www.unhide-forensics.info


[*]Searching for Hidden processes through getpriority() scanning

[*]Searching for Hidden processes through getpgid() scanning

[*]Searching for Hidden processes through getsid() scanning

ASL-26555 #

Algo que he echado en falta es obtener el firmware a través de la web del fabricante. No lo he encontrado por internet, no obstante, si echamos un vistazo al CD de configuración avanzada que proporciona Movistar con el router, además de otros programas hay un agente de configuración remoto. Si lo instalamos y buscamos en el directorio dónde se ha instalado, podremos encontrar el firmware que está instalado por defecto. Para ahorraros el proceso, lo tenéis disponible aquí.

Ya sabemos como configurar el router a fondo, meterle programas, compilar los nuestros propios y tenemos el firmware del dispositivo. Ahora falta la seguridad, ¡algo había que decir!

La vulnerabilidad de la que vamos a hablar nos permite control total sobre el dispositivo con permisos de administrador. Es curiosa por su forma de ser y porque haya pasado desapercibida.

Como hemos dicho antes, la forma de gestionar el router es a través de un panel web con autenticación que corre en el puerto 8000. La sorpresa es que en el mismo servidor web tenemos un directorio llamado /APIS/, que no requiere autenticación. Nos devuelve error 404 cuando lo visitamos, pero si sabemos los nombres de los ficheros que tiene podemos hacer llamadas a los mismos.

Nos permite hacer diferentes llamadas para leer prácticamente toda la información de la configuración. Hay una llamada especial, con el nombre returnJSON.htm, que nos devuelve los credenciales del administrador.


$ curl http://192.168.1.1:8000/APIS/returnJSON.htm
{
"RETURN":{
"success": true,
"errorDescription": "ERROR_GENERAL"
},
"USER":{
"USERNAME": "admin",
"PASSWORD": "adm1n_passw0rd_exposed"
}
}

Con ésto podemos autenticarnos en el panel web y gestionar el dispositivo.

Dado que dicha API no está documentada por ningún lado y no requiere autenticación, da la sensación de que el fallo es en realidad un backdoor que se dejó el fabricante original para poder acceder a información del dispositivo aunque no se conozcan los credenciales.

Hay que añadir que con la configuración que carga Movistar en los routers, nadie fuera de nuestra red interna o de las redes de Movistar puede utilizar esto, ya que el servicio no es accesible por red sin contar esas dos excepciones.

Publiqué la vulnerabilidad hace unos días, aquí está la descripción detallada, que incluye todas las llamadas que nos permite la API.

Como conclusión, para ser un router casero está bien técnicamente y nos permite un control relativamente amplio sobre él. Tiene algunos puntos útiles, por ejemplo poder compartir el acceso al dispositivo USB a través de SMB por red para acceder a contenidos multimedia desde diferentes puntos. Merece la pena investigarlo un poco.

Contribución por Alberto Ortega.

31 comments :

Dvastazion dijo...

Bonus: no admite contraseñas que contengan # ...bueno más que no las admite es que solo valida desde la # para atrás, por ejemplo esta contraseña #_12€.67Fgh.L.6@ parece aceptable verdad?en realidad deja el campo en blanco sin contraseña ;)

pacomar dijo...

yo he encontrado otro bug o limitación: no admite unidades mayores de 1TB para usarlas en el puerto USB. Me llevé el palo al intentar conectar un recién estrenado disco duro de 3TB. He tenido que hacerle 3 particiones. vaya mierda. lo habéis probado?

pacomar dijo...

Actualizo: el problema se da con los discos duros de 3 tb, con los de dos va bien

ANA dijo...

hola, hace unos días me aparece una ventana en la pantalla del portátil preguntándome sobre algo relacionado con el ASL 26555 y me pide un nombre de usuario y una contraseña para la seguridad de mi Windows,podría alguien ayudarme???

Ernesto Rey dijo...

Hola. Quizá parezca una pregunta tonta, pero no doy con la respuesta:
Yo utilizo este router con cable, y eventualmente con wifi, sin problemas en ambas conexiones, sin embargo (y aquí está el problema) no soy capaz de desactivar el wifi del router. Conozco un modelo de router de movistar que tiene el mismo botón trasero para activar la red wifi y también para desactivarla. Pero este router tiene el dichoso botón de activar la red wifi, pero una vez activada no sirve para desactivarla.
¿me explico?, que quiero poder encender y apagar la conección wifi del botón que, según movistar, debería poder hacer.
Si me hechais una mano con esta tontería os estaría muy agradecidos. Saludos.
Ernesto

Andran dijo...

Hola tengo tres ordenadores, dos sobremesas y un portatil y utilizo este router para conectarme a internet. Los dos sobremesas los tengo conectado por cable y el portatil por wifi.
¿Podrías indicar que habría que hacer para que solo se conecten esos ordenadores y ningún otro? Creo que lo llaman filtrado MAC.
También ocasionalmente tendría conectado un smartphone a la wifi.

Muchas gracias.

ElPlumero dijo...

Hola,
"The only possible mitigation is to drop access to everyone from the outside

with a network level blocking configuration."

significa que tengo que activar el filtro MAC?

Ángel Villodre López dijo...

Pero qué post tan bueno, muchísimas gracias. Acabo de recibir este router y la información me está siendo de muchísima utilidad.

Roberto dijo...

¿no sabes dónde pueda encontrar el firmware del asl-26555 cl? es el de chile y el del post es de españa y no admite el firmware, se lo agraderecía mucho si lo encuentras.

Cristobal dijo...

donde consigo esa contraseña?

jano dijo...

hola a todos soy un tecnico de telefonica ya me diron pena todos ustedes les dare la clave y usuario es


usuario es :speedy
clave es : speedy


si no solo para que configuren el router otra manera de entrar sin clave pongan esta direccion 192.168.1.1:8000 una vez que estean adentro su clave de router es 1234 ok gracias bye

jano dijo...

pd:una vez que ponga esa clave o usuario el router te pidira cada rato la clave ya que estas cambiando confiuaccion de telefonica bye mi correo es alberto1000200@hotmail.com pa kualkier kosa bye

jano dijo...

hola a todos soy un tecnico de telefonica ya me diron pena todos ustedes les dare la clave y usuario es

usuario es :speedy
clave es : speedy

si no solo para que configuren el router otra manera de entrar sin clave pongan esta direccion 192.168.1.1:8000 una vez que estean adentro su clave de router es 1234 ok gracias bye

jano dijo...

en su pag del ekipo de telefonica

jano dijo...

hola a todos soy un tecnico de telefonica ya me diron pena todos ustedes les dare la clave y usuario es

usuario es :speedy
clave es : speedy

si no solo para que configuren el router otra manera de entrar sin clave pongan esta direccion 192.168.1.1:8000 una vez que estean adentro su clave de router es 1234 ok gracias bye

jano dijo...

mia tienes ke filtrar mac o amarar tus ip con tus mac para que asi solo tu puedas controlar tu base o cabina si kieres ayuda escribeme a m correo alberto100200@hotmail.com te ayudo via skai
bye

Roberto dijo...

No lo encuentro por ningún lado, y cuando me lo entregaron no lo hicieron con el cd, soy de chile y tengo una versión diferente a la de españa(ASL26555 CL), y no me sirve su firmware ¿saben dónde puedo encontrar el fw para chile?

Lauramonica dijo...

Hola, yo tambien en el trabajo tengo un router de movistar se parece mucho a este lo ha cambiado hace 2 meses, y supongo q es la version mas nueva de movistar, pero desde q lo ha cambiado no nos va bien la conexion por wifi en los telefonos, yo tengo un iphone 5 y apenas me llega internet para navegar, no puedo escuchar ni la radio. Mis compañeros tienen el mismo problema! Como podria configurar mejor el router para q tengamos wifi? Donde tengo q entrar para cofigurar lo o cambiar de canal? Podria hacer lo desde un ipad?
Gracias.

Klaus Bogotz dijo...

Me he cambiado de yazztel a telefónica y me han instalado este mismo router. No soy muy experto en backdoors etc. pero para hacer funcionar mi gateway para SIP (Sipura PAP 3102) necesito abrir unos puertos (el chico del soporte de telefónica me ha dado una lista y me ha explicado como).
Lo he hecho entrando por 192.168.1.1:8000 en los virtual servers en advanced. Resulta que SIP sigue sin funcionar y he comprobado si los puertos realmente están abiertos.
Ahora la sorpresa: Ninguno de los puertos que he abierto está abierto pero un montón de otros puertos, en total ¡58! - 45 udp filtrado y uno tcp filtrado (puerto 1 servicio tcpmux (?)

¿Alguien tiene una explicación o una idea como se puede configurar la firewall de otra forma?

Luna dijo...

Hola Laura, a mi me sucedía lo mismo...La solución es muy simple, debes ir con tu navegador a la dirección “192.168.1.1:8000″ (sin comillas). Cuando te pida usuario y contraseña, si no la has cambiado, son 1234 en los dos campos ( en mi caso no me funciono esa y tuve q investigar al final resulto ser user tb en los dos campos ). Una vez entres en el menú de configuración. En el campo “Signal-interval”, sustituye el 100 por 10, y abajo del todo pulsa en Apply para aplicar los cambios, debes ir a “Advanced>Wireless Setup>WLAN Performance. Espero q te haya solucionado el asunto,Saludos

perico89 dijo...

Ah, resulta que los clientes de telefónica te damos pena? Pues muchas gracias por dignarte a compartir tu conocimiento con estos seres penosos

ahiz dijo...

Se que es tarde, pero bueno, quizas le valga a más gente.
1º Esos puertos abiertos que vienen de "serie" en el fimware de movistar son para la administración remota del router, es decir no apuntan a ningún ordenador de tu red, si no al propio ruter. Tranquilo :)
2º Yo tengo ese mismo router y no tuve problemas en la apertura de puertos. Pero bueno, a modo de prueba, puedes probar a activar temporalmente el DMZ a ver si te funciona SIP. Aunque ya te digo que a mi no me ha dado ningún problema.


Un saludo,

cartelo dijo...

tengo un smart tv lg e internet wifi con telefonica movistar, las aplicaciones del tv me funcionan con el wifi de mi celular pero con el de movistar no , llamo y me lo configuran y me funcionan 2 dias es algo en la config del router por q tambien hay paginas q se bloquean como dailymotion. alguien me ayuda con la config del router? creo q tambien es por lo del puerto 80 pero en mi tv no tengo como ponerle otros proxys al navegador para saltar eso. heellpppp!!!!!

cartelo dijo...

ya tengo user y password del router para poder entrar, alguien me ayuda a configurar?

Juan Antonio Real García dijo...

deja el botón wifi pulsado durante 5 segundos hasta que se apague la luz de wifi y ya está desactivado. un saludo.

pericoeldelospalotes dijo...

Obviamente no es de telefónica...

Jhon Mathyu Cardozo Acuña dijo...

No Me Acepta La Contraseña 1234

BOUANANI dijo...

a mi tampoco mi salen las llamadas voip y atencion tecnica de movistar no quiere dar la solucion exacta el problema del router ASL que bloquea los SIP y el puerto tcpmux y no puedo activarlo ni del 192.168.1.1:8000

varribas dijo...

Nota para Alberto Ortega (aunque se que no la leerá, y menos para lo que contiene ;) ).

Lo primero de todo, increíble contribución. Además en los aspectos que a mí más me gustan.

Ahora el kit de la cuestión, que es una tontería para ejecutar unhide, pero mucho más práctico*.

En lugar de modificar el código fuente para que solo use el directorio '.', lo cual es menos portable, modificar el PATH. Es decir, en la consola de comandos (telnet), ejecutar:
ASL-26555 # PATH=".:$PATH"

Como además reconoce ext3, se puede utilizar un /bin y /sbin basado en busybox (ln -s), reemplazando los binarios del router a nivel de path. O incluso algo más peligroso:
ASL-26555 # mount /dev/sda1 /bin

Sabiendo que en caso de cagarla habrá que apagar de botón ;)

En cualquier caso, después de toda esta chapa, tras revisar el código fuente de unhide-20110113, no hay define para busybox y el comando ps fallaría.

Y de tu forma te ahorras un comando! A mi se me ha cerrado ya telnet 12 veces... ¬¬, lo que serían 12 comandos más.

PD: versión de firmware v2.0.0.37B_ES
*no es más práctico XD

Pegaso dijo...

Le quedo muy agradecido por su gran aportación. Lo que me preocupa es la vulnerabilidad, se puede acceder siempre que estés dentro del campo de red. Ahora se por donde se me están colando. Muchas Gracias.

chilitos dijo...

esa no es ya intente y nada