Gestion réseau avec Netcat
Netcat est un utilitaire polyvalent qui lit et écrit des données sur des
connexions réseau via le protocole TCP/IP. C'est un outil précieux pour
le débogage et l'exploration réseau, utilisé également dans diverses
activités de sécurité : analyse de ports, transfert de fichiers et création
d'un accès dérobé lors de tests d'intrusion. Cet article présente
guide pas à pas pour installer et utiliser la fonctionnalité d'écoute de Netcat sur
systèmes Ubuntu ou Debian.
Installation de
Netcat
Netcat est un utilitaire standard disponible dans les dépôts de la plupart des
Linux distributions. Voici les instructions d'installation pour certaines d'entre elles :
les distributions Linux les plus courantes.
nc -h

Ubuntu/Debian
Sur Ubuntu ou Debian, vous pouvez installer Netcat avec la commande suivante
commandes :
sudo apt-get update
sudo apt-get install netcat
CentOS/RHEL
Pour CentOS ou Red Hat Enterprise Linux, vous pouvez utiliser YUM (ou DNF sur
versions plus récentes) pour installer Netcat :
sudo yum install nc
Utiliser Netcat
Listener
La fonction d'écoute Netcat vous permet de surveiller le trafic réseau sur
des ports spécifiques, offrant une visibilité en temps réel sur la transmission des données et
utile pour le dépannage réseau ou l'analyse de sécurité.
Partie 1 : Analyse de
Ports ouverts
Avant de configurer un listener, il est utile d'identifier les ports ouverts sur
votre serveur. Netcat peut scanner un port unique ou une plage de ports.
Scanner une plage de ports :
Pour scanner une plage de ports, utilisez la commande suivante en remplaçant
[REMOTE_COMPUTER_IP] avec l'adresse IP du serveur et
[PORT_RANGE] avec la plage de ports à scanner, par exemple
2000-5000:
netcat -z -v -n [REMOTE_COMPUTER_IP] [PORT_RANGE]
Exemple :
Pour scanner les ports de 2999 à 3014 sur un serveur avec l'IP
127.0.0.1, la commande est :

Pour filtrer les résultats et n'afficher que les ports ouverts, vous pouvez utiliser
utiliser grep:
netcat -z -v -n 172.86.74.34 2000-5000 2>&1 | grep succeeded!

Scanner un port unique :
Pour vérifier un seul port, utilisez :
netcat -z -v -n [REMOTE_COMPUTER_IP] [PORT]
Par exemple, pour scanner le port 3000 sur le serveur :
netcat -z -v -n 172.86.74.34 3000

Cette commande indique si le port 3000 est ouvert ou fermé.
Partie 2 : Configurer
un écouteur Netcat
Une fois qu'un port ouvert est identifié, ou si vous avez un port spécifique
à surveiller, vous pouvez configurer un écouteur Netcat. Pour écouter sur le port
2200, par exemple, utilisez la commande suivante :
netcat -l -p 2200

Cette commande demande à Netcat d'écouter sur le port 2200 en attente de
données entrantes.
Partie 3 : Envoyer un message
de test
Pour vérifier que votre listener Netcat est correctement configuré, vous pouvez envoyer
un message de test depuis une autre machine. Ouvrez un terminal sur un autre ordinateur
et utilisez la commande suivante :
netcat [SERVER_IP] 2200
Remplacez [SERVER_IP] avec l'adresse IP du
serveur sur lequel le listener Netcat est en cours d'exécution. Une fois la connexion
établie, tapez votre message et appuyez sur Entrée. Le message
doit s'afficher sur le serveur où le listener Netcat est configuré.

Partie 4 : Enregistrement des données dans un
File
Si vous souhaitez conserver un historique des données transitant par le port
que vous surveillez avec Netcat, vous pouvez rediriger la sortie vers un fichier.
Voici comment enregistrer les données entrantes dans un fichier nommé
output.txt:
netcat -l -p 2200 > output.txt
L'exécution de cette commande redirige tout ce que reçoit le listener Netcat
sur le port 2200 vers le fichier
output.txt Vous pourrez ensuite consulter ce fichier avec n'importe quel éditeur
de texte.

Partie 5 : Envoi d'un
File
Pour envoyer un fichier avec Netcat, vous devez effectuer des actions sur les deux
machines, celle qui envoie et celle qui reçoit.
Sur la machine réceptrice :
Configurez Netcat pour écouter sur un port spécifique et redirigez les données entrantes
vers un fichier. Par exemple, pour écouter sur le port 2200 et enregistrer les
données entrantes vers output.zip, utilisez :
netcat -l -p 2200 > archive.zip
Sur la machine émettrice :
Envoyez un fichier via Netcat en vous connectant à l'adresse IP du récepteur
et au port, puis en redirigeant le fichier vers Netcat. Remplacez
[RECEIVER_IP] par l'adresse IP de la machine
réceptrice :
netcat [RECEIVER_IP] 2200 < yourfile.zip
Remplacez yourfile.zip par le chemin et le nom du
fichier zip à envoyer.

Remarque : Lors du transfert de fichiers, assurez-vous qu'aucun
pare-feu ne bloque la connexion et que le processus Netcat de la machine réceptrice
est lancé avant d'exécuter la commande d'envoi.
Options supplémentaires
Fonctionnalités de Netcat
Netcat va bien au-delà du simple transfert de fichiers et
de l'écoute de ports. C'est un outil polyvalent qui répond à de nombreux
besoins réseau, de la sécurité aux communications. Voici un
aperçu de ses fonctionnalités supplémentaires :
-
Création d'un serveur de chat : Netcat peut être configuré
pour permettre des échanges textuels en temps réel entre utilisateurs, jouant le rôle d'un
serveur de chat rudimentaire. -
Récupération de bannières de services : En se connectant à des ports ouverts
ports, Netcat peut récupérer les bannières de service, ce qui aide à identifier
les versions de logiciels potentiellement vulnérables. -
Débogage réseau : C'est un outil efficace pour
diagnostiquer les services réseau, vous permettant d'envoyer des requêtes personnalisées et
d'analyser les réponses pour résoudre les problèmes. -
Administration à distance : Netcat peut associer un shell
à un port réseau, offrant un accès en ligne de commande à distance à un autre
ordinateur, ce qui est particulièrement utile pour les administrateurs
système. -
Test de démons réseau : Les développeurs peuvent utiliser
Netcat pour interagir avec des démons réseau, en envoyant des données de test et des commandes
pour observer le comportement du service. -
Fonctionnalité de serveur proxy : Avec Netcat, mettre
en place un proxy basique est simple, vous permettant de rediriger le trafic et
éventuellement de le surveiller ou de l'analyser à diverses fins. -
Émulation de services réseau : Il peut simuler
des services réseau, en fournissant une réponse fictive aux requêtes réseau entrantes,
ce qui est utile pour tester les applications côté client. -
Configuration de base du serveur TCP/UDP : Netcat peut écouter sur
ports spécifiés pour les requêtes TCP ou UDP entrantes, ce qui en fait un outil pour
créer des serveurs simples. -
Scripts et automatisation : Sa nature en ligne de
commande permet d'intégrer facilement Netcat dans des scripts et dans des
tâches d'automatisation plus larges, simplifiant les opérations réseau répétitives. -
Tunneling de données : Netcat peut être utilisé pour créer un
tunnel de données, permettant de rediriger des flux de données d'un
réseau à un autre. -
Synchronisation horaire : Il peut faciliter la
synchronisation des horloges système sur un réseau en transmettant des données temporelles
entre les machines. -
Tests de sécurité : Netcat est un incontournable pour les
tests de sécurité, utilisé pour simuler des attaques réseau ou vérifier l'efficacité des
configurations de pare-feu. -
Tests de connexion : Testez rapidement et efficacement
la capacité à établir des connexions TCP ou UDP, ce qui est essentiel pour
la configuration et la maintenance du réseau.
Chacune de ces fonctionnalités illustre la polyvalence de Netcat,
qui en fait un outil indispensable dans toute boîte à outils réseau. Que ce soit pour le
développement, le dépannage ou l'analyse de sécurité, la simplicité de Netcat
et sa polyvalence en font l'outil de référence pour les professionnels des réseaux. Si vous
avez des questions, n'hésitez pas à nous contacter via soumettant une
ticket.
Aussi dans Secure Shell Protocol (SSH)
Guides associés.
Besoin d'aide pour autre chose ?
Temps de réponse médian inférieur à 1 heure. De vraies personnes, pas des bots.