FreshRSS

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 22 septembre 2021Flux principal

Améliorez la gestion des mots de passe dans l’AD avec Specops Password Policy

22 septembre 2021 à 11:15

I. Présentation

Dans ce tutoriel, nous allons découvrir le logiciel Specops Password Policy. Il va permettre de mettre en place des politiques de mots de passe très flexibles au niveau de l'Active Directory et d'accompagner les utilisateurs pour le renouvellement de leur mot de passe.

La mise en place d'une politique de mots de passe n'est jamais une tâche facile en entreprise. Bien souvent, les utilisateurs sont réticents à la mise en place de contraintes concernant les mots de passe. Pourtant, c'est indispensable, car les mots de passe sont continuellement pris pour cible lorsqu'il s'agit d'attaquer une entreprise. Ce fameux sésame est la clé qui ouvre la porte à une partie du système d'information. Pour lutter contre les attaques de type brute force et password spraying, il n'y a pas de secrets : il faut mettre des mesures de protection en place.

Nativement, l'Active Directory intègre la possibilité de mettre en place une politique de mots de passe pour les comptes des utilisateurs. Même si l'on peut mettre en place les stratégies de mots de passe affinées, cette solution native ne va pas assez loin en matière de sécurité des mots de passe et dans la gestion du renouvellement de ces mêmes mots de passe.

Quand je dis "cette solution native ne va pas assez loin en matière de sécurité des mots de passe", j'entends par là qu'il n'est pas possible d'interdire les mots de passe trop proches, et qu'il n'est pas possible de vérifier si le mot de passe saisi par l'utilisateur fait déjà l'objet d'une fuite de données (et que, potentiellement, il est déjà présent dans un dictionnaire).

Le logiciel payant Specops Password Policy va apporter des fonctionnalités que l'on peut résumer en trois points :

  • Définir une politique de mots de passe sur mesure pour les utilisateurs (en s'appuyant sur un groupe de sécurité ou en ciblant une unité d'organisation) en appliquant de nombreuses règles
  • Vérifier si le mot de passe est compromis : le mot de passe définit par l'utilisateur est un mot de passe qui est présent dans une fuite de données ou utilisé par des hackers et repéré par Specops grâce à des honeypots
  • Notifier les utilisateurs par e-mail et/ou SMS : le mot de passe expire dans X jours ou le mot de passe a été trouvé dans une fuite de données

Avant de commencer, vous devez télécharger Specops Password Policy. En utilisant mon lien, vous pouvez obtenir une version d'essai de 45 jours (contre 30 jours en temps normal) : de quoi prendre le temps de découvrir le logiciel et d'avoir de premiers retours.

II. Installation de Specops Password Policy

L'installation de Specops Password Policy (SPP) s'effectue en plusieurs étapes. Pour cette démonstration, je vais utiliser 3 machines virtuelles pour reproduire l'installation selon les bonnes pratiques de l'éditeur :

  • 1 serveur contrôleur de domaine Active Directory - SRV-ADDS-01
  • 1 serveur membre Windows Server - SRV-APPLIS
  • 1 poste de travail sous Windows 11

En résumé, je vais installer sur le contrôleur de domaine : les outils d'administration de SPP et le composant Sentinel qui doit être installé sur l'ensemble des contrôleurs de domaine. Sur le serveur membre, je vais installer également les outils d'administration de SPP ainsi que le composant Arbiter. Enfin, le poste de travail sous Windows est là pour tester le logiciel en se mettant dans la peau d'un utilisateur.

A. A quoi correspondent les rôles Sentinel et Arbiter ?

Les rôles Sentinel et Arbiter sont propres à Specops Password Policy, donc je vais vous expliquer l'utilité de ces deux composants.

Le rôle Sentinel s'installe sur tous les contrôleurs de domaine et il est là pour s'assurer que les politiques de mots de passe définies dans SPP sont bien respectées. En fait, lorsqu'un utilisateur va modifier son mot de passe il va l'analyser pour vérifier qu'il respecte bien la politique qui s'applique sur cet utilisateur.

Le rôle Arbiter sert de proxy (ou de passerelle si vous préférez) entre le contrôleur de domaine et les services Cloud de Specops. Il s'installe sur un serveur différent, car on considère que le contrôleur de domaine n'a pas d'accès à Internet. Grâce à une clé d'API, il va communiquer avec le service "Breached Password Protection API" de Specops pour vérifier si le nouveau mot de passe de l'utilisateur est présent dans une fuite de données, auquel cas il sera refusé.

Note : la vérification du mot de passe au travers de "Breached Password Protection API" s'effectue de façon sécurisée. Le mot de passe n'est pas envoyé entièrement pour requêter l'API puisque la requête est effectuée avec les quatre premiers caractères du mot de passe. Ensuite, l'API retourne les mots de passe correspondants s'il y en a, et c'est au niveau local que la vérification est effectuée.

B. Préparation du contrôleur de domaine

Au premier lancement, l'exécutable décompresse ses données dans le dossier "C:\Temp\SpecopsPasswordPolicy_Setup_7.6.21182.1", ce qui sera utile pour la suite, vous verrez. Il faut commencer par installer la console de gestion du logiciel, par l'intermédiaire du bouton "Administration Tools".

Ensuite, il faut cliquer sur le bouton "Add menu ext." puis sur le bouton "Install" pour installer les différents composants liés à la gestion du logiciel.

Ensuite, revenez au menu principal de l'installeur. Cliquez sur "Domain Controller Sentinel".

Sélectionnez tous les contrôleurs de domaine de votre infrastructure pour déployer l'agent partout. Pour ma part, il n'y en a qu'un seul. Une fois la sélection effectuée, il faut cliquer sur "Install".

Voilà, nous en avons fini avec le contrôleur de domaine pour le moment.

C. Préparation du serveur membre

À partir du serveur membre, qui s'appelle dans mon cas "SRV-APPLIS", je vais accéder aux sources d'installation située sur mon serveur SRV-ADDS-01.

\\SRV-ADDS-01\c$\Temp\

Ensuite, j'exécute l'assistant d'installation.

Cette fois-ci, je sélectionne le rôle "Specops Arbiter". Il est à noter que l'éditeur recommande d'installer au minimum deux serveurs avec le rôle Arbiter pour assurer la redondance. Que vous installiez un seul ou plusieurs serveurs Arbiter, le coût reste le même.

Cliquez sur le bouton "Install" et suivez l'assistant.

Comme sur l'autre serveur, installez la console en cliquant sur "Administration Tools", puis cliquez directement sur "Install".

Vous pouvez fermer l'assistant d'installation. Sur votre serveur, vous pouvez ouvrir la console "Specops Password Policy Domain Administration" pour commencer à configurer le logiciel.

Accédez à l'onglet "Domain Settings" : le message "The group has not been created, click Create" apparaît. Cliquez sur le bouton "Create" puis sur "OK". Cela va permettre de créer un groupe nommé "Specops Password Policy Custom Expiration Readers" dans l'Active Directory.

Ensuite, accédez à l'onglet "Breached Password Protection" afin d'enregistrer notre serveur Arbiter ("Register new Arbiter") auprès de l'API Breached Password Protection. Ce qui est indispensable pour utiliser cette fonctionnalité (que nous découvrirons par la suite).

Voilà, laissez la console de côté un instant, nous allons préparer le poste client. Ce sera fait et nous aurons plus à nous occuper de la partie installation.

D. Préparation du poste client

Sur les postes clients, il est recommandé de déployer un agent Specops. Pourquoi ? Cet agent est utile lors de la réinitialisation d'un mot de passe depuis le poste client. Il va permettre d'afficher à l'utilisateur les conditions à respecter pour définir son nouveau mot de passe. Sachez malgré tout que l'installation du logiciel sur les postes clients est facultatif (vous verrez par la suite l'intérêt de ce client).

Cet agent est disponible au format MSI, ce qui va permettre de le déployer facilement par GPO ou avec un logiciel de déploiement. Il est disponible en version 32 bits et 64 bits. La bonne nouvelle, c'est qu'il s'installe très facilement, sans configuration particulière.

Pour ma part, j'ai procédé à l'installation du package "Specops.Authentication.Client-x64.msi" sur une machine Windows 11.

Nous verrons dans la suite de ce tutoriel à quoi ressemble l'intégration au sein du poste client.

III. Création de sa première politique de mots de passe renforcée

Il est temps de créer notre première politique de mots de passe renforcée et surtout une politique sur mesure, que l'on va configurer aux petits oignons, comme on dit.

En haut à gauche, cliquez sur "Password policies". Ensuite, le logiciel va lister les politiques de mots de passe actuelles, y compris celle native de l'Active Directory. Pour notre part, nous allons créer une nouvelle politique : cliquez sur "Create new Password Policy".

Note : pour modifier une politique existante et créée avec Specops, il suffit de la sélectionner et de cliquer sur le bouton "Edit Policy".

Ensuite, la liste de vos GPOs s'affiche. Cliquez sur "New Group Policy object" pour créer une nouvelle GPO qui va utiliser l'extension Specops. Pour ma part, je nomme cette GPO "Password_Policy".

Pendant le processus de création de la GPO, il est nécessaire de sélectionner l'OU sur laquelle appliquer la GPO (et donc la politique de mots de passe). Tout en sachant que la politique s'applique sur les utilisateurs. Une alternative consiste à s'appuyer sur un groupe de sécurité pour appliquer les politiques du logiciel Specops, c'est au choix.

Note : la liaison de la GPO liée à Specops sur les OUs peut être effectuée à partir de la console standard de gestion des GPOs.

Ensuite, vous avez plusieurs choix pour créer votre politique :

  • Custom : une politique sur mesure que vous personnalisez entièrement
  • Microsoft recommendation : politique de mots de passe basée sur les recommandations de Microsoft
  • NCSC recommendation : politique de mots de passe basée sur les recommandations du NCSC (National Cyber Security Centre, équivalent de l'ANSSI au Royaume-Uni
  • NIST recommendation : politique de mots de passe basée sur les recommandations du NIST (National Institute of Standards and Technology, États unis)
  • NSA recommendation : politique de mots de passe basée sur les recommandations de la NSA (National Security Agency, Etats-Unis)

Ce serait intéressant que l'ANSSI entre en contact avec Specops (ou l'inverse) pour intégrer les recommandations de l'ANSSI au logiciel. Ce serait une bonne évolution pour aiguiller les entreprises lors de la création d'une politique.

Pour notre part, nous allons choisir "Custom" pour voir les différentes options proposées par ce logiciel. Le fait d'utiliser une politique qui suit les recommandations permet de partir d'une base, mais vous pouvez ajuster la politique malgré tout.

Nous pouvons définir une politique de mots de passe et une politique de passphrase ("phrase secrète"), que l'on peut considérer comme des mots de passe constitués d'une suite de mots et avec une longueur plus importante que les mots de passe standards. Nous pouvons faire choisir les deux, c'est ce que nous allons faire : choisissez "Enable Both".

Commençons par le premier onglet "General Settings". Au sein de cet onglet, nous allons retrouver les paramètres globaux, notamment au sujet de l'historique des mots de passe.

Note : le message "The password policy is incompatible with the built-in domain password policy...." s'affiche si la politique que vous êtes en train de créer "est plus faible" que la politique de mots de passe intégrée à l'Active Directory. Dans ce cas, il faut ajuster la politique existante pour faire disparaître le message.

Pour être plus précis sur la partie historique des mots de passe :

L'option "Disallow incremental passwords" permet de désactiver l'incrémentation des mots de passe. Je m'explique : un utilisateur avec le mot de passe "Bonjour1" ne pourra pas définir "Bonjour2" ni "Bonjour5" comme mot de passe. Quant à l'option "Number of remembered passwords", elle permet d'indiquer le nombre de mots de passe mémorisés et sur lequel se base l'historique de mots de passe de l'utilisateur.

Il est déconseillé d'utiliser les options "Minimum number of changed characters" (Minimum de caractères différents entre l'ancien et le nouveau mot de passe) et "Disallow reusing part of current password" (Désactiver la réutilisation d'une partie du mot de passe actuel), car, bien qu'elle puisse sembler pertinente, elles nécessitent d'activer le chiffrement réversible au sein de l'Active Directory. Pour des raisons évidentes de sécurité, on évitera et on se contentera des comparaisons basées sur les hash.

Ce que j'aime bien au sein de l'interface de SPP, c'est le panneau d'aide sur la droite. En fait, lorsque l'on positionne la souris sur une option, il y a l'aide concernant cette option qui s'affiche sur la droite. C'est très pratique.

Passons à l'étape suivante : "Password Expiration". Elle va permettre de configurer la politique d'expiration des mots de passe et de paramétrer les notifications associées.

  • Password expiration

En configurant la politique, on peut adopter la logique suivante : plus le mot de passe est long, plus l'utilisateur peut le conserver longtemps. Tout cela est ajustable et on crée des "niveaux d'expiration". Une bonne manière de motiver les utilisateurs pour qu'ils définissent un mot de passe plus long car en général ils n'aiment pas changer leur mot de passe. 😉

Dans l'exemple ci-dessous, il y a trois niveaux d'expiration, mais on peut en créer plus que cela. Un utilisateur qui définit un mot de passe compris entre 10 et 14 caractères devra le changer au bout de 30 jours maximum, tandis qu'un utilisateur avec un mot de passe compris entre 15 et 19 caractères devra le changer au bout de 365 jours maximum.

  • Password expiration notifications

Il est possible de notifier l'utilisateur que son mot de passe arrive à expiration. Cette notification s'effectue par e-mail et vous pouvez choisir combien de jours avant l'expiration du mot de passe vous souhaitez notifier l'utilisateur.

Pour les notifications, l'e-mail est entièrement personnalisable et vous pouvez inclure certaines variables. Ces valeurs dynamiques vont permettre d'intégrer le nom d'utilisateur, le nom d'affichage, l'adresse e-mail ou encore l'adresse e-mail du responsable (si c'est renseigné dans l'AD).

Passons à l'étape "Password Rules". Comme son nom l'indique, cette section va permettre de définir les règles pour les mots de passe, notamment la longueur, les types de caractères, etc.

L'option "Number of required character groups" sert à définir le nombre de types de caractères différents requis pour le mot de passe. Par exemple, si vous définissez "3", vous devez sélectionner au minimum trois types de caractères (la sélection s'effectue en dessous) et pour chaque type, vous pouvez indiquer le nombre minimal. Cela permet d'affiner très précisément.

Vous pouvez appliquer des restrictions au niveau du mot de passe : l'option "Disallow consecutive identical characters" égale à "3" empêche l'utilisation de 3 caractères identiques à la suite. Dans le même esprit, si l'on coche "Disallow full user name in password", l'utilisateur ne pourra pas utiliser son nom d'utilisateur dans le mot de passe.

Il est à noter la présence de la section "Use custom dictionaries". En cliquant sur le bouton "Manage", on a la possibilité de créer un nouveau dictionnaire ou d'en importer un existant.

Par exemple, si l'on crée un nouveau dictionnaire soi-même, il faudra saisir les mots à interdire. La chose que l'on peut faire, c'est indiquer le nom de son entreprise pour empêcher que le nom soit utilisé dans les mots de passe. Indispensable selon moi, car c'est très très courant !

En spécifiant "Connect" en référence à "IT-Connect", cela va bloquer "Connect", "CONNECT", mais aussi "connect" et même "C0nnect" (un zéro à la place du "o"). Le logiciel va prendre en charge les variantes pour renforcer l'interdiction.

Si votre entreprise dispose déjà d'un dictionnaire de mots à bloquer, il est possible de l'importer très facilement grâce à l'option "Import Password File".

Chaque dictionnaire est configurable, notamment pour bloquer les caractères de substitution lors de l'utilisation d'un mot du dictionnaire. Cela correspond à l'option "Character substitution (leet speak)".

Poursuivons la configuration sur notre lancée : rendez-vous dans l'onglet "Passphrase". Dans le cas où l'utilisateur souhaite définir un mot de passe très long, on parlera plus de passphrase. Dans ce cas, une stratégie différente peut s'appliquer afin de choisir la longueur, les types de caractères que vous souhaitez, etc.

Le logiciel va très loin puisque l'on peut créer ses propres règles pour les prérequis, en s'appuyant sur des expressions régulières (RegEx).

Par exemple, si l'on veut imposer une passphrase composée de 3 mots de 6 caractères séparés par un espace, on utilisera cette RegEx :

^\S{6,}\s+\S{6,}\s+\S{6,}$

De la même façon, on peut bloquer les mots identiques :

^(?!.*\b(\w+)\s\1\b).*$

Ainsi que l'utilisation de caractères consécutifs identiques :

^(?!.*(.)\1\1).*$

Ensuite, on peut tester ses règles, au fur et à mesure de préférence, via la zone de saisie "Sample Passphrase". Grâce à nos règles, un utilisateur ne pourra pas utiliser "111111 222222 333333" ni "111111 111111 22222" comme passphrase.

Terminons par la configuration de l'onglet "Breached Password Protection". Grâce à cette fonctionnalité (vendue en complément sous le nom de "Breached Password Protection"), le logiciel SPP va comparer les mots de passe définis par les utilisateurs avec les mots de passe contenus dans les fuites de données connues ou collectés par Specops. On parlera de "leaked password", sans oublier les mots de passe collectés par Specops via les serveurs honeypots. Pour effectuer cette comparaison, le logiciel s'appuie sur le hash des mots de passe, car il ne connaît pas le mot de passe des utilisateurs.

Cette section se découpe en deux zones :

  • Express List : l'analyse est effectuée à partir de la base de mots de passe téléchargée en local (environ 5 Go) sur le serveur et qui contient environ 750 millions de mots de passe (mise à jour tous les deux mois).
  • Complete API : l'analyse est effectuée via API sur la base de mots de passe hébergée en ligne et qui contient 2,5 milliards de mots de passe (mise à jour quotidienne). Par exemple, la base intègre les mots de passe présent dans la fuite de données qui a touchée Fortinet récemment.

Dans le cas où un mot de passe est trouvé dans une fuite de données, l'utilisateur sera averti afin qu'il puisse changer son mot de passe. Cette notification sera envoyée par e-mail, ou par SMS (gratuit/inclus). Le texte de la notification sera en français puisque c'est le message configuré dans Specops qui est repris.

Il y a une option qui permet de forcer la réinitialisation du mot de passe s'il est trouvé dans une fuite ("Continuously check for leaked passwords and force users to change them"). C'est intéressant, mais cela peut poser des problèmes de connexion aux utilisateurs en télétravail (notamment à cause du cache local des identifiants).

Comme je le disais, les notifications sont personnalisables au niveau du texte. Pour envoyer la notification par e-mail, le logiciel reprend l'adresse e-mail de l'utilisateur au niveau de l'Active Directory. Idem pour le numéro de téléphone afin d'envoyer le SMS (ce qui nécessite d'avoir un annuaire bien renseigné).

Nous sommes à la fin de l'assistant de création d'une nouvelle stratégie ! Cliquez sur "OK" pour sauvegarder et nous allons tester le bon fonctionnement de notre politique.

Comme vous avez pu le constater, l'interface de ce logiciel de chez Specops est en anglais, mais la bonne nouvelle c'est que les notifications sont en français. Pour la partie configuration en anglais, cela ne devrait pas vous effrayer en tant que sysadmin. 😉

IV. Tester la politique Specops Password Policy

Avant de passer aux tests, je tenais à vous préciser que le contenu de la stratégie SPP est visible également à partir de l'Editeur de gestion des stratégies de groupe. Il suffit de modifier la GPO et d'accéder à l'emplacement suivant : Configuration utilisateur > Stratégies > Paramètres Windows > Specops Password Policy.

Faisons un test. On va réinitialiser le mot de passe de l'utilisateur "Guy Mauve" à partir du contrôleur de domaine. Bien sûr, la politique Specops que j'ai créée précédemment s'applique sur cet utilisateur. Il suffit de faire un clic droit sur le compte puis de cliquer sur "Réinitialiser le mot de passe". On saisit un mot de passe, par exemple "Connect123!".

On obtient alors une erreur, car le mot de passe ne respecte la politique. Si l'on regarde l'observateur d'événements du serveur (Journaux Windows > Application), on peut voir qu'il y a des événements générés par Specops Password Policy.

Cet échec de réinitialisation de mot de passe a créé un événement : "Password AdminReset for user 'GUY.MAUVE' rejected". Ensuite, on sait que notre mot de passe ne respecte pas les prérequis de la politique "Password_Policy" et en regardant le détail, on peut savoir quels sont les prérequis non respectés.

Si je recommence avec un mot de passe qui respecte tous les prérequis, cela va fonctionner bien entendu.

Maintenant, je vais basculer sur mon poste client où j'ai déployé le client Specops Password Policy... Je me connecte avec l'utilisateur "guy.mauve" et je décide de changer le mot de passe de ce compte (CTRL+ALT+SUPPR > Modifier un mot de passe).

Voici l'écran qui s'affiche :

Un panneau latéral indique quels sont les prérequis à respecter que ce soit pour le mot de passe ou la passphrase (phrase secrète). Lorsque l'utilisateur saisit son mot de passe, les prérequis changent d'état dynamiquement pour que l'utilisateur sache d'où vient le problème si le mot de passe n'est pas accepté.

Note : dans le cas où le client Specops Password Policy n'est pas installé sur le poste client, cela va fonctionner malgré tout. Cependant, le panneau latéral avec les indications ne s'affichera pas.

Dans le cas où l'utilisateur définit un mot de passe qui est repéré dans la base des mots de passe compromis, une notification est envoyée et un événement ajouté au journal (Observateur d'événements > Journaux des applications et des services > Specops).

Voici par exemple le SMS que j'ai reçu puisque c'est mon numéro qui est renseigné dans la fiche Active Directory de l'utilisateur "guy.mauve". Je vous rappelle que le message peut être défini en français, il suffit de modifier le texte de la notification au sein de la politique.

Quoi qu'il en soit, cette démonstration dans la peau d'un utilisateur permet de se rendre compte de l'utilité du client Specops Password Policy sur les postes et du système de notifications.

V. Analyse des résultats avec Specops Password Auditor

Après avoir mis en place Specops Password Policy, il est intéressant de relancer une nouvelle analyse avec Specops Password Auditor pour voir l'impact de cette nouvelle configuration. Si vous aviez de nombreux mots de passe vulnérables avant la mise en œuvre de SPP, les choses ont dû évoluer dans le bon sens désormais.

Si vous souhaitez découvrir Specops Password Auditor (logiciel gratuit), je vous invite à regarder ma vidéo à ce sujet.

Un logiciel que vous pouvez télécharger gratuitement via cette page : Télécharger Specops Password Auditor.

L'analyse effectuée par Specops Password Auditor suite à la mise en place de Specops Password Policy doit donner des résultats satisfaisants : pas d'utilisateurs sans mot de passe, pas de mots de passe compromis, etc.

Si l'on regarde la conformité de notre politique "Password_Policy" vis-à-vis des recommandations des différents organismes de sécurité, on peut voir qu'elle s'en sort bien également.

Avant de mettre en œuvre SPP, je vous recommande d'effectuer une analyse avec Specops Password Auditor afin de voir la valeur ajoutée de SPP après quelque temps d'utilisation.

Cette découverte de Specops Password Policy touche à sa fin ! N'hésitez pas à tester le logiciel de votre côté et à poster un commentaire si vous avez des questions.

Je vous laisse avec le lien de téléchargement qui vous permettra d'obtenir une version d'essai de 45 jours tout en sachant que le coût de la licence dépend du nombre d'utilisateurs à protéger avec Specops Password Policy :

Télécharger Specops Password Policy

The post Améliorez la gestion des mots de passe dans l’AD avec Specops Password Policy first appeared on IT-Connect.
À partir d’avant-hierFlux principal

Comment créer une campagne de phishing avec Gophish ?

16 septembre 2021 à 11:30

I. Présentation

Dans ce tutoriel, nous allons voir comment utiliser le framework open source Gophish pour créer une campagne de phishing (hameçonnage) dans le but d'évaluer le niveau de vigilance des utilisateurs.

Grâce à Gophish, vous allez pouvoir créer différentes campagnes de phishing et les diffuser auprès de vos utilisateurs, dans le but de les sensibiliser, de les entraîner, afin qu'il soit capable d'adopter les bons réflexes lorsqu'ils se retrouvent face à un e-mail douteux.

Visiter le site officiel de Gophish

Voici les fonctionnalités principales de Gophish :

  • Création d'utilisateurs et de groupes d'utilisateurs (cibles)
  • Création de template pour les e-mails de vos campagnes
  • Création de landing page pour vos campagnes (exemple : un formulaire de connexion)
  • Envoyer des campagnes de phishing avec suivi des e-mails (e-mail envoyé, e-mail ouvert, clic sur le lien, données récoltées via le formulaire) pour chaque utilisateur
  • Reporting sur les campagnes
  • API pour interroger Gophish à distance et récupérer des informations

Voici à quoi ressemble le tableau de bord de Gophish, accessible à partir d'un navigateur :

Tableau de bord de Gophish
Tableau de bord de Gophish

Bien sûr, un tel outil peut être détourné pour créer des campagnes malveillantes, mais ce n'est clairement pas l'objectif de cet article.

De nombreuses attaques informatiques débutent par un e-mail malveillant et un utilisateur piégé ! Je vous encourage à utiliser Gophish (ou un autre outil) pour sensibiliser et entraîner vos utilisateurs ! Rien de mieux que la pratique pour vérifier s'ils ont bien compris la session de formation visant à les sensibiliser.

Remarque : via Office 365 / Microsoft 365, Microsoft propose une fonctionnalité qui permet de réaliser des campagnes de phishing pour sensibiliser vos utilisateurs. Cela nécessite d'utiliser des licences Microsoft 365 E5.

II. Rappel : c'est quoi le phishing ?

Le phishing, ou hameçonnage en français, est une technique utilisée dans le cadre d'attaques informatiques pour inciter l'utilisateur à communiquer des informations personnelles (nom d'utilisateur, mot de passe, numéro de carte bancaire, etc.) à partir d'un e-mail, d'un SMS, etc... Qui va rediriger l'utilisateur sur une page Web malveillante.

Par exemple, le pirate informatique va créer une copie de la page de connexion sur Facebook et il va inclure un lien vers cette copie dans l'e-mail qu'il va envoyer aux utilisateurs ciblés. Si l'utilisateur clique sur le lien, accède à la page et saisit ses informations de connexion, le pirate va récupérer les informations saisies par l'utilisateur. Il peut alors usurper l'identité de l'utilisateur et se connecter à son compte Facebook, mais cela fonctionne pour tout autre compte (Google, impôts, banque, etc.).

Exemple d'un e-mail de phishing

III. Installation de Gophish

L'outil Gophish est disponible gratuitement sur Github et il existe des binaires pour Windows, Linux et macOS. Sinon, vous pouvez aussi le compiler vous-même ou utiliser un container Docker pour le tester rapidement.

Pour ma part, je vais utiliser le binaire pour Windows. On obtient un ZIP qu'il suffit de décompresser. Ensuite, il faut exécuter "gophish.exe".

Note : le serveur qui héberge Gophish doit être accessible par les machines de vos utilisateurs pour que la page Web puisse s'afficher lorsqu'ils vont cliquer sur le lien contenu dans l'e-mail.

Par défaut, Gophish s'appuie sur une base de données SQLite, mais il est possible de configurer un serveur MySQL. Le fichier de configuration se nomme "config.json" et il est situé au même endroit que l'exécutable.

Au premier démarrage, il y a quelques informations intéressantes à relever :

  • Le compte par défaut se nomme "admin" et le mot de passe généré aléatoirement est communiqué dans la console (il faudra le changer à la première connexion)
  • L'interface de Gophish pour afficher les pages web de vos campagnes est accessible sur le port 80/HTTP
  • L'interface d'administration de Gophish est accessible en HTTPS sur le port 3333
Démarrage de Gophish
Démarrage de Gophish

Laissez Gophish tourner et connectez-vous sur l'interface d'administration.

IV. Configuration de Gophish

Pour se connecter depuis la machine locale, il suffit d'accéder à l'adresse "https://127.0.0.1:3333" à partir d'un navigateur. Connectez-vous avec le compte admin et modifiez le mot de passe.

Dans cet exemple, mon objectif est de créer une campagne de phishing en reprenant un e-mail d'Instagram qui renvoie vers une page Web avec un formulaire.

Avant de pouvoir envoyer notre première campagne de phishing, il va falloir préparer un certain nombre d'éléments : c'est ce que nous allons faire, étape par étape. Suivez le guide !

A. Création des utilisateurs et des groupes

Nous devons commencer par créer nos utilisateurs et nos groupes. On peut imaginer qu'un groupe correspond aux utilisateurs d'un service ou d'un site. Lorsqu'une campagne de phishing sera envoyée, il faudra cibler un ou plusieurs groupes.

Cliquez sur "Users & Groups" puis sur "New Group".

Nommez votre groupe en renseignant le champ "Name" et ensuite vous avez deux options :

  • Créez vos utilisateurs un par un, en remplissant le formulaire et en cliquant sur "Add". Cela peut vite être chronophage...
  • Créez vos utilisateurs à l'aide d'un fichier CSV que vous pouvez importer avec le bouton "Bulk Import Users". Cela me plaît un peu plus et de toute façon on ne peut pas établir de connexion avec un annuaire externe.
Importer les utilisateurs dans Gophish
Importer les utilisateurs dans Gophish

On va s'intéresser un peu plus à la deuxième option : l'import CSV. Je ne suis pas trop du genre à faire des saisies en boucle pendant des heures...

D'après le template fourni par Gophish, on doit fournir un fichier CSV avec 4 colonnes et la virgule comme séparateur :

"First Name","Last Name","Email","Position"

Je ne sais pas vous, mais j'ai envie de faire une extraction des comptes de l'Active Directory pour importer les comptes dans Gophish. On va dire que "First Name" correspond à l'attribut "givenName", "Last Name" à l'attribut "sn", "Email" à l'attribut "mail" et "Position" à l'attribut "Title" des objets utilisateurs.

Pour ce premier groupe, je vais récupérer les utilisateurs de l'OU "OU=Personnel,DC=it-connect,DC=local" et exporter le résultat vers un fichier CSV ("C:\UsersGophish.csv").

En PowerShell, cela me donne la commande suivante (et tant qu'à faire avec les bons noms de colonnes souhaités par Gophish). Adaptez le paramètre -SearchBase et éventuellement le chemin de sortie du CSV.

Get-ADUser -Filter * -SearchBase "OU=Personnel,DC=it-connect,DC=local" -Properties mail,givenName,sn,title | Select-Object @{n='First Name';e={$_.givenName}},@{n='Last Name';e={$_.sn}},@{n='Email';e={$_.mail}},@{n='Position';e={$_.Title}} | Export-CSV -Path "C:\UsersGophish.csv" -Delimiter "," -NoTypeInformation

J'obtiens un joli CSV que je n'ai plus qu'à importer.

Exemple d'un CSV formaté pour Gophish
Exemple d'un CSV formaté pour Gophish

Note : vous pouvez aussi jeter un œil au script GoLDAP qui sert à importer les utilisateurs d'un annuaire LDAP vers Gophish.

Les utilisateurs, c'est réglé ! Passons à la suite.

B. Créer l'e-mail pour la campagne de phishing

Seconde étape : la création du modèle d'e-mail que l'on va envoyer aux utilisateurs dans le cadre de cette campagne de phishing.

Cliquez à gauche sur "Email Templates" puis sur le bouton "New Template".

Pour créer le modèle, vous pouvez partir de zéro ou importer le code HTML d'un e-mail existant (ce qui est intéressant pour gagner du temps) grâce au bouton "Import Email". Pour cet exemple, j'ai repris un modèle que j'ai trouvé ici et que j'ai traduit en français.

Dans tous les cas, je vous recommande d'utiliser l'éditeur HTML afin de pouvoir modifier les balises. Lorsque vous cliquez sur le bouton "Source", vous pouvez basculer entre l'affichage du code et la prévisualisation de votre e-mail. Le bouton le plus à droite permet de prévisualiser l'e-mail dans un nouvel onglet.

Pour accéder à tous les boutons de l'éditeur de texte, notamment pour insérer des liens, il faut cliquer sur le bouton "Source". Vous pouvez aussi insérer des balises où la valeur sera dynamique, notamment pour reprendre le prénom ou le nom de l'utilisateur : avec un "Bonjour Florian", vous avez plus de chance de piéger l'utilisateur qu'avec un simple "Bonjour". À vous de juger le niveau de difficulté que vous souhaitez pour ce premier essai. 😉

Les champs personnalisés pour Gophish
Les champs personnalisés pour Gophish

Pour renvoyer vers la landing page qui contient le formulaire, il faut ajouter un lien à l'e-mail. Sur ce lien, il faut indiquer l'URL "{{.URL}}" qui sera remplacée par Gophish par la bonne valeur.

Mon e-mail est prêt, voici un aperçu :

C. Créer la landing page pour récupérer les identifiants

Troisième étape : création de la landing page qui sera une page piégée puisque si l'utilisateur complète le formulaire, nous allons le savoir ! S'il clique sur le lien, nous allons le savoir aussi !

Cliquez sur "Landing Pages" sur la gauche du menu puis sur "New Page".

Donnez un petit nom à votre template et ensuite il faut passer à la construction.

Vous pouvez partir de zéro comme pour l'e-mail ou importer un site à partir d'une URL et du bouton "Import Site". Alors, vous pouvez importer la page d'un site existant, mais il faudra adapter le code source : le formulaire que vous allez récupérer ne sera peut-être pas conforme aux attentes de Gophish (notamment les noms des champs du formulaire). C'est la partie la plus délicate (si vous cherchez à copier Instagram, par exemple), mais si vous reprenez un portail de votre entreprise pour cette campagne, ça devrait aller.

Pour ma part, j'ai créé une page très basique pour cette démo.

Si vous souhaitez récupérer les informations saisies par les utilisateurs, cochez les cases "Capture Submitted Data" et "Capture Passwords" pour le mot de passe (même si vis-à-vis du RGPD, je pense qu'il vaut mieux éviter l'option "Capture Passwords"). Il est précisé que le mot de passe sera stocké en clair, mais finalement on peut se passer de la récupération du mot de passe. Sauf si vous souhaitez engueuler l'utilisateur s'il utilise un mot de passe faible (pour ne pas dire autre chose) en plus de s'être fait piéger.

Création d'une landing page Gophish

Voici le code source de ma superbe page :

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="" method="post" name="form"><label>Nom d&#39;utilisateur:</label> <input type="text" /><br />
<label>Mot de passe:</label> <input name="password" type="password" /><br />
<input id="login" type="submit" value="Se connecter" />&nbsp;</form>
</body>
</html>

Si vous arrivez à piéger un utilisateur avec ça, je suis inquiet pour vous. Enregistrez... La page est prête !

D. Configurer le serveur SMTP

Avant de lancer la campagne, il nous reste une dernière étape : la configuration du serveur de messagerie (SMTP). Vous vous en doutez, il va servir à envoyer les e-mails de nos campagnes de phishing.

Sur la gauche, cliquez sur "Sending Profiles" puis sur "New Profile".

Ensuite, vous devez nommer votre profil et renseigner les informations en complétant le formulaire.

Gophish et la configuration du SMTP

Voici quelques indications :

  • From : adresse e-mail utilisée pour envoyer les e-mails, c'est-à-dire l'expéditeur. Si vous effectuez une campagne de sensibilisation axée sur Instagram, il peut être intéressant d'utiliser un nom de domaine trompeur et semblable à "@instagram.com". S'il n'a rien à voir, ce sera plus facile pour les utilisateurs de voir qu'il s'agit d'un piège : mais ce sera aussi l'occasion de voir s'ils ont bien compris qu'il fallait vérifier l'e-mail de l'expéditeur (même si ce n'est pas suffisant).
  • Host : serveur SMTP à utiliser pour envoyer les e-mails, suivi du port (séparé par ":")
  • Username : compte utilisateur pour s'authentifier sur le serveur SMTP
  • Password : le mot de passe de ce compte

Pour valider que ça fonctionne, cliquez sur "Send Test Email". Si c'est bon, vous pouvez continuer.

Note : vous pouvez créer plusieurs profils, car en fonction de la campagne, vous n'allez peut-être pas utiliser la même adresse d'expéditeur.

E. Lancer la campagne de phishing

Tout est prêt ! Nous allons pouvoir créer notre première campagne de phishing et tester nos utilisateurs !

Cliquez sur le menu "Campaigns" puis sur "New Campaign".

Pour créer cette campagne nommée "Instagram n°1", on va réutiliser les éléments créés précédemment : "Email Template", "Landing Page" et "Sending Profile".

Concernant, les autres options :

  • URL : indiquez le nom de domaine ou l'adresse IP (là aussi, essayez de faire en sorte de tromper vos utilisateurs pour les évaluer correctement) où les utilisateurs pourront contacter votre serveur Gophish.
  • Launch Date : date à laquelle envoyer la campagne, par défaut c'est immédiatement. Si vous spécifiez aussi une date pour le champ "Send Emails By", Gophish enverra les e-mails à un moment donné entre la date de début ("Launch Date") et la date de fin ("Send Emails By"). Ainsi, tous les utilisateurs ciblés ne vont pas recevoir l'e-mail en même temps.
  • Groups : sélectionnez un ou plusieurs groupes d'utilisateurs que vous souhaitez cibler avec cette campagne.
Créer une campagne dans Gophish
Créer une campagne dans Gophish

Quand tous les champs sont complétés, cliquez sur "Launch Campaign" pour démarrer la campagne ! Le tableau de bord de la campagne va s'afficher et la section "Details" vous indique la "progression" pour chaque utilisateur.

F. Consulter les résultats de la campagne de phishing

En tant qu'utilisateur ciblé par la campagne de phishing, j'ai reçu l'e-mail ci-dessous, avec le fameux "Bonjour Florian". On peut voir que le lien renvoie vers mon serveur Gophish (et l'adresse IP spécifiée dans la campagne).

Je décide de cliquer sur le lien : j'arrive bien sur la landing page. Je suis confiant, je vais me connecter comme indiqué dans l'e-mail....

Dans le même temps, sur l'interface de Gophish, on peut voir qu'il y a un utilisateur qui a ouvert l'e-mail, cliqué sur le lien et envoyé des données.

Note : la section "Email Reported" indique le nombre d'utilisateurs qui ont signalé cet e-mail pour dire qu'il était malveillant. Un utilisateur qui a signalé l'e-mail frauduleux au service informatique doit être récompensé ! 😉 - Pour configurer cette fonction, rendez-vous dans "Account Settings" puis "Reporting Settings" : configurez la boîte e-mail qui sert à vos utilisateurs à remonter les incidents de sécurité au service informatique.

En complément, la "Campaign Timeline" nous donne un aperçu des événements dans le temps, avec le nom d'utilisateur et l'action effectuée. C'est plutôt bien fait !

Au niveau de la section "Details", je peux voir que l'utilisateur "Florian Burnel" a envoyé des données via le formulaire ! Je peux même obtenir le détail des actions avec la date et l'heure, c'est très précis !

En affichant tous les détails, je peux également visualiser le mot de passe envoyé par le formulaire de ma landing page : "JeTeDonneMonMotDePasse". Finalement, je crois qu'il m'a démasqué et qu'il s'en amuse ! 😉

En complément, le bouton "Complete" permet de terminer une campagne et de l'archiver (les résultats restent accessibles). Enfin, vous pouvez exporter un rapport au format CSV en cliquant sur "Export CSV".

Cette démo de Gophish est terminée ! Maintenant, c'est à vous de jouer ! Pensez à former les utilisateurs puis à les tester avec Gophish. Dans la foulée de la campagne, effectuez une seconde session de sensibilisation auprès des utilisateurs qui se font piéger. Sans oublier une piqûre de rappel pour tout le monde, de temps en temps.

The post Comment créer une campagne de phishing avec Gophish ? first appeared on IT-Connect.

Windows : comment se protéger de la vulnérabilité PrintNightmare ?

2 juillet 2021 à 17:33

I. Présentation

Dans cet article, je vais vous expliquer comment vous protéger contre la vulnérabilité PrintNightmare, associée à la référence CVE-2021-34527 et qui cible le service "Spouleur d'impression" de Windows. Nous mettrons en place une GPO de protection.

PrintNightmare, c'est le nom de la nouvelle vulnérabilité critique qui touche le service "Spouleur d'impression" de Windows et qui inquiète particulièrement, car elle est activement exploitée. D'ailleurs, elle peut être exploitée à distance et lorsqu'une attaque est menée à bien, elle peut permettre à un attaquant de récupérer les droits SYSTEM sur un contrôleur de domaine.

Dans un premier temps, cette vulnérabilité a été associée à une nouvelle manière d'exploiter la faille CVE-2021-1675, corrigée le 8 juin dernier à l'occasion du Patch Tuesday. Mais in fine, il s'agit bien d'une nouvelle faille de sécurité de type Zero Day (qui a fuité un peu par erreur) et qui a sa propre référence CVE : CVE-2021-34527.

La faille de sécurité PrintNightmare concerne de nombreuses versions de Windows : Windows 7, Windows 8.1 et Windows 10, ainsi que toutes les versions de Windows Server depuis Windows Server 2008, y compris en Server Core (installation sans interface graphique).

L'ANSSI estime qu'il faut prendre cette vulnérabilité très au sérieux, tout comme l'agence américaine CISA (Cybersecurity and Infrastructure Security Agency).

Voici les recommandations à appliquer pour se protéger contre cette vulnérabilité.

II. PrintNightmare : les recommandations pour se protéger

Pour appliquer les recommandations ci-dessous, tenez compte des rôles de vos serveurs (contrôleurs de domaine, serveur d'impression, etc.), mais aussi des postes de travail. En fonction de votre infrastructure et des usages, tout n'est pas forcément applicable sur toutes les machines.

A. Désactiver le service "Spouleur d'impression"

Tout d'abord, il est recommandé de désactiver le service Spouleur d'impression sur les contrôleurs de domaine et sur tous les serveurs où le spouleur d'impression n'est pas utile (ce service gère les interactions entre votre machine et les imprimantes).

Attention : quand ce service est arrêté, il n'est plus possible d'imprimer à partir de l'hôte local. Cela n'est pas gênant sur la majorité des serveurs, mais à l'inverse cela peut être problématique sur les postes de travail.

Pour définir le type de démarrage "Désactivé" sur le service "Spouleur d'impression" ou "Print Spooler" en anglais. Voici la commande PowerShell qui permet d'effectuer cette configuration :

Set-Service -Name Spooler -StartupType Disabled

Une fois que le type de démarrage du service est modifié, il faut arrêter le service. En PowerShell, cela donne :

Stop-Service -Name Spooler

Une autre manière de faire consiste à créer une GPO. Grâce à cette GPO, on va pouvoir désactiver le service et l'arrêter. Parcourez les paramètres de cette façon :

Configuration ordinateur > Préférences > Paramètres du Panneau de configuration > Services

Créez une nouvelle configuration de service via un clic droit et configurez-le de cette façon :

Note : pour appliquer cette configuration de service à seulement certains hôtes, vous pouvez utiliser le ciblage avancé sur cet élément via l'onglet "Commun".

Sachez que de manière générale, sans parler de cette faille de sécurité, il est recommandé de désactiver le "Spouleur d'impression" sur les contrôleurs de domaine.

Passons à la seconde recommandation.

B. Bloquer les interactions distantes sur le Spouleur d'impression

Le paramètre "Autoriser le spouleur d'impression à accepter les connexions des clients" doit être désactivé pour bloquer les connexions en question.

Attention : quand ce paramètre est désactivé, les demandes d'impression distantes sont refusées. Concrètement, vous ne pouvez plus partager d'imprimantes sur l'hôte où s'applique cette stratégie. Par contre, il est toujours possible d'imprimer (sauf si le service Spouleur d'impression est arrêté) : ce qui est intéressant pour les postes clients. Il n'y a que le serveur d'impression que ça devrait gêner, finalement.

Toujours dans une GPO, ce paramètre est accessible à cet endroit :

Configuration ordinateur > Stratégies > Modèles d'administration > Imprimantes

C. Configurer le pare-feu Windows

L'ANSSI recommande "d'interdire les connexions entrantes sur les ports 445 et 139 (canaux nommés SMB) ainsi qu'interdire les connexions à destination du processus spoolsv.exe". Là encore, nous pouvons agir par GPO et ces règles sont là pour protéger les postes de travail puisqu'ils ont besoin du service d'impression.

Note : si vous utilisez le pare-feu de votre Endpoint, ce n'est pas utile de configurer le pare-feu de Windows par GPO : modifiez directement la politique de votre solution de sécurité pour créer des règles.

Suivez le chemin suivant :

Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Pare-feu Windows Defender avec fonctions avancées de sécurité (x2) > Règles de trafic entrant

Créer une nouvelle règle de trafic entrant via un clic droit : un assistant va démarrer.

Pour le type de règle, on ne va pas s'embêter à créer nos propres règles, car ce que l'on cherche à faire correspond à un modèle prédéfini. Choisissez "Partage de fichiers et d'imprimantes".

Cochez ensuite toutes les règles pour tout bloquer.

Concernant l'action à appliquer, choisissez "Bloquer la connexion". Bien sûr. 😉

Une fois la règle créée, vous obtenez le résultat ci-dessous. Ce qui pourrait vous gêner éventuellement, c'est le blocage du SMB pour l'accès distant aux fichiers des machines. Là encore, testez et surtout adaptez en fonction des rôles de la machine ciblée.

D. Détection d'une attaque sur le système

Lorsqu'une machine est victime de la faille de sécurité PrintNightmare, elle va générer des événements que l'on peut capturer et détecter à l'aide de l'Observateur d'événement de Windows, au sein du journal lié à la sécurité, mais aussi du journal de l'outil System Monitor (s'il est installé). Ces logs peuvent être collectés et analysés dans un outil adapté de type SIEM.

L'ANSSI indique qu'il faut prêter attention à l'événement avec un ID 4688 lorsqu'il est généré par le processus spoolsv.exe (Spouleur d'impression). Ce type d'événement n'est pas généré par défaut, voici comment l'activer.

Pour assurer un suivi des processus dans l'observateur d'événements, il faut activer le paramètre "Auditer le suivi des processus". Il se situe à cet emplacement :

Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Stratégie d'audit

Ensuite, pour générer les événements avec l'ID 4688, il faut activer le paramètre "Inclure une ligne de commande dans les événements de création de processus" qui se trouve sous :

Configuration ordinateur > Stratégies > Modèles d'administration > Système > Audit de création de processus

Sur les serveurs où l'application des règles de protection n'est pas possible, il est d'autant plus important de mettre en place cette génération des logs et d'en assurer la surveillance.

Quelques mots pour finir...

- Sur les postes de travail et les serveurs (autre que contrôleur de domaine et serveur d'impression), il sera possible dans la majorité des cas de désactiver le paramètre de GPO "Autoriser le spouleur d'impression à accepter les connexions des clients" et de configurer le pare-feu Windows, ce qui permettra de se protéger.

- Sur les contrôleurs de domaine, on pourra désactiver et arrêter le service Spouleur d'impression, et désactiver le paramètre de GPO "Autoriser le spouleur d'impression à accepter les connexions des clients" en complément. Si vous manipulez le pare-feu, attention avec les règles qui bloquent le SMB, vous allez avoir de mauvaises surprises : cela va bloquer l'accès au partage SYSVOL.

- Sur les serveurs d'impression, cela semble difficile d'appliquer ces recommandations sans remettre en cause le bon fonctionnement du service d'impression. Si vous utilisez une solution d'impression tierce avec son propre spouleur, alors ce sera surement une chance, car vous pourrez probablement appliquer une ou plusieurs de ces recommandations. Sinon, il faut mettre les serveurs d'impressions sous surveillance.

J'espère que cet article pourra vous aider à combattre la vulnérabilité PrintNightmare ! Bon courage !

The post Windows : comment se protéger de la vulnérabilité PrintNightmare ? first appeared on IT-Connect.

Google Dorks – Google Hacking : exploiter toute la puissance de Google

23 juin 2021 à 11:30

I. Présentation

Lorsque l'on parle de Google Dorks ou de Google Hacking, on fait référence aux méthodes de recherches avancées sur le moteur de recherche de Google. Cette méthode d'investigation sur Internet s'appuie sur le principe de l'OSINT (Open Source Intelligence ou renseignement par source ouverte).

Dans cet article, je vais vous montrer comment tirer profit d'un moteur de recherche comme Google pour rechercher des informations très précises. Je dirais même que ces méthodes de recherches avancées vont permettre d'exposer l'invisible. Avant cela, il me semble important de vous expliquer comment fonctionne l'indexation des pages et du contenu au sein des moteurs de recherche.

Avis de non-responsabilité : cet article et cette vidéo sont réalisés à titre éducatif. Je ne serai pas responsable des activités réalisées à partir des connaissances acquises avec ce contenu.

🎥 Disponible au format vidéo :

II. L'indexation des pages et du contenu sur Google

Les moteurs de recherche contiennent des milliards de pages dans leurs index et ces pages sont retournées dans les résultats en fonction de la demande de l'utilisateur. Pour indexer les pages, les moteurs de recherche s'appuie sur ce que l'on appelle des crawlers (mais aussi : agents, bots ou encore robots).

On peut dire que le robot d'un moteur de recherche sait faire deux choses :

  • Lire le contenu d'une page et enregistrer son contenu dans la base du moteur de recherche (indexation)
  • Suivre les liens contenus dans une page : accès à d'autres pages, qui peuvent être indexées également

Néanmoins, nous avons le pouvoir de dire si "oui" ou "non", on autorise le robot à indexer une page dans sa base. Pour cela, on déploie à la racine de son site Internet ou de son application Web, un fichier nommé "robots.txt". Ce fichier contient les règles d'indexation que doivent appliquer les robots.

Note : l'indexation des pages sur un site Internet s'appuie aussi sur un fichier Sitemap. Ce fichier va servir à déclarer les pages à indexer pour faciliter le travail des robots.

Dans l'exemple ci-dessous, on autorise tous les User-agent - c'est-à-dire tous les robots - dans tous les répertoires sauf le contenu du répertoire "/wp-admin/". Il s'agit d'un répertoire sensible puisqu'il s'agit du répertoire de l'interface d'administration sous WordPress.

User-agent: *
Disallow: /wp-admin/

Dans le même esprit, si vous hébergez des PDF sur votre site Web et que vous ne souhaitez pas qu'il soit indexé, il faudra inclure une règle pour le dire :

User-agent: *
Disallow: /*.pdf$

Il existe de nombreux robots différents. Par exemple, nous avons :

  • Google Images : Googlebot-Image,
  • Google : Googlebot,
  • Bing : Bingbot,
  • Qwant : Qwantify ou Qwant-news
  • DuckDuckGo : DuckDuckBot

Grâce au fichier robots.txt évoqué précédemment, on peut gérer les règles pour chaque robot, mais généralement on le fait de façon globale pour rester cohérent. Il est à noter que Google propose un outil en ligne pour tester son fichier "robots.txt" : un bon moyen de tester ses règles.

Vous l'aurez compris, un mauvais lien placé sur une page ou une mauvaise gestion du fichier robots.txt peut mener à l'indexation de pages ou de fichiers sensibles avec du contenu confidentiel. C'est là que la notion de Google Dorks entre en jeu !

Grâce aux Google Dorks, nous allons pouvoir trouver des informations cachées mais disponibles car elles sont indexées par Google. Les propriétaires de ces pages ne sont pas au courant qu'elles sont indexées, alors c'est là que ça peut devenir dangereux et préjudiciable !

III. Que peut-on trouver avec les Google Dorks ?

Comme je le disais, avec les Google Dorks on peut exposer l'invisible ! Lorsque l'on effectue une recherche sur Google ou un autre moteur de recherche, on saisie généralement une phrase, par exemple "Qu'est-ce que les Google Dorks ?" ou alors quelques mots clés "définition google dorks". Ensuite, le moteur de recherche nous retourne toutes les pages où il a trouvé ses mots, en classant ses pages par pertinence grâce à ses algorithmes.

Ce sont des requêtes basiques que l'on utilise tous les jours et qui permettent de rechercher de l'information. Quand on parle de Google Hacking, on effectue des recherches avancées que l'on peut associer à une investigation.

On peut trouver tellement de choses différentes qu'il n'est pas possible d'établir une liste exhaustive. Voici tout de même quelques exemples de ce que l'on peut trouver grâce aux Google Dorks :

  • Equipements non protégés exposés sur Internet : switchs, caméras, routeurs, imprimantes, etc.
  • Fichiers sensibles : liste du personnel, liste d'utilisateurs et mots de passe, etc.
  • Fichiers correspondant à des listes de prix (pricelist)
  • Pages d'authentification sur des applications Web : espace d'administration d'un site, PhpMyAdmin, etc...
  • Serveurs exposés sur Internet et mal configurés voire pas configurés : page par défaut d'Apache
  • Etc...

Lorsque l'on utilise les Google Dorks, on peut effectuer des requêtes avancées pour obtenir une information sans impact réel, mais aussi effectuer des requêtes offensives ou défensives. Les intentions comptes et la notion d'éthique est importante ! 

Note : nous parlons généralement de Google Dorks mais il faut savoir que les autres moteurs de recherche prennent en charge ces requêtes. Néanmoins, on ne peut pas nier : Google est certainement le moteur de recherche le plus complet et le plus précis alors il y a tout intérêt à l'utiliser dans le cadre d'une investigation. Mais, cela reste intéressant de comparer les résultats entre plusieurs moteurs de recherche.

IV. Google Dorks - Google Hacking : les opérateurs de recherche

Nos requêtes quotidiennes sont basiques et n'exploitent pas tout le potentiel des moteurs de recherche. Les opérateurs de recherche vont permettre d'exploiter tout le potentiel des moteurs de recherche. C'est le moment d'apprendre à les connaître au travers de quelques exemples.

Reprenons, l'exemple évoqué précédemment avec la requête :

définitions google dorks

Lorsque l'on saisie cette requête sur Google, on obtient plus de 5 millions de résultats. C'est énorme ! En fait, Google retourne les résultats en prenant les trois mots clés individuellement.

Par contre, si j'effectue la même requête en apportant une légère modification :

définitions "google dorks"

Simplement en indiquant des guillemets autour de "google dorks", je suis passé de plus de 5 millions de résultats à 253 000 résultats ! Pourquoi ? Lorsque l'on met des guillemets, cela indique au moteur de recherche qu'il doit rechercher la phrase exacte et que le résultat doit inclure cette phrase ! On ne lui demande pas de rechercher "google" et "dorks" dans les pages, mais on lui demande de rechercher "google dorks" : ce qui correspond réellement à ce que l'on cherche. Tandis qu'une page qui contient les mots "google" et "dorks" séparément, ne correspondra peut être pas.

Google prend en charge de nombreux opérateurs de recherche qui vont permettre d'affiner notre requête et obtenir des résultats précis. Celui que nous venons de voir est basique, mais il en existe d'autres, bien plus puissant.

Je vous propose une liste de quelques opérateurs de recherche très utiles et couramment utilisés :

  • site:
    • Rechercher sur un site spécifique / voir les pages indexées pour un site
    • Exemple pour le domaine it-connect.fr : site:it-connect.fr
    • Rechercher les pages en lien avec Windows Server sur le site it-connect.fr : site:it-connect.fr Windows Server
  • filetype:
    • Rechercher une extension de fichier spécifique
    • Exemple pour rechercher des fichiers PDF associé au mot clé "CV" : filetype:pdf CV
  • intitle:
    • Rechercher des mots clés dans le titre de la page
    • Exemple pour rechercher des pages d'authentification GLPI : intitle:"GLPI - Authentification"
  • allintitle
    • Similaire à intitle: sauf que l'on veut tous les mots clés dans l'URL
  • inurl:
    • Rechercher des mots clés dans l'URL de la page
    • Exemple pour rechercher des caméras ou des enregistreurs vidéos (DVR) : inurl:/login.rsp
  • after:
    • Afficher uniquement les résultats référencés après une date spécifique
    • Exemple pour prendre le 1er Mai 2021 comme référence : after:2021-05-01

Il est à noter que plusieurs opérateurs peuvent être utilisés dans la même requête. On peut aussi utiliser plusieurs valeurs possibles pour un même opérateur grâce à la directive "OR" (ou). Par exemple, on peut rechercher les fichiers DOCX et PDF qui contiennent notre nom et notre prénom (à adapter, bien sûr) :

prenom nom filetype:docx OR filetype:pdf

Il y a aussi des mots clés un peu plus fun ! Par exemple, nous avons "movie:" qui permet de rechercher des films avec un acteur spécifique.

movie:will smith

V. Exemples Google Dorks - Google Hacking : GHDB

Avant toute chose, pour effectuer vos requêtes basées sur les Google Dorks, je vous recommande d'utiliser le navigateur Tor (Tor Browser) ou une connexion VPN. Même si, dans de nombreux cas Google bloquera vos requêtes car il n'apprécie pas trop l'usage de Tor. Enfin, si vous pensez que c'est nécessaire vis-à-vis de la recherche que vous allez faire ! Pour une simple requête, agir dans une fenêtre de navigation privée me semble suffisant.

On pourrait inventer nos propres requêtes par rapport à ce que l'on a vu précédemment, mais sachez que le site exploit-db.com contient une section nommée "Google Hacking Database" (GHDB) : elle contient plus de 6 500 requêtes Google Dorks différentes ! Elle est régulièrement mise à jour par la communauté du site. Un véritable moteur de recherche pour Google Dorks !

Pour cet exemple, je vais prendre une requête qui permet de rechercher des switchs NETGEAR référencé sur Google : je n'ai rien contre NETGEAR. Surtout, je tiens à préciser que ce cas de figure n'est pas propre à NETGEAR car on peut trouver des pages pour de nombreux fabricants (le problème ne vient pas du fabricant...).

On va tout simplement aller sur Google et saisir la requête Dork indiquée sur le site exploit-db.com. Cette requête retourne 282 résultats, tout de même !

A quoi correspondent-ils ? Il s'agit d'interfaces d'administration de switchs NETGEAR, référencées sur Google ! L'URL est en fait l'adresse IP publique sur laquelle le switch est accessible. Certains switchs sont inaccessibles tandis que pour d'autres, cela fonctionne !

Imaginons un switch exposé de cette façon, qui serait en plus vulnérables à des failles de sécurité, on pourrait prendre la main dessus, etc.... Derrière, cela peut être lourd de conséquence pour l'entreprise. On peut aussi être beaucoup plus gentil et chercher à rentrer en contact avec le propriétaire du switch pour l'avertir et lui éviter des ennuis ! L'ETHIQUE !

Tiens, celui-ci fonctionne.... Je me retrouve connecté sur l'interface d'administration d'un switch !

Lorsqu'un équipement est référencé dans Google, l'adresse du site correspond à l'adresse IP. Pour savoir si vous avez un équipement référencé sur Google, vous pouvez effectuer la requête suivante :

site:X.X.X.X

X.X.X.X correspond à votre adresse IP publique. Si vous en avez plusieurs, il faudra répéter l'opération.

Si vous utilisez WordPress, vous pourriez vérifier également que votre interface d'administration n'est pas référencée dans Google :

inurl:/wp-admin/ site:<votre domaine>

Je vous encourage à utiliser les exemples de la base GHDB pour bien appréhender la syntaxe des opérateurs et cette notion de Google Dorks.

En complément, voici quelques requêtes sélectionnées :

  • Rechercher les serveurs Web Apache2 avec une page par défaut
# Ubuntu
intitle:"Apache2 Ubuntu Default Page: It works"
# Debian
intitle:"Apache2 Debian Default Page: It works"
  • Rechercher des switchs Dell OpenManage
intitle:"Dell OpenManage Switch Administrator" intext:"Type in Username and Password, then click OK"
  • Rechercher des pages de statut de caméra (configuration de la caméra)
intitle:"Camera Status" inurl:/control/
  • Rechercher des pages de connexion sur un Webmail Exchange
site:exchange.*.*/owa/
ou
intitle:"Exchange Log In"

C'est quand même drôle de tomber là-dessus :

Pour finir, je souhaitais partager avec vous un dernier exemple ! Bien que ce soit pas lié directement à la sécurité, sachez qu'il est possible d'obtenir des catalogues de prix appelés "pricelist" grâce à un moteur de recherche. Cela ne fonctionne pas pour tous les fabricants, mais on peut obtenir des fichiers Excel plus ou moins récents avec des prix de matériel, ce qui donne toujours une indication ! Par exemple :

pricelist dell filetype:xlsx

Note : restez vigilant pendant vos recherches, notamment lorsque vous téléchargez des fichiers depuis un site.

VI. Conclusion

Au final, l'utilisation des Google Dorks est à la portée de tous ! En quelque sorte, on peut dire que c'est une question de créativité pour imaginer la requête magique qui va nous permettre de trouver l'information que l'on recherche. Quoi que, la base de données du site exploit-db.com est déjà conséquente ! Grâce aux Google Dorks, on peut exploiter le potentiel maximum des moteurs de recherche !

Même dans le cadre des recherches quotidiennes, les Google Dorks peuvent s'avérer très utile car c'est une manière très puissante d'affiner les résultats de votre requête. Pour aller plus loin, il existe des outils pour utiliser les Google Dorks, je pense notamment à DorkMe et à PaGoDo (Passive Google Dorks).

Maintenant à vous de passer à l'action avec une session de Dorking défensive pour identifier les éventuelles vulnérabilités qui pourraient affecter votre propre site Internet, vos propres serveurs ou vos propres équipements.

The post Google Dorks – Google Hacking : exploiter toute la puissance de Google first appeared on IT-Connect.
❌