Hack Lacie D2 Network…

J’ai fait il y a de ça quelques années l’achat d’un NAS portant le doux nom de Lacie D2 network. Cette petite bestiole de 1 To à le chic d’utiliser un refroidissement passif et de consommer peu d’électricité. Cependant la solution embarqué par Lacie est comment dire… pitoyable. En effet, j’ai droit à du SMB, du FTP et de l’HTTP. S’ajoute à cela un client torrent qui fera rire le premier d’entre vous ayant utilisé transmission.

Pas de ssh, de rsync ou encore de NFS…. aucun plugin et surtout aucun suivi du constructeur (ça fait toujours plaisir).

Ce dernier faisant malgré tout encore son office et embarquant une distribution linux à la sauce Lacie, je me suis dit qu’il y avait bien un moyen de redonner une jeunesse à cette petite boite qui rend malgré tout bien des services.

En fouinant dans les méandres de l’internet, j’ai finalement trouvé un hack qui permet de récupérer un accès ssh au système (se sera l’objet de l’article) et même d’y installer une debian (se sera un second article si j’ai le temps)

Avant de commencer j’ajoute que ce tuto concerne le Lacie D2 Network version 1 ou nommé « ek » dont voici les spécificités :

D2

 

CPU : ARM926EJ-S [41069260] revision 0 (ARMv5TEJ)
RAM : 128 Mb (123.5 Mb available)
Flash ROM : 512 kb
NIC : Marvell Ethernet Gigabit
USB : Marvell USB EHCI Host controller
HDD : Hitachi Deskstar, 7200 rpm, SATA 3Gb/s, HDT721010SLA360
SATA Controller : Marvell SCSI to SATA adapter
Drive Capacity : 1.00 Tb, 930.43 Gb available
Fan : No
Kernel : Linux 2.6.22.7

Je précise, parce que la version 2 reprend exactement le même design, cependant le matériel embarqué est bien différent (soc Kirkwood 6281 au lieu d’un Orion 5182) et surtout le hack est inopérant le logiciel ayant été réécrit de 0.

à présent passons aux choses sérieuses :

Hack Telnet :

Créez un nouveau partage nommé root et attribuez les droits d’écritures à tous le monde. Sauvez la configuration de votre Nas dans le menu ‘Système > Maintenance’ :

hacklacie1

Ce dernier vous propose alors d’enregistrer un fichier nommé ‘edconf.xml’. Une fois rapatrié sur votre disque, faites-en une copie et ouvrez le avec un éditeur de texte.

Cherchez la partie faisant référence au partage root et modifiez la ligne :

avec :

On retourne dans ‘système > maintenance’ et cette fois-ci on y charge la conf avec le fichier modifié.

Rendez-vous dans le menu ‘parcourir’ et allez jusqu’à votre dossier root, précédemment créé… Vous devriez y voir les dossiers suivants :

hacklacie2

 

Note: lorsque le hack est actif ne pas modifier la configuration des partages au risque de supprimer leur contenu.
Note 2 : Le hack est temporaire, si vous redémarrez le partage root sera corrompue et vous trouverez en lieu et place de ce dernier un partage recovered_root_YYYYMMDD_hhmmss share

 

 

 

L’interface Web utilise les droits root, il est donc possible de modifier le contenu de notre partage root.

Téléchargez cette archive et transférez son contenu (telnet.cgi & utelnetd) à l’aide de la fonction ‘upload’ de l’interface web dans le répertoire /root/www/cgi-bin/public/

Reste maintenant à lancer le daemon telnet en vous rendant à l’adresse : http://adresse.de.votre.nas.org/cgi-bin/public/telnet.cgi

Pour vérifier que ce dernier soit actif, faite une tentative de connexion :

Vous devriez vous retrouver devant un shell root :

hacklacie3

On peut à présent recharger la configuration initiale via le menu ‘système > maintenance’ (avec le fichier ‘edconf.xml’ d’origine)

Note : Le hack telnet ne tient pas le reboot, si vous redémarrez vous devrez recommencer de 0

Accès SSH :

Un accès root sans mot de passe via Telnet, ce n’est pas forcément génial pour un truc qui est censé à termes contenir nos données (et ça limite pas mal les fonctionnalités supplémentaires). Cependant bien qu’inactif, un paquet ssh est installé sur ce petit Nas récalcitrant. On va donc de ce pas, le démarrer…

Note : La distro Lacie n’utilise pas le traditionnel sysvinit pour lancer les services au démarrage mais initng qui se manipule à l’aide de la commande ‘ngc’… Pour avoir un peu de détails sur cette dernière :

hacklacie4Lancez ssh :

Patientez une bonne minute pour la génération des clefs.
Une fois fait, on ajoute ce dernier dans la liste des services à lancer au démarrage et on en profite pour initialiser lastlog :

Note : Telnet étant une passware (un néologisme ça fait toujours plaisir :D), l’utilisation de ssh sécurise un peu le canal de communication. Cependant dans l’état actuel des choses, root ne dispose toujours pas de mot de passe.

Facile !!! allez vous me répondre, il suffit de changer le mot de passe root avec la commande ‘passwd’. Oui mais…. Parce qu’il y un mais, à chaque démarrage le lacieOS nettoie les fichiers /etc/passwd et /etc/shadow et supprime le mot de passe root.

Pour se connecter en ssh sans le traditionnel mot de passe nous allons utiliser ssh-keygen qui permet l’authentification via un mécanisme de clefs publiques/privés (oui les mots de passe c’est pour les faibles, c’est bien connu :))

Dans mon cas je génère le couple de clefs depuis le NAS, cependant rien ne vous empêche de le faire depuis votre client. Le tout étant d’ajouter la clé publique sur votre serveur exécutant le daemon ssh et de garder précieusement la clef privée sur votre machine cliente.

On commence par la génération des clefs :

 Note : si votre passphrase ne vous convient pas il est possible de changer cette dernière.

– Modification passphrase sur clé dsa :

 – Modification passphrase sur clé rsa :

On copie le contenu de la clé publique dsa/rsa dans le fichier ~/.ssh/authorized_keys …. Si le fichier n’existe pas :

puis :

On copie ensuite la clef privé sur le poste client, en prenant soin de placer cette dernière dans le répertoire ~/.ssh/ de notre utilisateur :

Lancez un test depuis votre client :

Il vous demande alors le passphrase de votre clé privée puis vous affiche le prompt root.

Improving solution :

Maintenant que l’on a consolidé notre solution à l’aide de ssh, on va essayer d’améliorer un peu la chose… En effet, une passphrase c’est censée être long et compliquée et ce n’est de ce fait pas forcément simple à retenir. Qu’à cela ne tienne on va utiliser notre client en lieu et place de notre cerveau (cerveau qui à la différence de notre machine peu se trouver embrumé les lendemains de fêtes :)) . On va utiliser pour cela un agent ssh qui se chargera d’intercepter la clef publique et de répondre à notre place au moment de l’interrogation du passphrase.

Nous avons besoin de connaitre les variables à exporter pour commencer.

Une fois ces dernières connues on les ajoute dans nos variables d’environnement  :

On insère ensuite la passphrase dans le cache de l’agent à l’aide de la commande :

Note : Pour supprimer une clé et sa passphrase :

Utilisez l’option -D pour supprimer toutes les clés de l’agent.
Utilisez l’option -l pour savoir quelles clés sont chargées par l’agent.

Pour vérifier son fonctionnement listons le répertoire / directement après le lancement d’une session ssh :

Si vous êtes en face de ce résultat, vous pouvez dormir sur vos deux oreilles, redémarrer votre Nas comme bon vous semble et à vous les joies d’un rsync over ssh directement sur cette petite bestiole pour sauvegarder vos 1 et 0 préférés.

Source.

About Raphaël DROITECOUR

Ingénieur réseaux & systèmes, passionné par l'univers Unix/Linux, la virtualisation et les réseaux dans leur ensemble. J'aime à partager (lorsque mon planning me le permet) mes découvertes et recherches via ce blog.
This entry was posted in OpenSource, Sécurité, Système and tagged , , , , , , , , , , . Bookmark the permalink.

One Response to Hack Lacie D2 Network…

  1. Luis says:

    Pardon par mon français, mais le disque dur de mon LaCie d2 Network Attached Storage Ethernet est mort. Je ne peux pas trouver les images de disque pour recréer la structure avec un nouveau disque. Par hasard, avez-vous eux?
    Merci beaucoup.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *