Chrooter apache
Matériel
Ajout disque dur
Ajout carte
Audit des disques durs
Gestion des peripheriques
Disquette d'installation
Ajout d'un scanner
Graver en ligne de commande
Astuces
Ajout d'une imprimante
Réseau
Configuration reseau
Dns
Serveur cvs
Proxy squid 
Installation serveur ftp
Installation qmail 
Installation serveur courrier sous debian
Outil TCP/IP 
Le serveur samba
Connexion a distance securisee
Client/serveur vnc
Configurer apache
Dyndns
Sécurité
Chiffrer un fichier/dossier
Securiser son poste
Mur pare feu pas a pas
Authentification ht-access
Surveillance de serveur CACTI
Snort
Snort-inline
Securiser Apache avec mod_security
Filtrage squid/squidguard/dansguardian
Auditer son site web
Sécuriser son linux
Installer un Lamp avec ssl
Contrer les scans de ports
Traitement anti-spam
Installer/Utiliser tripwire
Faire des sauvegardes incrémentales
Divers
Elisa, le multimédia facile
Utilisation de lilo
Les commandes Linux
Le multi-tache
Le crontab
Exploration de la configuration
Quotas
Messagerie
Installer une application
Debugger ses applications
Le format RPM
Mise a jour du noyau
Qemu
Tour d'horizon des principaux p2p
Récupération du système
Bips d'un pc
Astuces windows
Table Ascii
Lamerland
Conversion de fichiers musicaux
Compiler ses rpms
Liens
hakin9
Secureroot.com
Hackerthreads.org
Defcon
Hackerlounge
Les derniers exploits
Tous les codes sources
Securite sous Linux
Les logiciels libres quotidiens
Ezine divers
Madchat
Textes divers
Archives
 
Traductions LG
Toutes les traductions
Traductions Phrack
Toutes les traductions

Il y a actuellement 1 visiteurs connectés sur le site !

Google

Netcat
Netcat

 

Introduction
L'aide de netcat
Scanner des ports avec Netcat
Netcat client
Netcat serveur
Redirections
Autres options
Spoofer les header http avec netcat
Transférer des fichiers avec netcat
Cloner des disques durs ou des partitions

 

Introduction

Netcat, developpe à l'origine pour Unix puis pour Windows plus tard par stake, est un programme bien connu en ligne de commande. Il permet de faire pas mal de choses avec des sockets, c'est-à dire connexions reseau pour simplifier. Plus concretement, il permet d'ouvrir des connexions reseau, que ce soit UDP ou TCP, sans avoir besoin de programmer quoi que ce soit. Tres utile pour realiser des relations client/serveurs pour faire des tests ou autre.

En fait, on peut faire pas mal de choses, que l'on va voir en detail plus loin, avec Netcat. C'est pour cela que j'aime bien le comparer à un couteau suisse.

De plus, amis programmeurs sachez qu'il est open source, et donc on peut avoir acces aux sources (que ce soit pour la version Unix ou Windows). Et quand on voit la puissance du programme sur quelques Ko, cela peut etre interessant.

Avant de detailler ses fonctionnalites, vous avez la possibilites de le telecharger pour Linux ou pour Windows chez stake si vous ne l'avez pas deja fait

L'aide de netcat

Voici comment se presente l'aide de netcat, que vous pouvez obtenir en tapant la commande "nc -h". Elle pourra vous rappeler la syntaxe des commandes netcat a tout moment.



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 :

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 de la Mais on peut deja s'apercevoir qu'il en fait des choses.

Netcat client

Pour ouvrir une connexion sur un port, il suffit de taper la commande : nc ip_serveur port
Je vous donne quelques exemples certainement plus parlants :

- nc ftp.sunet.se 21 : cette commande se connectera sur le ftp ftp.sunet.se (port ftp = port 21). Ensuite il faut connaïtre les commandes ftp pour pouvoir aller plus loin, car tout ne se fera pas tout seul comme avec un client ftp Allez un petit exemple pour ceux qui ne comprendraient pas trop ce que je veux dire :



En face des fleches bleues, ce que j'ai du taper.
- 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 completement le Telnet de meilleure facon. Pour cela utiliser plutot : nc -t hostname.com 23
De meme on pourrait se connecter à un serveur web sur le port 80 etc etc.

Netcat-serveur

Pour mettre Netcat en ecoute sur un port de votre machine, il suffit d'utiliser les options -l et -p (listen et port) comme ceci :

nc -l -p 80
-l : pour le mettre en mode listen / ecoute
-p : pour qu'il ecoute sur le port

Normalement, il ne se passe rien et netcat ne vous redonne pas la main pour taper quoique ce soit, mais rien n'est perdu pour autant.
Sur cet exemple avec le port 80, lancez la commande suivante dans une autre fenetre : telnet 127.0.0.1 80
De facon à vous connecter sur le port 80 precedemment ouvert sur votre machine. Et sur cette nouvelle fenetre, si vous tapez quelque chose, vous le devriez le voir appara�re sur la premi�e fenetre. Comme quoi la fenetre client communique bien avec la fenetre serveur, magique non?

Maintenant vous pourrez remarquer que si vous fermez votre fenetre cliente (telnet), la fenetre 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 en ecoute en permanence à la fin d'une connection cliente.

nc -L -p 80

En suivant la meme demarche que precedemment mais avec cette nouvelle option -L à la place de -l, vous devriez vous rendre compte de cette difference.

Une autre option assez pratique dans notre cas est -v ; le mode verbose (littéralement "bavard"). Dans ce mode netcat est plus explicite sur ce qui se passe, et meme encore un peu plus en faisant -vv, comme sur cet exemple :

nc -L -vv -p 80
Et vous pourrez vous en apercevoir des le lancement de la commande puisqu'il vous retournera la phrase suivante : listening on [any] 80 ... On sait vraiment ce qui se passe, et c'est pratique surtout quand on debute avec Netcat.

A quoi cela va bien pouvoir nous servir concretement ? Et bien, voilà qui ne va pas vous donner la solution mais tout du moins qui va vous laissez reflechir dessus, puisque son utilisation n'a comme limites que nos idees... Lancez Netcat en mode listen sur le port 80. Sachant que le port 80 est le port d'ecoute par defaut des serveurs web, lancez votre navigateur prïvilegie et entrez l'url suivante :

http://127.0.0.1

Regardez maintenant votre fenetre de Netcat et vous devriez apercevoir le texte initial qu'envoie le navigateur aux sites web. Magique non? Par la suite autant vous dire qu'en se renseignant un peu sur les commandes http, vous pouvez repondre à votre navigateur et ainsi de suite, ce qui emulerait un vrai serveur web.

Redirections

Sachez aussi qu'avec Netcat, à l'image de ce qu'on peut faire sous Unix, vous pouvez rediriger les entrees et sorties à l'aide des caracteres < et >. Exemple :

nc -L -vv -p 21 > ftp.log logguera toutes les commandes envoyees à votre Netcat port 21

nc -L -vv -p 21 < ftp.txt
Dans ce sens c'est ftp.txt qui va servir de fichier d'ïnstruction à Netcat. Lancez un client telnet, et vous verrez que Netcat ne va plus recevoir les caracteres tapes au clavier 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'executer un programme en entree. Par exemple :

nc -L -vv -p 21 -e cmd.exe

Lancera le cmd.exe dans notre fenetre cliente telnet. Mais encore mieux on pourrait detacher Netcat de la fenetre de commande dans laquelle on le lance. Et bien si vous voulez vous faire un petit serveur Netcat pour de multiples raisons, alors vous allez devoir supporter la fenetre de commande qui le lance en permanence ? Non pas vraiment puisque l'option -d permet de detacher Netcat de cette fenetre et donc de le faire tourner en tache de fond. Vous l'avez toujours dans votre liste de processus et pouvez ainsi le killer quand vous en avez plus besoin, mais il ne s'affiche plus a l'ecran. Ainsi une personne mal intentionnee n'aurait aucun mal à laisser un port en ecoute chez vous discretement...

Autres options

Les autres options en bref :



-n : pour n'entrer que des adresses ip numeriques, pas de noms d'hotes (mode client).
-o : pour logguer tous les octets mais en hexadecimal cette fois.
-w : timeout, permet d'arreter la tentative de connection si le temps defini par est depasse
-u : ce mode permet de travailler avec le protocole UDP au lieu de TCP (modes client et serveur).
-s : l'adresse ip locale sur laquelle vous allez vous mettre en ecoute.

Spoofer les header http avec netcat

Si vous souhaitez envoyer des requêtes http à un serveur web, vous pouvez maquiller les en-têtes http, créer de faux navigateurs et de faux referer ainsi que d'autres choses. Voici un exemple de maquillage d'entêtes http depuis google.com, vous devriez savoir quel genre d'entête vous avez besoin

netcat -v www.google.com 80
www.google.com [216.239.59.99] 80 (http) open
GET / HTTP/1.1
Host: www.google.com
User-Agent: mybrowser :D
Accept: image/png,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: www.nosite.com
HTTP/1.1 302 Found
Location: http://www.google.co.uk/cxfer?c=PREF%3D:TM%3D1103918397:S%
3D_KtpIy_HOz4CJcYF&prev=/
Content-Type: text/html
Server: GWS/2.1
Content-Length: 217
Date: Fri, 24 Dec 2004 19:59:57 GMT

Transférer des fichiers avec netcat

Par exemple, on veut copier un fichier monfichier.tar.gz d'une machine1 vers une machine2. Sur la machine2 saisir

nc -lp 1234 > monfichier.tar.gz

Le port 1234 peut être remplacé par le port de votre choix et sur machine1 faites

nc -w 1 server2.example.com 1234 < monfichier.tar.gz

pour démarrer le transfert

Cloner des disques durs ou des partitions

On peut copier des disques ou des partitions depuis le réseau Par exemple, si je veux copier /dev/sda de machine1 vers machine2, je vais démonter ma partition sur le système cible, en bootant par exemple sur machine2 avec un live CD
La machine cible a pour adresse 192.168.0.12 on va éxécuter sur cette machine

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

Ensuite, depuis la machine1,

dd if=/dev/sda | nc 192.168.0.12 1234

pour démarrer la copie

Source de l'article


 

Forum
Forum d'entraide
Blog
Le blog
News
Les news du site
Php/Mysql
Formulaire en php
Administrer un serveur Mysql
Session en php
Gerer ses bases mysql
Les bases php
Securiser ses scripts PHP
Controler ses programmes avec RATS
Convertir une base sql en utf8
Astuces php
Programmation
Python rapide
Tutorial Python
Tutorial Perl
Tutorial Perl complet
Tutoriel ruby
Tutoriel C
Introduction à gawk
Filtres et utilitaires
Find
Programmation Shell
Ecriture de scripts bash
Expressions regulieres
Vi
Introduction a Javascript
Compiler avec gcc
Astuces en Bash
Cracking
Tutoriel Assembleur
Guide du cracking pour débutant
Assembleur
Manual Unpacking
Techniques de Protection
Différentes failles Web
Arp spoofing dans un réseau switché
Les intrusions
Les attaques externes
Defacage
Defacage complet
Buffer overflow
Netcat
Injection sql
Injection sql(suite)
John the Ripper
Spoofer un email
Utiliser google
La faille system
Usurper une identité
Le rooting
Shellcode sous Unix
La faille race condition
La faille xss
La faille xss (2)
Attaques sur un routeur
P2P
Azureus pas-a-pas
News
Lire les news de Linux-pour-lesnuls.com au format RSS
Distros
Gestion des paquets debian
101 commandes debian
Graphisme
Effet neon dans GIMP
Effet vapeur dans GIMP
Cours fonctionnalités de GIMP
Humour
Ensemble
Divers