nc (Netcat) est souvent qualifié de "couteau suisse du réseau". Il permet d'ouvrir des connexions TCP/UDP, d'écouter sur des ports, de transferred des données, et même de créer des tunnels rapides. C'est un outil indispensable pour le diagnostic réseau, le transfère de fichiers, et les tests de connectivité.
La forme la plus élémentaire de nc : vérifier qu'un port est accessible sur un hôte distant.
Les flags -z désactivent la connexion sortante (mode scan) et -v active le mode verbose.
nc permet de transfèrer des fichiers entre deux machines sans outil supplémentaire.
Tout texte tapé d'un côté apparaît de l'autre côté. Pour quitter, Ctrl+C.
Rediriger le trafic d'un port vers un autre hôte/port.
nc permet aussi de créer un shell distant (equivaut à un reverse shell). À utiliser uniquement dans des environnements contrôlés et avec autorisation.
Note : toutes les versions de nc ne supportent pas le flag -e (c'est le cas d'openbsd-nc). Pour ces versions, utilisez un pipe :
Il existe deux versions principales de nc :
OpenBSD netcat (installé par defaut sur Ubuntu/Debian) — plus moderne, avec support de -c, -e, et autres options avancees.
GNU netcat — alternative plus ancienne, moins d'options disponibles.
Utilisez nc en environnement lab ou avec autorisation pour les exercices reseau.
Pour les tunnels et shells distances en production, preferez SSH (lecon 44) qui offre le chiffrement.
Specifyz toujours un -w (timeout) pour eviter que les connexions restent ouvertes indefiniment.
Combinez nc avec tar, gzip, ou d'autres outils pour des transferts robustes.
nc -zv host port = tester la connectivite vers un port
nc -l -p port = ecouter sur un port
nc host port = se connecter en client
nc -l -p port > fichier + nc host port = transfert de fichier
tar cf - | nc host port = transfert de repertoire
nc -l -p port -k = rester en ecoute après deconnexion
-u = mode UDP, -w = timeout, -z = mode scan