Welcome to Our Website

Linux NC command (Français)

mise à jour: 06/03/2020 par Computer Hope

sur les systèmes d’exploitation de type Unix, la commande nc exécute Netcat, un utilitaire permettant d’envoyer des données brutes via une connexion réseau.

ce document couvre la version Linux DE nc.

Description

Netcat est un utilitaire qui lit et écrit des données sur les connexions réseau, en utilisant le protocole TCP ou UDP. Il est conçu pour être un outil « back-end » fiable qui peut être utilisé directement ou piloté par d’autres programmes et scripts., En même temps, il s’agit d’un outil de débogage et d’exploration réseau riche en fonctionnalités, car il peut créer presque tout type de connexion dont vous auriez besoin et dispose de plusieurs fonctionnalités intégrées intéressantes. Les utilisations courantes incluent:

  • proxies TCP simples
  • clients et serveurs HTTP basés sur un script Shell
  • Test de démon réseau
  • Un Socks ou une commande HTTP ProxyCommand pour ssh

syntaxe

Options

-4 force NC à utiliser uniquement les adresses IPv4.
-6 force nc à utiliser uniquement les adresses IPv6.,
b Autoriser la diffusion.
-C Envoyer CRLF comme ligne de fin.
-D Activer le débogage sur le socket.
-d N’essayez pas de lire depuis l’entrée standard.
-h Imprime nc aider.
-j’longueur Spécifie la taille du tampon de réception TCP.
-i interval Spécifie un intervalle de temps entre les lignes de texte envoyés et reçus. En outre, provoque un temps de retard entre les connexions à plusieurs ports.,
-k force nc à rester à l’écoute d’une autre connexion une fois sa connexion actuelle terminée. C’est une erreur d’utiliser cette option sans l’option-l.
-l permet de spécifier que la nc doit écouter pour une connexion entrante plutôt que d’établir une connexion à un hôte distant. C’est une erreur d’utiliser cette option en conjonction avec les options-p, -s ou-Z. De plus, tous les délais spécifiés avec l’option-w sont ignorés.
-n ne faites aucune recherche DNS ou de service sur les adresses, les noms d’hôte ou les ports spécifiés.,
-longueur de l’O Spécifie la taille de la TCP tampon d’envoi.
-P proxy_username Spécifie un nom d’utilisateur pour la présenter à un serveur proxy requiert une authentification. Si aucun nom d’utilisateur n’est spécifié, l’authentification ne sera pas tentée. L’authentification Proxy n’est prise en charge que pour les proxys HTTP CONNECT à l’heure actuelle.
-P source_port spécifie le port source que nc doit utiliser, sous réserve de restrictions de privilèges et de disponibilité.,
-q secondes après EOF sur stdin, attendre un certain nombre de secondes puis s’arrête. Si secondes est négatif, attendez pour toujours.
-r spécifie que les ports source ou de destination doivent être choisis de manière aléatoire au lieu d’être séquentiellement dans une plage ou dans l’ordre dans lequel le système les attribue.
-s Active L’option de signature TCP MD5 RFC 2385.
-s source Spécifie l’adresse IP de l’interface qui est utilisée pour envoyer les paquets., Pour les sockets de datagrammes de domaine unix, spécifie le fichier de socket temporaire local à créer et à utiliser pour que les datagrammes puissent être reçus. C’est une erreur d’utiliser cette option en conjonction avec l’option-l.
-t toskeyword changer la valeur IPv4 TOS. toskeyword peut être l’un des points de code critical, inetcontrol, lowcost, lowdelay, netcontrol, throughput, reliability ou L’un des points de Code DiffServ: ef, af11 … af43, cs0 … cs7; ou un nombre en hexadécimal ou décimal.
-t provoque nc pour envoyer RFC 854 ne pas et ne sera pas les réponses à la RFC 854 faire et sera demandes., Cela permet d’utiliser nc pour scripter des sessions telnet.
-U Spécifie d’utiliser les sockets de domaine UNIX.
-u Utiliser UDP au lieu de l’option par défaut de TCP. Pour les sockets de domaine UNIX, utilisez un socket de datagramme au lieu d’un socket de flux. Si un socket de domaine unix est utilisé, un socket de réception temporaire est créé dans /tmp à moins que l’indicateur-s ne soit donné.
-V rtable Définir la table de routage pour être utilisé. La valeur par défaut est 0.
-v Avez-nc donner plus de commentaires de sortie.,
-w timeout connexions qui ne peuvent pas être établies ou qui sont inactives après les secondes de timeout. Le drapeau-w n’a aucun effet sur l’option-l, c’est-à-dire que nc écoutera pour toujours une connexion, avec ou sans le drapeau-W. La valeur par défaut est pas de délai d’attente.
-x proxy_protocol demande que nc utilise le protocole spécifié lorsqu’il parle au serveur proxy. Les protocoles pris en charge sont « 4 » (SOCKS v. 4), « 5 » (SOCKS v. 5) et « connect » (proxy HTTPS). Si le protocole n’est pas spécifié, SOCKS version 5 est utilisé.,
-x proxy_address demande que nc se connecte à la destination à l’aide d’un proxy à proxy_address et au port. Si port n’est pas spécifié, le port bien connu pour le protocole proxy est utilisé (1080 pour SOCKS, 3128 pour HTTPS).
-Z DCCP mode.
-z Spécifie que nc ne devrait d’analyse pour l’écoute des démons, sans envoyer de données. C’est une erreur d’utiliser cette option en conjonction avec l’option-l.,

la destination peut être une adresse IP numérique ou un nom d’hôte symbolique (sauf si l’option-n est donnée). En général, une destination doit être spécifiée, sauf si l’option-l est donnée (auquel cas l’hôte local est utilisé). Pour les sockets de domaine unix, une destination est requise et est le chemin de socket auquel se connecter (ou écouter si l’option-l est donnée).

le port peut être un entier ou une plage de ports. Les plages sont sous la forme nn-mm. en général, un port de destination doit être spécifié, sauf si l’option-U est donnée.,

modèle Client/Serveur

Il est assez simple de construire un modèle client / serveur très basique en utilisant nc. Sur une console, démarrez l’écoute nc sur un port spécifique pour une connexion. Par exemple:

nc -l 1234

nc écoute maintenant sur le port 1234 pour une connexion. Sur une deuxième console (ou une deuxième machine), connectez-vous à la machine et au port écouté:

nc 127.0.0.1 1234

Il devrait maintenant y avoir une connexion entre les ports. Tout ce qui est tapé sur la deuxième console sera concaténé à la première, et vice-versa., Une fois la connexion établie, nc ne se soucie pas vraiment du côté utilisé en tant que « serveur » et du côté utilisé en tant que « client ». La connexion peut être interrompue à l’aide d’un EOF (‘^d’).

Il n’y a pas d’option-c ou-e dans le netcat moderne, mais vous pouvez toujours exécuter une commande après l’établissement de la connexion en redirigeant les descripteurs de fichier. Soyez prudent ici car ouvrir un port et laisser toute personne connectée exécuter une commande arbitraire sur votre site est dangereux., Si vous avez vraiment besoin de le faire, voici un exemple:

côté ‘serveur’:

rm -f /tmp/f; mkfifo /tmp/f
cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

côté ‘client’:

nc host.example.com 1234

(invite shell de host.example.com)

en faisant cela, vous créez un fifo à /TMP/f et faites écouter nc au port 1234 de l’adresse 127.0.0.1 du côté « serveur », lorsqu’un « client » établit une connexion avec succès à ce port, /bin/sh est exécuté du côté « serveur » et l’invite de shell est donnée au côté « client ».

Lorsque la connexion est terminée, nc se ferme ainsi., Utilisez-k Si vous voulez qu’il continue à écouter, mais si la commande se ferme, cette option Ne la redémarrera pas ou ne continuera pas à fonctionner nc. Aussi, n’oubliez pas de supprimer le descripteur de fichier une fois que vous n’en avez plus besoin:

rm -f /tmp/f

transfert de données

l’exemple de la section précédente peut être développé pour construire un modèle de transfert de données de base. Toute information entrée à une extrémité de la connexion sera sortie à l’autre extrémité, et l’entrée et la sortie peuvent être facilement capturées pour émuler le transfert de fichiers.,

commencez par utiliser nc pour écouter sur un port spécifique, avec la sortie capturée dans un fichier:

nc -l 1234 > filename.out

En utilisant une deuxième machine, connectez-vous au processus d’écoute nc, en lui fournissant le fichier à transférer:

nc host.example.com 1234 < filename.in

Une fois le fichier transféré, la connexion se

parler aux serveurs

Il est parfois utile de parler aux serveurs « à la main » plutôt que via une interface utilisateur., Il peut aider au dépannage, quand il pourrait être nécessaire de vérifier quelles données un serveur envoie en réponse aux commandes émises par le client. Par exemple, pour récupérer la page d’accueil d’un site web:

printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

Notez que cette affiche également les en-têtes envoyés par le serveur web. Ils peuvent être filtrés, en utilisant un outil tel que sed, si nécessaire.

des exemples plus compliqués peuvent être créés lorsque l’utilisateur connaît le format des requêtes requis par le serveur., Comme autre exemple, un e-mail peut être soumis à un serveur SMTP en utilisant:

Port scanning

Il peut être utile de savoir quels ports sont ouverts et les services en cours d’exécution sur une machine cible. L’indicateur-z peut être utilisé pour indiquer à nc de signaler les ports ouverts, plutôt que d’initier une connexion. Habituellement, il est utile d’activer la sortie verbeuse sur stderr en utilisant cette option en conjonction avec l’option-v.

Par exemple:

nc -zv host.example.com 20-30
Connection to host.example.com 22 port succeeded!Connection to host.example.com 25 port succeeded!

la plage de ports a été spécifiée pour limiter la recherche aux ports 20 à 30, et est analysée par ordre croissant.,

Vous pouvez également spécifier une liste de ports à scanner, par exemple:

nc -zv host.example.com 80 20 22

Les ports sont analysés par l’ordre que vous avez donné.

alternativement, il peut être utile de savoir quel logiciel serveur est en cours d’exécution et quelles versions. Ces informations sont souvent contenues dans les bannières de voeux. Pour les récupérer, il faut d’abord établir une connexion, puis rompre la connexion lorsque la bannière a été récupérée., Cela peut être accompli en spécifiant un petit délai d’attente avec l’indicateur-w, ou peut-être en émettant une commande » QUIT  » au serveur:

echo "QUIT" | nc host.example.com 20-30
SSH-1.99-OpenSSH_3.6.1p2 Protocol mismatch. 220 host.example.com IMS SMTP Receiver Version 0.84 Ready

exemples

nc -p 31337 -w 5 host.example.com 42

ouvre une connexion TCP au port 42 de host.example.com, utilisant le port 31337 comme port source, avec un délai d’attente de 5 secondes.

nc -u host.example.com 53

ouvre une connexion UDP au port 53 de host.example.com.

nc -s 10.1.2.3 host.example.com 42

ouvre une connexion TCP au port 42 de host.example.com utilisation de 10.1.2.3 comme IP pour l’extrémité locale de la connexion.,

nc -lU /var/tmp/dsocket

crée et écoute sur un socket de flux de domaine unix.

nc -x10.2.3.4:8080 -Xconnect host.example.com 42

se connecte au port 42 de host.example.com via un proxy HTTP à 10.2.3.4, port 8080. Cet exemple pourrait également être utilisé par ssh.

nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42

identique à l’exemple ci-dessus, mais cette fois en activant l’authentification du proxy avec le nom d’utilisateur « ruser » si le proxy l’exige.

ifconfig — afficher ou modifier la configuration des interfaces réseau.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *