Estoy trabajando en conseguir un volcado del firmware de un FAST SAGECOM 5657
, en versiones anteriores tenemos acceso a la shell, pero está bastante bien configurada y el usuario «admin» tiene bastantes límites.
Con estos límites me refiero a que los dispositivos /dev/mtdXXX
están sin acceso también /dev/mem
está capado, en fin que no está tan facil.
Incluso parece que el usb stick está montando en sólo lectura, lo cual dificulta un poco sacar datos y como quiero traerme todo lo posible para analizarlo necesito alguna forma cómoda para hacerlo.
Así que he ideado una primera aproximación para conseguirlo, que será comprimiendo directorios y enviarlos por tftp
a mi máquina. Como tftp
va por udp necesitaré que esté en la red local de mi dispositivo.
Lo primero, es conseguir un directorio donde pueda escribir, ya que busybox tiene unos binarios con limitaciones que no permiten hacer cosas que haría en una máquina con linux. Lo consigo con este script
admin@home:/$ find -type d -perm -o=w 2&>/dev/null
./opt/squashfs/tmp
./tmp
Como veis sólo hay dos directorios en todo el sistema en los que pueda escribir, así que uso /tmp
. La otra idea era sobrescribir algún fichero aunque los resultados pueden ser impredecibles.
y luego compresión, envío por tftp
y borrado de cada uno de los ficheros con
for d in $(ls -d /* | grep -vE "(proc)" | cut -b2- ); do echo "taring..." $d; tar cvf $d.gz "/$d"; echo "sending..."; tftp -l $d.gz -r $d.gz -p 192.168.2.132; echo "delete" $d.gz; rm $d.gz; done ;
Evito /proc
por quitarme de problemas, además de procesos que inician y acaban rápido y dan errores de lectura.
Estos comandos suelen estar en dispositivos embebidos, aún ya siendo bastante limitado el set de binarios.
Espero que sea de utilidad.
Deja una respuesta