Testing port connectivity with Telnet
Table des matières:
- Syntaxe Netcat
- Analyse des ports
- Envoi de fichiers via Netcat
- Création d'un serveur de conversation simple
- Exécution d'une requête HTTP
- Conclusion
Netcat (ou nc) est un utilitaire de ligne de commande qui lit et écrit des données sur les connexions réseau, à l'aide des protocoles TCP ou UDP. C'est l'un des outils les plus puissants de l'arsenal des administrateurs réseau et système et il est considéré comme un couteau suisse des outils de mise en réseau.
Netcat est multiplateforme et il est disponible pour Linux, macOS, Windows et BSD. Vous pouvez utiliser Netcat pour déboguer et surveiller les connexions réseau, rechercher des ports ouverts, transférer des données, en tant que proxy et plus encore. Le package Netcat est préinstallé sur macOS et les distributions Linux populaires comme Ubuntu.
Syntaxe Netcat
La syntaxe la plus élémentaire de l'utilitaire Netcat prend la forme suivante:
nc host port
Sur Ubuntu, vous pouvez utiliser
netcat
ou
nc
. Ils sont tous deux des liens symboliques vers la version openBSD de Netcat.
Par défaut, Netcat tentera de démarrer une connexion TCP vers l'hôte et le port spécifiés. Si vous souhaitez établir une connexion UDP, utilisez l'option
-u
:
Analyse des ports
L'analyse des ports est l'une des utilisations les plus courantes de Netcat. Vous pouvez analyser un seul port ou une plage de ports.
Par exemple, pour rechercher des ports ouverts dans la plage 20-80, vous utiliserez la commande suivante:
nc -z -v 10.10.8.8 20-80
L'option
-z
indique à
nc
de rechercher uniquement les ports ouverts, sans leur envoyer de données et l'option
-v
de fournir des informations plus détaillées.
La sortie ressemblera à ceci:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
Vous pouvez également utiliser Netcat pour rechercher le logiciel serveur et sa version. Par exemple, si vous envoyez une commande «EXIT» au serveur sur le port SSH par défaut 22:
echo "EXIT" | nc 10.10.8.8 22
La sortie ressemblera à ceci:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.
Pour rechercher des ports UDP, ajoutez simplement l'option
-u
à la commande comme indiqué ci-dessous:
nc -z -v -u 10.10.8.8 20-80
Dans la plupart des situations, Nmap est un meilleur outil que Netcat pour l'analyse de ports complexes.
Envoi de fichiers via Netcat
Netcat peut être utilisé pour transférer des données d'un hôte à un autre en créant un modèle client / serveur de base.
Cela fonctionne en configurant Netcat pour écouter sur un port spécifique (en utilisant l'option
-l
) sur l'hôte de réception, puis en établissant une connexion TCP régulière à partir de l'autre hôte et en envoyant le fichier par-dessus.
Sur la réception, exécutez la commande suivante qui ouvrira le port 5555 pour la connexion entrante et redirigera la sortie vers le fichier:
nc -l 5555 > file_name
De l'hôte d'envoi, connectez-vous à l'hôte de réception et envoyez le fichier:
nc receiving.host.com 5555 < file_name
Pour transférer un répertoire, vous pouvez utiliser tar pour archiver le répertoire sur l'hôte source et extraire l'archive sur l'hôte de destination.
Sur l'hôte de réception, définissez l'outil Netcat pour écouter une connexion entrante sur le port 5555. Les données entrantes sont acheminées vers la commande tar qui extraira l'archive:
nc -l 5555 | tar xzvf -
Sur l'hôte d'envoi, emballez le répertoire et envoyez les données en vous connectant au processus d'écoute
nc
sur l'hôte de réception:
tar czvf - /path/to/dir | nc receiving.host.com 5555
Vous pouvez suivre la progression du transfert aux deux extrémités. Une fois terminé, tapez
CTRL+C
pour fermer la connexion.
Création d'un serveur de conversation simple
La procédure de création d'une conversation en ligne entre deux hôtes ou plus est la même que lors du transfert de fichiers.
Sur le premier hôte, démarrez un processus Netcat pour écouter sur le port 5555:
nc -l 5555
À partir du deuxième hôte, exécutez la commande suivante pour vous connecter au port d'écoute:
nc first.host.com 5555
Maintenant, si vous tapez un message et appuyez sur
ENTER
il sera affiché sur les deux hôtes.
Pour fermer la connexion, tapez
CTRL+C
Exécution d'une requête HTTP
Bien qu'il existe de bien meilleurs outils pour les requêtes HTTP telles que curl, vous pouvez également utiliser Netcat pour envoyer diverses requêtes à des serveurs distants.
Par exemple, pour récupérer la page de manuel Netcat à partir du site Web OpenBSD, vous devez taper:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
La réponse complète, y compris les en-têtes HTTP et le code HTML, sera imprimée dans le terminal.
Conclusion
Dans ce didacticiel, vous avez appris à utiliser l'utilitaire Netcat pour établir et tester des connexions TCP et UDP.
Pour plus d'informations, visitez la page de manuel Netcat et lisez toutes les autres options puissantes de la commande Netcat.
terminal netcatCommande Echo sous Linux avec des exemples
![Commande Echo sous Linux avec des exemples Commande Echo sous Linux avec des exemples](https://i.joecomp.com/bash/576/echo-command-linux-with-examples.jpg)
La commande echo est l'une des commandes les plus élémentaires et les plus utilisées de Linux. Les arguments passés à echo sont imprimés sur la sortie standard.
Commande curl sous linux avec des exemples
![Commande curl sous linux avec des exemples Commande curl sous linux avec des exemples](https://i.joecomp.com/curl/665/curl-command-linux-with-examples.jpg)
Curl est un utilitaire de ligne de commande pour transférer des données depuis ou vers un serveur conçu pour fonctionner sans interaction avec l'utilisateur. Dans ce didacticiel, nous allons vous montrer comment utiliser l'outil curl à travers des exemples pratiques et des explications détaillées des options de curl les plus courantes.
Commande de coupe Linux avec des exemples
![Commande de coupe Linux avec des exemples Commande de coupe Linux avec des exemples](https://i.joecomp.com/cut/719/linux-cut-command-with-examples.jpg)
Couper est un utilitaire de ligne de commande qui vous permet de couper des parties de lignes à partir de fichiers spécifiés ou de données canalisées et d'imprimer le résultat sur une sortie standard. Dans ce tutoriel, nous allons vous montrer comment utiliser la commande Linux cut à travers des exemples pratiques et des explications détaillées des options de coupe les plus courantes.