Cuando accedemos a un dispositivo embebido una de las cosas que solemos hacer es echar un vistazo a /proc/mtd para ver los montajes de los bloques mtd y suele haber un bloque que es el contiene la imagen del sistema embedibo.
Uno de los formatos de ficheros con el que habitualmente nos encontramos es jffs2 [1]
Para extraer el contenido tenemos varias herramientas que podemos usar:
vía script
Podemos copiar el contenido a un dispositivo mtd local y montarlo como jffs de la siguiente manera. ( Estoy usando image.jffs2)
modprobe mtdram
modprobe jffs2
modprobe mtdchar
modprobe mtdblock
dd if=image.jffs2 of=/dev/mtd0
mkdir -p jffs-root
mount -t jffs2 /dev/mtdblock0 jffs-root/
unjffs2 de firmware mod kit
Es básicamente el mismo script pero mejorado, ya que puede darse que tengamos una image ‘big endian’ este script puede convertir la imagen para su correcta extracción. Firmware mod kit[2] es un conjunto de herramientas empaquetadas para todo este tipo de tareas. Requiere el paquete mtd-utils que provee jffs2dump y debe ejecutarse como root ya que jffs2dump sólo es ejecutable por el usuario root.
apt-get install mtd-utils
git clone https://github.com/mirror/firmware-mod-kit
sudo src/jffs2/unjffs2 image.jffs2 jffs-root
jefferson
Es una herramienta de extracción de jffs2 hecha en python
git clone https://github.com/sviehb/jefferson
sudo python setup.py install
sudo pip install cstruct
sudo apt-get install python-lzma
Extraemos la imagen así
jefferson image.jffs2 -d jffs-root
Personalmente el mejor resultado ha sido con el script de firmware mod kit, aquí dejo algunos enlaces de interés que pueden ayudarte si ninguna de estas herramientas ha funcionado [3] [4]
—
[1] https://es.wikipedia.org/wiki/JFFS2
[2] https://github.com/mirror/firmware-mod-kit
[3] https://www.owasp.org/index.php/IoT_Firmware_Analysis
[4] http://wiki.securityweekly.com/wiki/index.php/Reverse_Engineering_Firmware_Primer
Deja una respuesta