Netcat (ou nc
) est un utilitaire de ligne de commande qui lit et écrit des données sur les connexions réseau, en utilisant les 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 réseautage.
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, etc.,
Le Paquet Netcat est préinstallé sur macOS et les distributions Linux populaires comme Ubuntu, Debian ou CentOS.
Netcat Syntaxe #
Les plus élémentaires de la syntaxe de la Netcat utilitaire 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 la balise -u
option:
nc -u host port
Balayage de Port #
Balayage des ports est l’une des utilisations les plus courantes pour 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 devez utiliser la commande suivante:
nc -z -v 10.10.8.8 20-80
l’option -z
indiquera à nc
de ne Rechercher que des ports ouverts, sans leur envoyer de données et le -v
option pour fournir des informations plus détaillées.
la sortie ressemblera à ceci:
Si vous souhaitez imprimer uniquement les lignes avec les ports ouverts, vous pouvez filtrer les résultats avec la commandegrep
.,
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 trouver le serveur du logiciel 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-4Protocol 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
typiquement, Nmap est un meilleur outil que netcat pour l’analyse de port complexe.,
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 définissant le Netcat pour écouter sur un port spécifique (en utilisant l’option-l
) sur l’hôte récepteur, puis en établissant une connexion TCP régulière à partir de l’autre hôte et en envoyant le fichier dessus.,
lors de 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 émetteur connectez-vous à l’hôte récepteur et envoyez le fichier:
nc receiving.host.com 5555 < file_name
pour transférer un répertoire adce09a3e0″>
pour archiver le répertoire sur l’hôte source et pour extraire l’archive sur l’hôte de destination.
sur l’hôte récepteur, 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 émetteur emballez le répertoire et envoyez les données en vous connectant au processus nc
sur l’hôte récepteur:
tar czvf - /path/to/dir | nc receiving.host.com 5555
Vous pouvez regarder 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 Chat Simple #
la procédure de création d’un chat en ligne entre deux hôtes ou plus est la même que lors du transfert de fichiers.,
Sur le premier hôte de commencer un Netcat pour écouter sur le port 5555:
nc -l 5555
dans le 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 la touche ENTER
il sera montré 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 tels quecurl
, 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 tutoriel, 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.
Leave a Reply