netcat est un utilitaire réseau servant à écouter les ports. Par exemple l’exemple suivant va écouter sur le port 12345
# ouvrez un premier shell et faites la commande suivante: nc -l -p 12345 # depuis le même hôte ouvrez un second shell et faites la commande suivante : echo "Hello" | nc 127.0.0.1 12345 dans le premier shell vous allez voir le message "Hello" sortir
L’exercice serait plus intéressant si on envoyait un message depuis un ordinateur extérieur ayant une autre adresse IP:
# dans le premier shell de l'hôte avec l'adresse IP 145.231.65.88 (adresse donnée au hasard) nc -l -p 12345 # dans le second ordinateur echo "Hello" | nc 145.231.65.88 12345 # il ne se passe rien, parce que par défaut netcat n'écoute que sur l'interface 127.0.0.1, pour lui demander d'écouter sur toutes les interfaces : nc -l -p 12345 -s 0.0.0.0 -k -v cette fois ci ça marche. Listening on 0.0.0.0 12345 Connection received on 5.48.206.214 63696 Hello
Rediriger ver un named pipe.
Ce que netcat va recevoir on le redirige vers un named pipe.Il faut d’abord créer un pipi appelé mypipe
# dans un premier shell mkfifo mypipe nc -l -p 12345 -s 0.0.0.0 -k -v > mypipe # dans un second shell cat < mypipe # depuis un ordinateur distant echo '9' | nc 178.62.221.128 12345 # vous constaterez qu'il y a un petit délai d'une seconde pour voir afficher # mais le plus gênant c'est du côté de l'ordinateur distant, on ne nous rend pas la main, ceci est dû au fait que netcat garde la connexion ouvert après l'envoi. Nous allons lui demander de fermer la connexion après envoi avec le paramètre -q à 1 $ echo '7' | nc -q 1 178.62.221.128 12345 la main nous est rendu après envoi.
Rediriger vers un fichier texte
au lieu de rediriger vers le named pipe on redirige vers un fichier $ nc -l -p 12345 -s 0.0.0.0 -k -v >> log.txt