Réaliser une attaque brute-force RDP sur une machine Windows avec Kali

Si vous n’avez jamais eu l’occasion d’utiliser la distribution Kali je vous encourage à le faire rapidement. Cette distribution Linux est gratuite et intègre tout un tas d’outils relatifs à la cybersécurité. Évidemment, comme bien souvent dans les domaines de la sécurité, ce genre d’outils, tout comme Mimikatz, sont proposés librement sous couvert d’apprendre les attaques informatiques… Le principe de base étant que cela doit vous apprendre à vous protéger de ces attaques. 😉

Je vous propose de voir aujourd’hui 2 outils différents dont l’objectif final sera de réaliser une attaque de type brute-force sur une machine Windows afin de trouver le mot de passe d’un utilisateur pour se connecter en Remote Desktop sur un serveur Windows (RDP).

Création d’un dictionnaire de mots de passe avec « crunch »

Le principe d’une attaque de type brute-force est simple : on va tester plein de mots de passe en espérant trouver le bon mot de passe. Mais pour avoir une liste de mots de passe à essayer il faut avoir un dictionnaire de mots de passe. C’est très simple, il s’agit d’un fichier texte qui contient tous les mots de passes à essayer. Vous pouvez utiliser des dictionnaires de mots de passe déjà existant ou bien créer votre propre fichier si vous ciblez quelqu’un en particulier.

Voici quelques exemples de sites où vous pouvez télécharger des dictionnaires (et en plus c’est gratuit) :

Mais on peut aussi créer notre propre fichier. 🙃

Pour créer un dictionnaire de mot de passe par vous-même c’est très simple. Téléchargez et installez-le package « crunch« .

sudo apt-get install crunch

Une fois que c’est bon exécutez la commande suivante :

crunch 4 8 -o dico.txt
Création d'un dictionnaire de mots de passe avec crunch
Création d’un dictionnaire de mots de passe avec crunch

Dans cet exemple, je génère un dictionnaire de mots de passe de tous les mots de passes qui pourraient exister pour aller de 4 à 8 caractères. Et je mets tout ça dans le fichier texte : dico.txt.

Évidemment, ça va prendre du temps (et encore plus si vous augmentez le nombre de caractères) mais n’oubliez surtout pas que vous pouvez également personnaliser votre dictionnaire de mots de passe en ajoutant des mots/termes propres à votre cible si vous la connaissez de manière un peu plus précise (ville de naissance, nom de jeune femme, première marque de véhicule, … – en fait tous les termes qui seraient spécifiques à cette personne).

Plus d’infos sur cet outil en suivant ce lien. 🙂

Attaque brute-force RDP avec « crowbar »

crowbar est intégré par défaut à Kali. Pour lancer votre attaque de brute-force, vous devez utiliser la commande suivante :

crowbar -b rdp -s 82.10.20.30/32 -u thibault -c dico.txt

Pour ce test, nous assumons connaître l’identifiant… ce n’est évidemment pas rien ! 🤪

Dans le cas présent, la commande permet de tester sur le protocole RDP (c’est mieux pour une machine Windows), l’adresse IP spécifique du serveur (n’oubliez pas le /32 si vous ne testez pas une plage mais une seule IP), -u pour l’identifiant et -c pour le fichier qui correspond à notre dictionnaire de mots de passe. Il existe également d’autre paramètres pour s’en prendre à une machine Linux qui serait accessible via SSH.

Notez également qu’à la place de l’utilisateur vous pouvez spécifier un login qui serait un identifiant de domaine Active Directory au format DOMAIN\user ou même avec le format user@DOMAIN.

Test d'une attaque brute-force vers une machine Windows - mon mot de passe "bonjour12345." a été trouvé
Test d’une attaque brute-force vers une machine Windows – mon mot de passe « bonjour12345. » a été trouvé

Évidemment, il est tout à fait possible que votre dictionnaire ne contienne pas le « bon » mot de passe… le plus sûr reste encore aujourd’hui d’utiliser une attaque de type phishing. Mais forcé de constater que même encore aujourd’hui, même des personnes considérées comme expertes dans leur domaine utilisent encore parfois des mots de passe simples… c’est pour toutes ces personnes que cet outil fonctionnera. 😬

Comment s’en prémunir ?

Dans mon exemple, j’ai évidemment tout mis en place afin que mon exemple soit concret en créant une VM test dans Azure que j’ai ouvert sur Internet… Ce n’est évidemment pas recommandé.

Aujourd’hui tout accès administrateur doit passer par des machines / plateformes de rebonds et respecter les principes de sécurité que l’on appelle : Just In time & Just needed access. J’en avais déjà parlé dans mon précédent article sur le Tiering Model.