Este router, poco conocido, es distribuido por una empresa de fibra local de mi ciudad. Pero viene batante capado.
A priori solamente podemos acceder con el usuario user y con la contraseña user (originales, ¿verdad?).
La propia interfaz del router tiene oculto cuántos usuarios tiene este router; que son 3. En el apartado management nos vamos al subapartado de passwords. En la ventana principal (el bloque grande central) hacemos click derecho y le damos a inspeccionar elemento. Ahí veremos las tres cuentas con las que se puede acceder al router: admin, poweruser y user.
Ni que decir tiene que las combinaciones admin y admin y demás sucedáneas no funcionan.
Probamos con poweruser y poweruser como contraseña y podemos acceder sin problemas. Aquí ya hay más opciones que el usuario limitado.
Como estamos buscando acceso total, el usuario poweruser no nos vale del todo. ¿Y cómo accedemos como admin?
Primero, haciendo un escaneo de puertos, vemos que tiene abiertos tanto el 22 (SSH) como el 23 (telnet). Para acceso de administrador he usado el 22, aunque presumiblemente también se puede realizar por telnet.
Podemos acceder con PuTTY si utilizamos Windows o el comando ssh si estamos desde Linux:
ssh poweruser@192.168.1.1
En la ventana del PuTTY:
Desde Linux probablemente nos de el error:
Unable to negotiate with 192.168.1.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
Desde Windows nos saltará una advertencia como la que se puede ver en la foto de abajo:
En el caso de Linux, podemos esquivar el error introduciendo:
ssh -o KexAlgorithms=diffie-hellman-group1-sha1 -c 3des-cbc poweruser@192.168.1.1
Una vez dentro tenemos lo siguiente:
Si escribimos help podemos ver una lista de comandos disponibles:
Si intentamos poner comandos que no aparecen en esa lista vemos que son comandos desconocidos o no permitidos.
Pero, usando un poco de bash scripting, podemos ejecutar comandos:
Pero no podemos ejecutar el intérprete de comandos bash, pues se queda colgado:
Pero si ejecutamos dos comandos seguidos, el segundo lo acepta sin poner pegas:
Pues ya tenemos acceso completo al sistema como usuario root:
Ahora lo que nos interesa ver es si las contraseñas se guardan en el antiguo archivo passwd o en el «nuevo» shadow, ambos situados en /etc/:
Vemos que utiliza el archivo passwd, por lo que los usuarios y contraseñas estarán ahí. Las contraseñas estarán en MD5-Crypt.
Vemos el contenido del archivo:
cat /etc/passwd
Como hacer fuerza bruta a la contraseña del admin me llevaría demasiado tiempo, he copiado la contraseña del poweruser (es una que ya conocemos) y la he machacado encima de la del admin. He utilizado el editor vi para ello, ya que suele ir en la gran mayoría de compilaciones de buso
Escribimos exit dos veces; una para salir del bash y otra para salir del router.
Ahora accedemos al router con las credenciales admin/poweruser y vamos a cambiar la contraseña del administrador. Hacemos click en los siguientes sitios siguiendo la numeración.
En el 4 ponemos:
- User Name: admin
- Old Password: poweruser
- New Password: el que elijamos
- Confirm Password: lo repetimos para comprobar que lo hemos puesto bien.
Y ya tenemos acceso completo al router con la interfaz web. También decir que en SSH no nos podemos loguear como user, pero en telnet sí, por lo que la escalada se puede realizar desde cualquiera de los dos. También se puede utilizar otro comando aparte del comando echo, como por ejemplo el comando ping.