Viajar en ALSA y acceder al router de ReVisio

Allá por mayo viajé a España e hice parte del recorrido en Alsa. Para mí (grata) sorpresa, el autobús estaba equipado con una red WiFi que me hizo mucho más llevadero el trayecto, aunque desgraciadamente cada vez que nos alejábamos de un núcleo urbano el bicho perdía cobertura. Obviamente me quedaba sin conexión con el exterior, pero la red local funcionaba perfectamente… y como el aburrimiento es malo, decidí entretenerme explorándola.

Lo primero que noté es que el router permitía conexiones SSH y Telnet… cosa que aun no me explico. Visto el percal, se me ocurrió probar usuarios y contraseñas típicas. Sí, sé que es una absoluta estupidez porque las probabilidades de éxito son mínimas… pero tampoco es que pudiera hacer muchas más cosas. Imaginad mi asombro cuando pruebo con el usuario “tecnico” y no recuerdo la contraseña, pero seguramente nada mucho más elaborado que “1234” y… voilá, dentro.

Mi cara en esos momentos era de “OH! Chachi guay :D” pero no todo era perfecto. Para empezar el router parecía mostrar algo parecido a una Shell bash… pero si has usado una alguna vez, no tardarías en darte cuenta de que “había algo raro”. Lo cierto es que aquello no era más que algún programa con una interfaz tipo Shell y mi usuario estaba limitado a mostrar información básica del sistema. Vamos, que debe ser la que usan los técnicos para verificar que el software está actualizado, la SIM insertada y la conexión funcionando.
Como el viaje era largo (Madrid – Oviedo) me dediqué a explorar los mandatos disponibles y… había uno que, parecía me iba a dar privilegios, aunque en realidad era simplemente un “modo” para realizar algunas funciones avanzadas. No había mucho que rascar. No había una mala configuración (bueno, es cuestionable, porque acetar el usuario y el pass “a ojo” en fin…), así que miré los mandatos en busca de alguno que pareciera “explotable”.

Uno que cantaba mucho era el “show file”, así que empecé a hacerle todo tipo de perrerías. Pronto descubrí que podía hacerle un buffer overflow… y en vez de decir que no encontraba el fichero, o que no tenía permisos, me soltaba el contenido del /etc/passwd (sí, yo también me quedé a cuadros) seguido de un montón de “mierda” y un reinicio de mi sesión. Le dí bastantes vueltas tratando de encontrar una forma de explotarlo para elevar privilegios… pero no se me ocurría nada, principalmente porque todos los mandatos a los que tenía acceso eran “inventados”.

Estaba bastante seguro de que el router era un Linux y que la interfaz que veía no sería más que un pequeño programa que, casi con toda seguridad, estaría usando por debajo mandatos en una Shell real. Entonces fue cuando se me ocurrió… ¿habrán hecho bien el trabajo evitando que yo acceda al sistema real? La respuesta, no xD

ReVisio# show file asd
asd: No such file or directory

Amablemente nos informa de que somos unos gañanes y que tratamos de acceder al fichero “asd” que no existe. El encadenamiento de órdenes con && no funciona, filtran el carácter, curiosamente no filtran el ;.

ReVisio# show file asd;bash 
asd: No such file or directory 
bash-2.05b$

Perfecto, ya tenemos un bash real y podemos ejecutar mandatos “reales”:

bash-2.05b$ uname -a 
Linux revisio 2.6.16.11 #117 PREEMPT Wed May 21 17:04:37 CEST 2008 ppc unknown

¿Queréis saber lo más preocupante? Mi usuario estaba incluido en sudoers con unos privilegios más que generosos… vamos, que me edité passwd y shadow para crearme un segundo usuario root xD Conste que esto lo hice principalmente porque el router perdía la conexión cuando salíamos de las ciudades y no la cogía hasta que yo lo reiniciaba. Bueno vale, y porque me aburría también xD

¿Conclusión? Los diseñadores de sistemas son MUY confiados. En mi autobús había varias personas haciendo uso de la conexión. ¿Os imagináis que hubiera pasado si alguien, en vez de usar el acceso para mantener la conexión operativa, hubiera envenenado el DNS, esnifado el tráfico y demás? Sinceramente, cuando ví que podía colar mandatos con ; casi me parto el eje. ¿Te montas una interfaz para enjaular al usuario y no filtras el ;? Vale que siempre hay errores… pero es que esto parece un chiste.

PD: Sí, un “show file asd;vi” también me hubiera permitido editar el passwd y el shadow, pero eso lo pensé después xD

Por Carballude

Me llamo Pablo Carballude González, soy graduado en computación con master en HCI y Seguridad Informática. Actualmente trabajo para Amazon en Seattle como Software Developer Engineer. Soy de esas personas que no saben si los textos autobiográficos deben ser en primera o tercera persona. Lo intenté en segunda, pero no le entendí nada :P

3 comentarios

  1. Un conductor de Alsa esta desesperado porque cada vez e se monta un chaval en particular, con un ordenador, el resto del bus deja de tener servicio wifi. Lo grave, que hablo de 2015, y este articulo es de 2010.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *