Les vraies fausses idées du mot de passe complexe

Matthieu Billaux – Tech Lead Redteam 

mai 24, 2023

Temps de lecture : 5 min

Sommaire

Ce n’est pas le premier et ça ne sera pas non plus le dernier article sur ce sujet, qui continue d’évoluer sans cesse, en partie avec l’engouement pour l’OSINT. Je vous propose de faire le point sur les Google Dorks, ce qui sera un très bon moyen de découvrir ce sujet et pour les sachants, une petite piqûre de rappel et qui sait, pourquoi pas un peu de culture geek pour les diners mondains.

📌 Et si la complexité du mot de passe ne faisait pas tout ?

Pendant longtemps, on nous a dit que la complexité prévalait sur tout. En effet, ajouter des caractères spéciaux, voire exotiques sur un mot de passe, était censé nous assurer que ceux-ci deviendraient plus complexes à casser.

Les PSSI ont alors massivement été amendées à travers le monde et rapidement, on a pu lire un peu partout “un mot de passe doit comporter 8 caractères dont une majuscule, une minuscule, un caractère spécial et un chiffre”.

Cette directive, notamment poussée par le NIST a finalement été considérée comme contre-productive par celui-même qui en était à l’origine. En effet, cette manière de concevoir un mot de passe a entrainé un effet non prévu initialement : la création de patterns facilement identifiables.

En effet, les utilisateurs ont très rapidement adopté les raccourcis suivants :

  • doit comporter 8 caractères = 8, pas 7, pas 9
  • doit comporter une majuscule = autant la mettre au début, une phrase commence par une majuscule
  • doit comporter une minuscule = autant mettre tous les autres caractères en minuscule
  • doit comporter un caractère spécial = le ! est pratique vu son emplacement
  • doit comporter un chiffre = mettons le à la fin pour que ça soit simple à utiliser

Vous l’aurez compris, très rapidement la majorité des mots de passe ressemblaient à Abcdef!1 où Abcdef sont des lettres arbitraires souvent remplacées par autre chose. Mais il était souvent compliqué de trouver un mot de 6 lettres qui soit simple à retenir pour une personne lambda. Ce fût alors l’apparition des post-it sous les claviers ou sur les écrans, avec le mot de passe bien en évidence.

Pire encore, la période fatidique du changement de mot de passe imposée par l’entreprise finissait par arriver. Comment faire pour retenir un nouveau mot de passe quand on avait déjà mis 2 mois à retenir l’ancien sans post-it ? Vous l’avez deviné, on remplaçait le 1 par un 2 et ainsi de suite jusqu’à arriver à 0, et la boucle serait alors bouclée.

À présent, parlons de possibilités mathématiques pour identifier le bon mot de passe sans le connaitre. Si nous partons du principe que le pattern ébauché ci-dessus est vrai, nous avons :

  • 26 possibilités pour le premier caractère (A-Z).
  • Ensuite, nous avons 5 occurrences de caractères en minuscule (a-z), que nous pouvons résumer à 26^5
  • si nous partons du principe que le caractère spécial n’est pas nécessairement un ! mais dans une liste restreinte, nous pouvons estimer à 10 le nombre de possibilités
  • et ensuite, nous avons 10 possibilités de chiffre (0-9)

Combien de mots de passe différents devrions-nous essayer pour trouver le bon ? Prenez le temps de la réflexion, posez l’opération mathématique puis revenez ici.

 

Il y a exactement dans notre cas : 26 * 26^5 * 10 * 10 possibilités, soit 26^6 * 10^2. De manière plus visuelle, il y a 30 891 577 600 combinaisons à tester. Oui, nous avons bien quasiment 31 milliards de possibilités. C’est conséquent, vous en conviendrez…

Néanmoins, en fonction des capacités de calcul dont dispose l’attaquant et surtout de la méthode d’attaque (en ligne ou hors ligne), celui-ci peut aujourd’hui très facilement grimper de manière conséquente. Ainsi une Geforce RTX 3080 utilisée via Hashcat pour casser hors ligne des hashes NTLM peut tester environ 101 GH/s (soit 101 * 10^9 hashes par seconde, soit 101 000 000 000, 101 milliards)*. Il faudrait donc moins d’une seconde à l’attaquant pour trouver le bon mot de passe qui suivrait ce pattern. Ajoutez à cela l’éventuelle utilisation d’un dictionnaire des mots de passe les plus courants et vous obtenez un temps de découverte imbattable.

🎮 Mais alors quelle solution ?

La solution pour rendre le mot de passe plus robuste et mettre l’attaquant en difficulté est sans conteste l’augmentation de la longueur de celui-ci, sans nécessairement forcer une quelconque complexité. Prenons un exemple simple : si je passe sur un mot de passe de 12 caractères au lieu de 8, sans qu’on m’impose de complexité et que je fais le choix discutable de n’utiliser que des minuscules.

Pouvez-vous deviner le nombre de combinaisons à essayer pour être certain de trouver le bon mot de passe ?

Il y a alors 26^12 combinaisons, soit 95 428 956 661 682 176, 95 billiards de possibilités. C’est environ 3 millions de fois plus que précédemment. L’auriez-vous imaginé ?

Reprenons notre calcul de puissance de cassage de mot de passe. Toujours dans les mêmes conditions, l’attaquant mettra environ 945 000 secondes à tester toutes les combinaisons. C’est-à-dire environ 10 jours, mais je vous laisse vérifier le calcul par vous-même.

Alors bien entendu, en fonction de la détermination de l’attaquant et du temps dont il dispose, 10 jours, c’est peu. Et si je montais mon mot de passe à 18 caractères ? Combien de combinaisons y aurait-il ? En gardant strictement l’utilisation de minuscules de A à Z, nous aurions 26 ** 18 possibilités, soit 29 quadrillions (10^21). Et combien de temps pour casser le mot de passe dans ces conditions ? 3 milliards de jours. 3 milliards.

Cela semble intéressant non ?

Si en complément, vous complexifiez le travail de l’attaquant en utilisant des mots simples à retenir, mais sans rapport avec vous, et qu’entre chaque mot, vous ajoutez un chiffre par exemple, la complexité va encore grandir de manière exponentielle, surtout si la longueur de votre mot de passe finit par être de 20 caractères au lieu de 18.

Comment retenir ce nouveau mot de passe ? Utilisez un gestionnaire de mot de passe, et vous pouvez éventuellement adopter la méthode proposée dans cette bulle XKCD :

illustration mot de passe complexe

source : https://xkcd.com/936/‍ 

🛠️ Son fonctionnement

Rien de plus simple, pas besoin de savoir coder ou de comprendre le dernier protocole de routage à la mode. Il suffit de taper son expression dans le moteur de recherche. Les exemples donnés ici, se basent sur Google, mais il est possible d’utiliser d’autres moteurs de recherche en adaptant la syntaxe. Pour rappel, Google n’est pas sensible à la casse (majuscule/ minuscule), ni les mots de structure usuels (articles, conjonctions).

La requête se compose de 2 composants :

  1. L’opérateur,
  2. Le motif de recherche : l’information que vous recherchez.

1. L’opérateur

Il existe différentes catégories d’opérateur : les booléens, la ponctuation, les symboles et les spécifiques.

a. Les booléens

Si vous vous souvenez de vos cours de physique ou de logique, vous avez déjà compris. Ce sont les opérateurs qui viennent des fonctionslogiques.

  • Opérateur : AND  ou +
  • Description : Les sites contenant uniquement les deux termes ou plus mais pas ceux contenant uniquement l’un d’eux.
  • Exemple : Voiture AND électrique  + française

  • Opérateur : OR ou |
  • Description : Permet de rechercher un terme, ou un autre (l’inverse de AND).
  • Exemple : Recette végétarienne OR végétalienne |vegan

  • Opérateur : NOT ou  –
  • Description : Utilisée pour exclure des mots-clés. Tous les mots-clés doivent être trouvés.
  • Exemple : Recette AND burger bacon

b. La ponctuation et les symboles

Encore une fois, si vous manipulez un peu les expressions régulières, vous n’allez pas être perdu. Sinon voici un petit résumé.

  • Opérateur : « »
  • Description : Recherche une expression exacte uniquement dans l’ordre indiqué
  • Exemple : « Salade césar »
  • Opérateur : ..
  • Description : Permet de rechercher dans un intervalle
  • Exemple : Restaurant 20..30
  • Opérateur : *
  • Description : Remplacer  plusieurs caractères ou plusieurs mots
  • Exemple : Salade*
  • Opérateur : ()
  • Description : Rassemble les termes d’une recherche pour s’assurer qu’ils soient bien compris ensemble
  • Exemple : Salade AND (caesar | niçoise)
  • Opérateur : ~
  • Description : Devant un mot permet d’inclure les synonymes de celui-ci
  • Opérateur : @
  • Description : Recherche des tags de réseaux sociaux.
  • Opérateur : #
  • Description : Recherche des sujets tendances précédés d’un hashtag

c. Les spécifiques

Il en existe plusieurs dizaines. Le but n’est pas de tous vous les présenter, mais de vous donner quelques exemples pour voir comment ils fonctionnent. Si vous voulez la liste complète, c’est très facile à trouver

  • Opérateur : site:
  • Description : Rechercher uniquement sur  le site web.
  • Opérateur : inurl:
  • Description : Restreint la recherche à l’URL des pages.
  • Opérateur : intitle:
  • Description : Restreint la recherche à la balise title des pages.
  • Opérateur : Intext:
  • Description : Recherche tous les termes de la requête dans le contenu de la balise body de la page.
  • Opérateur : ext:ou filetype:
  • Description : Recherche un  type d’extension de fichier (ex, pdf, xlsx, docx …)
  • Opérateur : link:
  • Description : Rechercher les liens qui redirigent vers un site
  • Opérateur : domaine:
  • Description : Restreint la recherche à un domaine (Ex: .fr ougouv.fr)
  • Opérateur : ip:
  • Description : Restreint la recherche sur l’ip de la machine
  • Opérateur : Before/after:
  • Description : Permet de recherche avant ou après une date précise
  • Opérateur : cache:
  • Description : Consulter une page telle qu’elle s’affichait lors de la dernière visite de Google.

L’opérateur se termine par « : » suivi du motif de recherche, sans espace 😊
Bien sûr, tous ces opérateurs peuvent se mélanger entre eux. C’est ce qui donnera toute l’efficacité de la requête.

📌 Les cas d’usage

1. Cybersécurité

On ne va pas se le cacher, c’était l’objectif originel du dorking et ça l’est encore aujourd’hui. Cette activité est utilisée par les attaquants. Prenons la kill chain (réalisé par la société Lockheed Martin en 2011) comme exemple. Qu’est-ce que la kill chain ? En bref, c’est la modélisation des différentes étapes d’une attaque cyber.

Le dorking est présent dès la toute première étape qui est celle de la Reconnaissance, parfois appelée footprinting. Cette étape correspond à la collecte d’informations concernant la cible.

D’un point de vue technique :

  • Cartographie des sites exposés ;
  • Cartographie des technologies utilisées (par manque de mise à jour ou en trouvant des profils d’employésun peu trop verbeux par exemple) ;
  • Cartographie des vulnérabilités non ouvertes ;
  • Cartographie des fichiers de logs ;
  • Cartographie des dumps de bases de données
  • …etc

Aujourd’hui il existe une base de données des requêtes, appelée ghdb pour Google Hacking Database qui vous permettra d’occuper vos longues soirées hivernales : https://www.exploit-db.com/google-hacking-database

Il ne faut pas non plus négliger le côté « humain »avec l’ingénierie sociale. Le dorking permet de faire plus facilement :

  • De l’usurpation d’identité en trouvant les relations des employés ;
  • Des profils sur les réseaux sociaux et connaitre les passions et activités d’une personne en vue de créer des supports de phishing plus efficaces.

Ou encore plus directement en trouvant :

  • Des fichiers confidentiels en vue d’espionnage industriel ;
  • Des listes avec des données à caractères personnels ;
  • Des caméras videos :Intitle:”webcamXP 5”’
  • Une session Zoom : inurl: zoom.us/j andintext:scheduled for

2. Le dorking défensif

Si c’est utilisé par les attaquants, le dorking est également utilisé par les défenseurs ou encore pendant un audit de sécurité ou durant les périodes de RedTeam. Rien de mieux que de se mettre dans la peau de l’attaquant pour pouvoir se défendre.

D’un point de vue technique, voici un peu plus précisément le type de recherches basiques qui sera utilisée :

  • SQL Dumps : “index of””database.sql.zip” ;
  • Fichier de log : allintext:usernamefiletype:log ;
  • WordPress Admin : inurl:wp-config-intext:wp-config ” ‘DB_PASSWORD’ ” ;
  • Apache 2 : “Index of”inurl:phpMyAdmin ;
  • phpMyAdmin : “Index of” inurl:phpMyAdmin;
  • Serveur FTP : intitle:”index of” inurl:ftp ;
  • Des noms d’utilisateur et les mots de passe :filetype:mdb inurl:”account|users|admin|administrators|passwd|password”
  • Lister tous les sous-domaines qui utilisent des protocoles non chiffrés : site:monsite.com -inurl:https

 

D’un point de vue plus personnel, vous pouvez rechercher s’il n’y aurait pas des informations un peu trop sensibles vous concernant avec des recherches comme :

  • Bob filetype:pdf OR filetype:xlsx OR filetype:docx
  • Bob intext:”numéro de telephone ou adresse mail”

Ces recherches sont aussi fortement utilisées dans des domaines comme l’OSINT et par des journalistes d’investigation par exemple. Le champ des possibles n’a pas vraiment de limite…

3. Le SEO

Un autre domaine dans lequel l’usage des requêtes avancées peut faire la différence est celui du Search Engine Optimisation ou encore de l’optimisation pour les moteurs de recherche. Vous savez, ce sont toutes les petites actions qui vont permettre à votre site internet d’arriver dans les premiers résultats de Google.

Prenons quelques exemples :

  • Lister ce que Google considère de similaire à votre site avec l’opérateur « reladedd: »
  • Vérifier comment Google affiche votre site avec l’opérateur : « cache: »
  • Afficher toutes les pages indexéeser par le moteur de recherche : site:yourdomain.com

4. Le recrutement

Enfin un dernier domaine où le dorking peut devenir un outil de tous les jours : la recherche de profil à recrutement. Avec l’avènement de l’utilisation de LinkedIn et compagnie, il est presque devenu indispensable aujourd’hui pour quelqu’un qui recherche un nouvel emploi de publier son profil sur la toile. Il est ainsi possible de le retrouver.

Quelques exemples glanés par  –ci, par -là. Je pense que vous allez comprendre par vous-même le but des requêtes :

  • “gmail” site:www.linkedin.com/in data engineer python
  • site:www.linkedin.com/in “data scientist” “* * years|experience of|in|on|with * * * * *”
  • python “data engineer” “email|contact me|at” site:www.linkedin.com/in

🛡️ Comment s’en protéger ?

Les dorks sont parfois là où on s’y attend le moins. Encore en 2020, si on lançait la recherche site:chat.whatsapp.com, Facebook permettait d’accéder à une liste de plus 400 000 liens de groupes « normalement » fermés à la base.

Presque tout le monde peut être concerné. Petite mise en situation :

Vous avez acheté une caméra de surveillance que vous installez en 2 minutes pour surveiller votre chat quand vous êtes absent. La caméra communique avec un serveur et lit la vidéo en temps réel, vous permettant de vous connecter et d’ouvrir le flux vidéo hébergé sur ce serveur à partir de votre téléphone. Ce serveur ne demande pas de mot de passe ou c’est le mot de passe par défaut que vous avez laissé (pour que ce ne soit pas trop compliqué à utiliser) pour accéder au flux de votre webcam. Ce qui rend accessible au monde entier la vie de votre chat (et l’intérieur de chez vous, bienvenue dans Loft Story) en recherchant le texte contenu dans la page d’affichage de la caméra.

Il existe des moyens pour éviter ça. Les premiers conseils évidents mais nécessaires à rappeler sont :

  • Publier des informations sensibles que lorsque que c’est strictement nécessaire ;
  • Ne pas mélanger vie privéeet vie professionnelle (équipement, ressource…) ;
  • Surveiller et personnaliserles configurations des applications ou sites internet des réseaux sociaux, afin de maitriser la portée des publications ;
  • Utiliser un gestionnaire de mots de passe, pour avoir facilement un mot de passe différent sur tous vos profils ;
  • Vérifier les documents partagés sur vos espaces de cloud publics ;

Sur le plan technique, si vous administrez un serveur web,un site internet ou tout autre équipement accessible depuis internet, veillez bien à :  

  • Effectuer les mises à jour régulièrement ;
  • Renforcer les configurations des équipements exposés / accessibles par internet ;
  • Prêter une attention particulière aux fichiers robot.txt, Sitemaps.xml et autres balises Meta, noindex.Vous pourrez trouver facilement des guides de configurations sécurisés ;
  • Chiffrer tous vos mots de passe, identifiants et sauvegardes de bases de données ;
  • Effectuer des scans de vulnérabilités ;
  • Dorkez-vous, c’est parfoisle seul moyen de voir ce qui est possible de trouver sur vous-même.

Pour les plus grosses sociétés, la fuite de données est également une préoccupation en bonne position dans les feuilles de route SSI. Des sociétés spécialisées proposent des services d’outils de DLP (Data LeakPrevention) ou encore des services de Threat Intelligence qui pourront entre autres scanner le darkweb à la recherche de données d’entreprise.

🤓Pour aller un peu plus loin

Maintenant, vous en savez un peu plus sur l’utilisation des moteurs de recherche. L’utilisation des dorks n’est pas compliquée, la difficulté réside dans la connaissance de la structure de l’information que vous recherchez.

Cette méthode de recherche avancée ne se limite plus à Google ou aux autres moteurs de recherche. Il en existe pour d’autres plateformes hébergeant énormément de contenu comme Github,Pastebin, Twitter…

Aujourd’hui, notre Johnny se consacre entièrement à l’organisation Hackers for Charity mais il avait publié plusieurs livres sur les Google dorks, dont le dernier date de 2015.

Sources

https://en.wikipedia.org/wiki/Johnny_Long

https://support.google.com/websearch/answer/2466433?hl=en

https://www.exploit-db.com/google-hacking-database

https://www.bruceclay.com/blog/bing-google-advanced-search-operators/

https://en.wikipedia.org/wiki/Google_hacking

https://medium.com/codex/master-at-google-hacking-dorking-27d14e7249be

https://www.lifewire.com/bing-advanced-search-3482817

https://www.clubic.com/antivirus-securite-informatique/actualite-617326-bluetouff-3000-amende-recherche-google-anses.html

https://www.schauer.fr/wp-content/uploads/2018/01/CA-Hakin9-06-2008-googlehacking.pdf

Commencez votre formation en cybersécurité

Formation

Carrière

Cybersécurité

100% en ligne

Donnez un nouveau souffle à votre carrière avec nos formations cybersécurité

Mail

information@seela.io