Analyse réseau entre Freebox Player et Freebox Server

Je voulais « m’amuser » à voir comment la Freebox Player communiquait avec la Freebox Server. (Les 2 Freebox HD v6, appelons les fbxP et fbxS).

Pour cela, j’ai mis en place un bridge. L’idée c’est d’avoir un ordinateur avec 2 interfaces réseau (j’ai ajouté une carte usb→ethernet sur mon laptop), on crée le bridge (switch virtuel contenant 2 ports, eth0 et eth1) avec brctl (fourni par bridge-utils) :

On branche fbxS sur eth0 et fbxP sur eth1.

On branche les box, on lance un tcpdump ou un wireshark et on démarre fbxP (fbxS étant déjà démarré). J’ai jamais démarré fbxP depuis que je suis chez Free dans mon appartement, elle va donc se mettre à jour, est-ce qu’on va voir le téléchargement du firmware ?!
Résumé de ce qu’on voit passer :

On remarque que fbxP tague ses trames en 802.1Q VID 100 (VLAN). Puis :

DHCP Request de fbxP. Bien entendu c’est fbxS qui va répondre.
fbxS écoute sur 192.168.27.14/28.
fbxP obtient 192.168.27.1/28, routeur 192.168.27.14 et option 142 « http://192.168.27.14:8080/freeboxhd/boot.lua?fbxhd_version=6 » (Cette  URL ne donne rien en l’état, il faut probablement parler en ESP…)

Une fois qu’elle obtient son adressage, on constate que la communication est chiffrée via le protocole AH/ESP (IPSEC), elle récupère son firmware (60Mo dans la capture), et fini par rebooter (mise à jour).

Après redémarrage, elle fait la même requête que précédemment, puis une autre sur le LAN classique (pas le VLAN 100 donc), pour obtenir une adresse IP dans votre LAN (par défaut en 192.168.1.0/24).

On voit du NFSv4, le serveur étant fbxS et le client étant la fbxP. Pour l’instant je ne sais pas à quoi il sert, il n’est pas chiffré mais il est authentifié, on remarque bien la présence d’un en-tête d’authentification (AH).

On voit de l’IGMP, le player joint le groupe multicast 224.0.0.251, et puis c’est tout pour la partie « visible » (Je ne regarde que le démarrage, pas l’utilisation des outils, genre la TV, les jeux, etc…)

Il est fort probable que le flux chiffré soit de l’IPSec configuré en manual keyging, voir http://www.lartc.org/howto/lartc.ipsec.html.

Au final, fbxP et fbxS sont donc reliés entre elles en étant isolés de votre réseau (VLAN 100) et complètement chiffré. Bien joué Free ! On va pas pouvoir en tirer grand chose…
Possibilité de casser le chiffrement IPSEC ? À priori impossible ! Il y tellement de ciphers et de combinaisons possible…
Le plus facile serait de trouver la configuration IPSEC sur le firmware, mais ça c’est une autre histoire 🙂 !

Bonus, si on veut jouer avec le VLAN 100, il faudra se créer une interface sur ce VLAN, exemple avec les outils d’iproute2.

# ip link add link eth0 name eth0.100 type vlan id 100
# ip addr add 192.168.27.13/28 dev eth0.100
# ip link set dev eth0.100 up

Bonus 2 :

https://media.benpro.fr/Screenshots/fbx6hd.png
La Freebox Player avant de parler « chiffré » fait ça. Je sèche complètement 😀