Vous êtes sur la page 1sur 3

Netcat, dvelopp l'origine pour Unix puis pour Windows plus tard par @stake, est un programme bien

n connu en ligne de commande. Il permet de faire pas mal de choses avec des sockets, c'est--dire connexions rseau pour simplifier. Plus concrtement, il permet d'ouvrir des connexions rseau, que ce soit UDP ou TCP, sans avoir besoi n de programmer quoi que ce soit. Trs utile pour raliser des relations client/serv eurs pour faire des tests ou autre. En fait, on peut faire pas mal de choses, qu e l'on va voir en dtail plus loin, avec Netcat. C'est pour cela que j'aime bien l e comparer un couteau suisse. De plus, amis programmeurs sachez qu'il est open s ource, et donc on peut avoir accs aux sources (que ce soit pour la version Unix o u Windows). Et quand on voit la puissance du programme sur quelques Ko, cela peu t tre intressant. Avant de dtailler ses fonctionnalits, vous avez la possibilit de le tlcharger pour Linux ou pour Windows chez @stake si vous ne l'avez pas dj. II. Explications ----------------tape 1 : L'aide de netcat Voici comment se prsente l'aide de netcat, que vous pouv ez obtenir en tapant la commande "nc -h". Elle pourra vous rappeler la syntaxe d es commandes netcat tout moment. Etape 2 : Scanner des ports avec Netcat Et oui Netcat peut aussi scanner des ports... Par exemple si je veux scanner les ports ouverts entre 1 et 300 de l'ip 192.168.0.2, je fais : Code: nc -v -w2 -z 192.168.0.2 1-300 Bon bien sr, ce n'est srement pas le meilleur outil pour scanner des ports, loin d e l. Mais on peut dj s'apercevoir qu'il en fait des choses. tape 3 : Netcat client Pour ouvrir une connexion sur un port, il suffit de taper la commande : Code: nc ip_serveur port Je vous donne quelques exemples certainement plus parlants : Code: nc [url=ftp://ftp.proxad.net]ftp.proxad.net[/url] 21 cette commande se connectera sur le ftp "ftp.proxad.net" (port ftp = port 21). E nsuite il faut connatre les commandes ftp pour pouvoir aller plus loin, car tout ne se fera pas tout seul comme avec un client ftp volu. Allez un petit exemple pou r ceux qui ne comprendraient pas trop ce que je veux dire : En face des flches blanches, ce que j'ai d taper. Code: nc hostname.com 23 cette commande se connectera sur le port (23) telnet de l'adresse hostname.com. A noter que Netcat prend en charge compltement le Telnet de meilleure faon. Pour c ela utiliser plutt : Code: nc -t hostname.com 23 De mme on pourrait se connecter un serveur web sur le port 80 etc etc. tape 4 : Netcat-serveur Pour mettre Netcat en coute sur un port de votre machine, il suffit d'utiliser le s options -l et -p (listen et port) comme ceci : Code: nc -l -p 80 -l : pour le mettre en mode listen / coute

-p : pour qu'il coute sur le port Normalement, il ne se passe rien et netcat ne vous redonne pas la main pour tape r quoique ce soit, mais rien n'est plant pour autant. Sur cet exemple avec le port 80, lancez la commande suivante dans une autre fentr e : Code: telnet 127.0.0.1 80 De faon vous connecter sur le port 80 prcdemment ouvert sur votre machine. Et sur c ette nouvelle fentre, si vous tapez quelque chose, vous le devriez le voir apparat re sur la premire fentre. Comme quoi la fentre client communique bien avec la fentre serveur, magique non? Maintenant vous pourrez remarquer que si vous fermez votre fentre cliente (telnet ), la fentre serveur vous redonne la main. Autrement dit Netcat n'est plus ouvert . Une autre commande existe pour palier cela : elle permet de remettre le port e n coute en permanence la fin d'une connection cliente. Code: nc -L -p 80 En suivant la mme dmarche que prcdemment mais avec cette nouvelle option -L la place de -l, vous devriez vous rendre compte de cette diffrence. Une autre option assez pratique dans notre cas est -v ; le mode verbose (littrale ment "bavard"). Dans ce mode netcat est plus explicite sur ce qui se passe, et mm e encore un peu plus en faisant -vv, comme sur cet exemple : Code: nc -L -vv -p 80 Et vous pourrez vous en apercevoir ds le lancement de la commande puisqu'il vous retournera la phrase suivante : listening on [any] 80 ... On sait vraiment ce qu i se passe, et c'est pratique surtout quand on dbute avec Netcat. A quoi cela va bien pouvoir nous servir concrtement ? Et bien, voil qui ne va pas vous donner la solution mais tout du moins qui va vous laissez rflchir l-dessus, pu isque son utilisation n'a comme limites que nos ides... Lancez Netcat en mode lis ten sur le port 80 (Oula le mchant, il ne donne pas la commande directement cette fois-ci mais c'est fait exprs pour voir si vous suivez). Sachant que le port 80 est le port d'coute par dfaut des serveurs web, lancez votre navigateur prfr et entre z l'url suivante : Code: http://127.0.0.1 Regardez maintenant votre fentre de Netcat et vous devriez apercevoir le texte in itial qu'envoie le navigateur aux sites web. Magique non? Par la suite autant vo us dire qu'en se renseignant un peu sur les commandes http, vous pouvez rpondre v otre navigateur et ainsi de suite, ce qui mulerait un vrai serveur web. tape 5 : Redirections Sachez aussi qu'avec Netcat, l'image de ce qu'on peut faire sous Unix, vous pouv ez rediriger les entres et sorties l'aide des caractres < et >. Exemple : Code: nc -L -vv -p 21 > [url=ftp://ftp.log]ftp.log[/url] logguera toutes les commandes envoyes votre Netcat port 21 Code: nc -L -vv -p 21 < [url=ftp://ftp.txt ftp.txt[/code[/url]] Dans ce sens c'est ftp.txt qui va servir de fichier d'ntre Netcat. Lancez un clien t telnet, et vous verrez que Netcat ne va plus recevoir les caractres taps au clav

ier mais bien ceux qui se trouvent dans notre ftp.txt. L'option -e peut aussi servir de redirection dans le sens o elle permet d'excuter un programme en entre. Par exemple : Code: nc -L -vv -p 21 -e cmd.exe Lancera le cmd.exe dans notre fentre cliente telnet. Mais encore mieux on pourrai t dtacher Netcat de la fentre de commande dans laquelle on le lance. L'intrt ? Et bi en si vous voulez vous faire un petit serveur Netcat pour de multiples raisons, alors vous allez devoir supporter la fentre de commande qui le lance en permanenc e ? Non pas vraiment puisque l'option -d permet de dtacher Netcat de cette fentre et donc de le faire tourner en tche de fond. Vous l'avez toujours dans votre list e de processus et pouvez ainsi le killer quand vous en avez plus besoin, mais il ne s'affiche plus l'cran. Ainsi une personne mal intentionne n'aurait aucun mal l aisser un port en coute chez vous discrtement... tape 6 : Autres options Les autres options en bref : -n : pour n'entrer que des adresses ip numriques, pas de noms d'htes (mode client) . -o : pour loguer tous les octets reus mais en hexadcimal cette fois. -w : timeout, permet d'arrter la tentative de connexion si le temps dfini par est dpass. -u : ce mode permet de travailler avec le protocole UDP au lieu de TCP (modes cl ient et serveur). -s : l'adresse ip locale sur laquelle vous allez vous mettre en coute. III. Conclusion du tutorial -----------------------------Au travers de ce tutoriel, vous avez pu voir quelques utilisations possibles de Netcat toujours intressantes. Cet article a t repris de katabatik.com, site pour le quel je l'avais fait l'origine, je trouvais appropri de le remettre ici puisqu'il est toujours d'actualit, mme si le tuto date de 2003 et que le programme Netcat e st encore beaucoup plus ancien que a.