ZTE F680 telnet jail

Cuando accedemos a un ZTE F680 v4 al servicio telnet root/root` lo normal es que tengamos una jaula en la shell que no permite hacer mucho, como vemos en este ejemplo

$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
F680
Login: root
Password: 

BusyBox v1.01 (2017.09.15-03:17+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ # ps
/bin/sh: Access Denied.

/ # help
Welcome,Built-in commands:
cat /proc/cpuusage  --show CPU usage
cat /proc/meminfo  --show memory usage
cat /proc/net/arp  --show ARP table
cat /proc/sys/net/netfilter/nf_conntrack_max --show total NAT table size
cat /proc/net/nf_nat_count  --Show current NAT table size
cat /proc/net/nf_conntrack_nat  --show NAT table entries
iptables -t filter -L -vn  --show iptables filter
iptables -t mangle -L -vn  --show iptables mangle
iptables -t nat -L -vn  --show iptables nat
ifconfig  --network interfaces configuring
sendcmd 1 wlan_mgr channel 1  --set wlan 2.4G channel
sendcmd 1 wlan_mgr channel 2  --set wlan 5G channel
/ # sh
/bin/sh: Access Denied.

Esta jaula de telnet limita el acceso y la ejecucion a unos poco comandos que sirven unicamente para el diagnostico del equipo.

Aun asi hay varias formas de evitar esta limitacion, espero poder poder compartiras pronto.

ZTE F680 V4 Virgin

Uno de mis proyectos personales, que me da muchas alegrías y dolores de cabeza a partes iguales, es tratar de tener dispositivos de comunicaciones que pueda gestionar libremente. ¿ Por qué ? Porque me preocupa la seguridad. Los dispositivos de red, normalmente son bastante inseguros con fallos típicos de otros modelos, marcas o mantienen fallos a lo largo de la corta vida de firmwares publicados. Bien es cierto que los últimos años parece que los fallos son menos exagerados, y que parece que se publican algún que otro parche más, pero creo que la cantidad de bugs corregidos y fallos de seguridad que se descubren cada día, lo hace insuficiente.

Por otro lado, gestionar mi propio dispositivo me permite asignar mi propia configuración de dns, nivel de seguridad, configuración de puertos, actualzaciones de seguridad, eliminar usuarios no deseados que pueden acceder a mi dispositivo, elegir qué IP’s pueden acceder a la gestión de mi dispositivo, quitar servicios, etc…

Es cierto que un operador necesita tener ciertas herramientas para poder dar soporte técnico a los clientes, necesita provisionar los positivos, diagnosticarlos etc… pero esto debería ser flexible con los clientes y sobretodo debería velar por la seguridad de sus abonados. Me refiero a mantener hardware actualizado y seguro. Todos tenemos un montón de cacharros obsoletos en cajas en el fondo del armario que nunca se usarán. Es una pena, el gasto energético y de recursos naturales que se necesitan para producir hardware tirados a la basura por que los grandes operadores o fabricantes no salen del ciclo de la venta y compra constante. Tendríamos que diseñar hardware para durar y optimizar durante años, exprimir lo que hay. Actualmente no hay restricciones y ese camino fácil no nos trae ninguna ventaja.

Estos motivos son los que unidos a puro placer del conocimiento tecnológico me llevan a cacharrear con dispositivos, entenderlos y aprovechar esa ventaja para mi beneficio personal: aumentar mi sensación de seguridad, que no es mucha 🙁

Ha llegado a mis manos un dispositivo ZTE F680 V4 de la compañía Virgin, y estoy trasteando con él. Estos son las principales diferencias que he encontrado:

  • Sa la salida de texto por puerto serie, está desactivada, hay que activarla en el CFE
  • CFE bastante recortado con pocos comandos disponibles, pero tenemos dn (Dump NAND)
  • Password credenciales típicas no funcionan root/Zte521
  • Password de admin de virgin tkE*2312
  • Aproximación de acceso vía TR-069 no funciona

búsqueda incremental en el historial de bash

Una utilidad muy poderosa y que pasó desapercibida durante muchos años para mí, ha sido la búsqueda incremental que aparece presionando <control+r> en la linea de commandos

(reverse-i-search)`':

Esta cosa rara que alerta y desconcierta cuando aparce por sorpresa es ahora una de mis grandes aliados en mi día a día.

Esta utilidad muestra los comandos previamente escritos a medida que introduces letras y matchea con comandos almaceandos. En ese momento le das al enter y vuelves a ejecutar ese comando, de una forma más rápida.

Si el comando coincide con lo que busas pero NO es el que quieres, puedes iterar volviendo a presionar <control+r> lo que hace volver a buscar en la lista, o <control+s> para ir en sentido inverso de la lista, por si fuiste muy rápido y te pasaste el resultado.

Este inteface tiene mucha más magia, que puedes encontrar en el manual, no es muy claro pero es un comienzo para probar. https://www.gnu.org/software/bash/manual/html_node/Commands-For-History.html

Recordad que tu historial de comandos está en ~/.bash_history si usas bash, en ~/.history o en el fichero indicado en la variable echo $HISTFILE

conserguir clave pública usando la clave privada

Chuleta rápida de cómo obtener la clave pública, la que repartimos tranquilamente por ahí si sólo tenemos la privada. Puede pasar que la hayas perdido y no la tengas a mano, aquí tienes una forma rápida de recuperarla usando tu propia clave privada ( la que nunca se comparte )

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub