Rooter sa NB6V

Publié le 08 août 2014 par Goundoulf

L'architecture du firmware de la NB6V, une évolution de la NB6, supportant le VDSL2 est différent de celui de la NB6. En effet, il est au format JFFS2 compacté en LZMA et terminé par un wfi-tag.

Pour manipuler un tel firmware, plusieurs outils sont nécessaires :

  • outils wfi pour gérer le wfi-tag,
  • outils mtd pour manipuler le système de fichier JFFS2 compacté en LZMA,
  • scripts automatisant les opérations d'extraction et recomposition du firmware,

Outils wfi-tag

Les sources des outils wfi-tag-extract et wfi-tag-mk, permettant d'extraire et recomposer le wfi-tag du firmware de la NB6V sont disponibles sur le dépôt GNA de neufbox4.org. Il suffit de les compiler.

Outils mtd

Il est nécessaire de recompiler les outils mtd à partir de leurs sources en applicant le patch de SGDA car par défaut ils n'offrent pas le support de la compression LZMA pour le format de fichier JFFS2.

Scripts

Les scripts exnb6v.sh et mknb6v.sh sont disponibles sur le dépôt GNA de neufbox4.org.

Avant utilisation, il est nécessaire de les personnaliser afin de faire correspondre les variables WFI_TAG_EXTRACT, JFFS2_DUMP, JFFS2_EXTRACT, WFI_TAG_MK et MKFS_JFFS2 définies en début de script aux chemins des outils précédemment compilés sur votre système.

Modification du firmware

Après avoir récupéré le dernier firmware ( NB6V-MAIN-R3.3.9) de la NB6V sur le serveur de SFR, il suffit d'utiliser le script exnb6v.sh pour extraire le firmware.

./exnb6v.sh NB6V-MAIN-R3.3.9

L'arborescence se trouve alors dans le dossier fsb-root :

ls -ls fsb-root
total 1112
 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 bin
228 -rw-r--r--. 1 VincentAlex VincentAlex 231696 oct. 18 2013 cferam.001
 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 dev
 4 drwxr-xr-x. 20 VincentAlex VincentAlex 4096 oct. 18 2013 etc
 4 drwxr-xr-x. 4 VincentAlex VincentAlex 4096 oct. 18 2013 lib
 0 lrwxrwxrwx. 1 VincentAlex VincentAlex 8 oct. 18 2013 mnt -> /tmp/mnt
 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 overlay
 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 proc
 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 rom
 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 root
 0 lrwxrwxrwx. 1 VincentAlex VincentAlex 8 oct. 18 2013 run -> /var/run
 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 sbin
 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 sys
 4 drwxrwxrwx. 2 VincentAlex VincentAlex 4096 oct. 18 2013 tmp
 4 drwxr-xr-x. 6 VincentAlex VincentAlex 4096 oct. 18 2013 usr
 0 lrwxrwxrwx. 1 VincentAlex VincentAlex 8 oct. 18 2013 var -> /tmp/var
832 -rw-r--r--. 1 VincentAlex VincentAlex 850861 oct. 18 2013 vmlinux.lz
 4 drwxr-xr-x. 4 VincentAlex VincentAlex 4096 oct. 18 2013 www

Afin d'avoir accès au shell de la NB6V, un nouveau compte avec droits administrateur est ajouté (par exemple compte ob6, mot de passe ob6). L'ajout du compte ob6 se fait par l'ajout de la ligne suivante dans le fichier fob-root/etc/passwd :

ob6:x:0:0:root:/:/bin/sh

et la ligne suivante dans le fichier fsb-root/etc/shadow :

ob6:$1$/iGYBb6m$xmxNGUHymwdCiziuqpeyF1:14550:0:99999:7:::

Le chiffrement du mot de passe est réalisé avec la commande suivante :

openssl passwd -1 -salt /iGYBb6m ob6

Ensuite, le script mknb6v.sh est utilisé pour recomposé le firmware :

./mknb6v.sh fsb-root NB6V-MAIN-R3.3.9-OPEN

Flashage

Le flashage de la NB6V se fait par bootp. Pour cela, il faut un serveur DHCP et TFTP où le fichier de boot correspond au firmware recomposé précédemment (NB6V-MAIN-R3.3.9-OPEN).

Mettre sous tension la NB6V tout en appuyant sur le bouton de service (SFR). Les leds vont clignoter en rouge, le firmware va être téléchargé du serveur tftp puis se flasher automatiquement. La neufbox redémarre avec le firmware modifié.

Accès au shell

Uniquement en ssh par la commande suivante avec l'utilisateur et mot de passe défini précédemment :

ssh 192.168.1.1 -l ob6 -p 1288
ob6@192.168.1.1's password:

BusyBox v1.15.3 (2013-10-18 18:46:08 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

   ____                   ____  ____ _  _
  / __ \____  ___  ____  / __ )/ __ \ |/ /
 / / / / __ \/ _ \/ __ )/ __  / / / /   /
/ /_/ / /_/ /  __/ / / / /_/ / /_/ /   |
\____/ ____/\___/_/ /_/_____/\____/_/|_|
    / /
   /_/        OpenBox Project By NeufBox4.org

 Backfire (10.03, r29368) --------------------------
  * Powered by Efixo (NB6-MAIN-R3.3.9, r16610)
                   (http://www.efixo.net/gpl/)
  * OpenWrt Base Firmware (http://openwrt.org)
 ---------------------------------------------------
root@nb6:~#

Bonne bidouilles avec notre NB6V " rootée " !