Sécurité

Analyse du dump 000webhost : le nouveau rockyou ?

Publié le : Auteur: llaise Laisser un commentaire
dictionary-attack

000webhosting, hébergeur web gratuit, a subi une attaque en octobre 2015. Ce sont près de 15 millions de comptes qui ont fuité, avec en prime les mots de passes … qui étaient bien entendu stockés en clair.

Pour casser des hashs, il est important d’avoir des dictionnaires diversifiés, complets et … réalistes. N’ayant pas trouvé de comparatif entre les dumps de 000webhost et de rockyou (32 millions de comptes, en 2009), nous allons procéder à une analyse des mots de passe de 000webhost, avec comme témoin le légendaire rockyou.

plaintext_password_everywhere

Analyse quantitative

$ wc -l 000webhost.com_password_only rockyou.txt
 15265402 000webhost.com_password_only
 14344392 rockyou.txt
 29609794 total

Le dump de 000webhost contient un peu plus de 15 millions de mots de passe, contre 14 millions (uniques) pour rockyou. C’est donc un bon début. Mais combien sont uniques ?

$ sort -u 000webhost.com_password_only| wc -l 
10615940

Nous avons donc un peu plus de 10 millions de mots de passe uniques, soit environ 25% de moins que dans rockyou. Nous noterons également que l’unicité des mots de passe est beaucoup plus forte dans la liste de 000webhost que dans celle de rockyou (43 % de doublons)

Top passwords & troncs communs

000webhost_top_10_passwords

 

Rien de très original dans les mots de passe les plus choisis. Nous noterons cependant que « 000webhost » se place en 12ème position, et que « password123 » n’est classé que 24ème. Egalement à noter le mot de passe « YfDbUfNjH10305070 » utilisé près de 10 000 fois… Probablement l’oeuvre d’un bot.

Pour l’analyse de la base commune, nous nous sommes basés sur l’ensemble des mots de passe uniques de chacune des deux listes. Le premier tronc commun des mots de passes de 000webhost est … webhost. Viens ensuite le fameux « qwerty » de nos amis anglophones, puis le très utilisé « love » (et encore plus dans « rockyou »). D’ailleurs, seuls « ALEX » et « LOVE » reviennent dans les deux top-10 de troncs communs.

 

 

your_password_is_bad_and_you_should_feel_bad

000webhost Qte Rockyou Qte
1 webhost 4796 love 9829
2 qwerty 4629 angel 4845
3 alex 3984 june 4347
4 admin 3831 baby 4160
5 love 3321 july 4103
6 password 3107 alex 3816
7 abcd 2483 pink 3331
8 daniel 2298 april 3227
9 jose 2223 sexy 3039
10 pass 2195 chris 3017

 

Et la taille, on en parle ?

Autre donnée intéressante, la taille des mots de passe choisis. Nous constatons que les utilisateurs de 000webhost ont tendance à utiliser des mots de passes plus longs que ceux de rockyou. Nous pouvons probablement imputer cela à une sensibilisation plus importante des utilisateurs sur la longueur des mots de passes. Il est également possible que 000webhosting ait imposé aux utilisateurs une longueur de mots de passe minimale, ce qui les a incité à utiliser un nombre de caractères de 6 ou plus.

000webhost_rockyou_charts_size_password

L’autre information dans ce graphique est que pratiquement 7% des utilisateurs (un peu plus de 700.000, donc) utiliseraient un mot de passe de 16 caractères. L’extrait ci-dessous nous montre quelques-uns de ces mots de passes. Vu leur complexité et leurs nombres, il y a deux possibilités majeures : soit ces comptes sont l’oeuvre d’un bot, soit ces mots de passes sont générés par des gestionnaires de mots de passe (Keepass,1Password, …). Ou alors nous avons 700.000 utilisateurs sensibilisés …  ?

$ grep -x '.\{16\}' 000webhost.com_password_only.txt 
lKfMsPzIxMQsBaWg
SMT0HeDkzNQCoZIY
mahmoudjoker2011
mhmod01126905809
quqqRwTkzNABCfL0
YedHNgDA3Mw5jFfQ
JLWA6mDMzMgnNSc4
aU87o4TM3OA2sY0g
enseraf1375dadam
nvlwzIzc4Ngk82xo
0anDyZzY3NQ0iyCk
Neffisaamalia111
l3AIDuTg3MA9xg9c
GZziEATUzNwhfbeO

Enfin, le tableau ci-dessous précise le top-5 des longueurs de mots de passe plébiscités par les utilisateurs pour chacune des listes.

000webhost Rockyou
1 8  (21%) 8 (21%)
2 10 (15%) 7 (17,5%)
3 9 (14,5%) 9 (15%)
4 11 (11,5%) 10 (14%)
5 12 (8,5%) 6 (13,5%)

Charset en fête

Le dernier paramètre que nous allons observer est celui du choix du jeu de caractères fait par les utilisateurs. Alors, entre masjucules, minuscules, chiffres et caractères spéciaux, quelles combinaisons sont privilégiées par les utilisateurs ?

000webhost_charsets

Avec ces résultats, nous pouvons remarquer plusieurs choses intéressantes.

  • Dans Rockyou, 16% des mots de passes étaient numériques. Pour casser des hashs, les dictionnaires « numériques » ne sont généralement pas intéressant, vu que l’on peut casser de longs mots de passes « full-numeric » avec un bon vieux brute-force et un masque incrémental type « ?d?d?d?d?d?d?d?d?d?d?d?d »
  • Dans Rockyou, 26 % des mots de passe utilisent juste des caractères alphabétiques minuscules, contre 0,06%  dans 000webhost. Si l’on effectue un parallèle avec le résultat précédent, nous pouvons supposer qu’à la création du mot de passe, 000webhost imposait au moins un chiffre et un caractère alphabétique. Bien sûr, nous supposons également que les quelques mots de passes qui existent en numérique/lower-alpha ont été créés avant la mise en place de la politique (ou bien par des administrateurs … 😉 )
  • Les faibles résultats de mots de passe contenant majuscules et chiffres confirment que les utilisateurs n’utilisent que très peu cette combinaison
  • Les caractères spéciaux ne sont jamais sont très peu utilisés…
  • Enfin, les forts pourcentages des charsets minuscules/majuscules/chiffres (19%) et minuscules/chiffres (71%!) confirment que 000webhost est un dictionnaire intéressant, car très réaliste des choix des utilisateurs d’aujourd’hui. Les six années séparant les deux fichiers montrent également que les utilisateurs changent leurs pratiques.

Conclusion

Bien que nous n’en doutions pas une seconde, les mots de passe récupérés dans 000webhost sont une vraie mine d’or pour les pentesters. Evidemment, cette liste sera encore plus utile sur des bases de données anglophones. Cependant, elle doit être associée à des règles pour être encore plus performante, mais en l’état, elle couvre déjà un très large périmètre.

did_you_try_password

Sources

Outils : Pipal, Sprawl, Passpal

Dump : source