Envoyer des données sur des ordinateurs en réseau avec Netcat à l'aide de la ligne de commande

Anonim

Netcat est un puissant outil de ligne de commande qui peut lire et écrire des données sur une connexion réseau à l'aide de TCP/IP. Il est couramment utilisé pour les relais, le transfert de fichiers, l'analyse des ports, entre autres. Bien que les origines de netcat proviennent des mondes unix et linux, netcat est également intégré à Mac OS X, et nous allons utiliser l'utilitaire nc comme un moyen simple d'envoyer des données et d'autres textes sur deux ordinateurs en réseau.En utilisant netcat pour envoyer des données avec une relation client et serveur assez simple, il offre une alternative potentiellement plus rapide au partage de fichiers traditionnel lorsque les utilisateurs préfèrent rester dans la ligne de commande lors de l'envoi et de la réception de données, et où la connexion via SSH ou SFTP n'est pas possible. t pratique.

Notez que netcat ne nécessite aucune connexion ou authentification, la seule exigence est que le client connaisse l'adresse IP du serveur et le numéro du port d'écoute. Cela soulève évidemment un certain potentiel d'utilisation abusive de la sécurité, donc l'utilisation de netcat pour envoyer des données et du texte est généralement mieux réservée aux utilisateurs avancés, ou pour une utilisation exclusivement derrière un réseau local protégé où il y a peu de risques. Les situations où il est important de mettre l'accent sur la sécurité feraient mieux d'utiliser SSH.

Pour plus de simplicité, nous nous référerons à l'ordinateur 1 qui écoute avec netcat en tant que "Serveur", et nous nous référerons à l'ordinateur 2 envoyant les données à l'ordinateur 1 en tant que "client".

Set Netcat to Listen on Server (Ordinateur 1) & Port

Nous allons lancer netcat et le faire écouter sur le port 2999, puis rediriger toutes les données reçues vers un fichier nommé "received.txt" avec la chaîne de commande suivante :

nc -l 2999 > reçu.txt

Avant de l'appeler pour passer au client, vous voudrez avoir l'adresse IP du Mac sur le réseau local. Vous pouvez l'obtenir depuis le panneau de configuration Réseau, ou puisque vous êtes déjà sur le Terminal, via la ligne de commande avec la syntaxe suivante :

ipconfig getifaddr en0

Les Mac modernes avec Wi-Fi uniquement utiliseront en0, les Mac avec Ethernet et Wi-Fi peuvent utiliser en1. Si l'un n'affiche rien, essayez l'autre interface pour obtenir l'IP LAN. Supposons que cette adresse IP Mac soit signalée comme "192.168.1.101", bien sûr la vôtre est susceptible de varier. Vous en aurez besoin sur l'ordinateur client pour envoyer des données, ce que nous aborderons ensuite.

Transmettre les données du client (ordinateur 2) au serveur d'écoute

Maintenant, sur le client à partir duquel vous souhaitez envoyer des données, vous pouvez utiliser une commande comme celle-ci. Nous utiliserons cat pour vider un fichier texte sur le réseau vers le serveur netcat d'écoute, mais vous pouvez transmettre à peu près tout ce que vous voulez :

cat sendthisdataover.txt | nc 192.168.1.101 2999

Pour que cela fonctionne correctement, assurez-vous de saisir votre propre adresse IP à partir du serveur et de saisir le fichier ou le texte approprié que vous souhaitez envoyer.

En supposant que le réseau local est même légèrement rapide, les données devraient arriver assez rapidement, voire instantanément. Une fois le transfert de données terminé, les deux côtés de la connexion cesseront et le serveur cessera d'écouter, puis fermera le port. Cela le rend efficace pour l'envoi ponctuel de données comme des fichiers journaux ou un gros document texte, mais ce n'est pas nécessairement pratique pour déplacer un grand nombre de fichiers.

Comme déjà mentionné, vous pouvez diriger à peu près n'importe quelle donnée, donc qu'il s'agisse de la sortie d'une autre application, de la queue, du chat, ou même directement du presse-papiers avec pbcopy et pbpaste, elle sera transférée via netcat.

Il convient de noter qu'il existe des moyens plus pratiques de partager un presse-papiers entre Mac ou entre un Mac et des machines Linux ou Windows, et dans ces situations, il vaut mieux utiliser des outils gratuits comme Teleport pour Mac- partage d'entrée vers Mac, ou l'utilitaire gratuit Synergy si vous allez sur plusieurs plates-formes entre Mac et PC. Les deux permettent à un utilisateur de partager des données de presse-papiers ainsi que des périphériques d'entrée comme une souris et un clavier.

Pour mémoire, bien que cette démonstration soit présentée sur deux Mac avec OS X, il n'y a aucune raison pour que vous ne puissiez pas utiliser netcat pour envoyer des données entre une machine Mac et Linux, ou vice versa.

Il existe des tonnes d'autres utilisations intéressantes de netcat, si vous avez des favoris, faites-le nous savoir dans les commentaires !

Envoyer des données sur des ordinateurs en réseau avec Netcat à l'aide de la ligne de commande