Cryptcat

Transcription

Cryptcat
Cryptcat
Introduction :
Cryptcat est le clone de netcat, à la seule condition que ce cryptcat chiffre ses
communications (algorithme Twofish). En effet, netcat laisse passer en clair les commandes,
ce qui devient un facteur négatif pour camoufler ses agissements.
Il est donc nettement préférable d'utiliser Cryptcat. Cryptcat utilise exactement les mêmes
commandes que Netcat.
cryptcat est un utilitaire permettant d'ouvrir des connexions réseau, que ce soit UDP ou TCP.
Il est conçu pour être incorporé aisément dans un large panel d'applications. En raison de sa
polyvalence, cryptcat est aussi appelé le « couteau suisse TCP/IP ». Il existe sur plusieurs
systèmes d'exploitation et s'utilise en ligne de commande.
Il peut être utilisé pour connaître l'état des ports à la façon d'un scan de ports. Les paramètres
peuvent comprendre une plage de ports et une variation aléatoire plutôt qu'un scan d'ordre
décroissant par défaut. Il existe aussi une option qui permet d'envoyer des packets sourcerouted, des packets qui sont envoyés via des routers dont on spécifie les IP
Installation :
Sous linux :
apt-get install cryptcat,
ou bien télécharger le fichier tar.gz à partir de l’adresse
http://osdn.dl.sourceforge.net/sourceforge/netcat/cryptcat-0.7.1.tar.gz et exécuté les
commandes suivantes :
tar -xzf netcat-0.7.1.tar.gz
cd netcat-0.7.1
$ ./configure
make
Sous Windows : il suffit juste d’extraire l’archive zip dans un répertoire qui se trouve à
l’adresse suivante : http://freefr.dl.sourceforge.net/project/cryptcat/cryptcat-win1.2/1.0.0/cryptcat_nt.zip
Utilisation de cryptcat :
Cryptcat permet d'établir des connexions TCP ou UDP depuis un script Shell. Les échanges se
font par stdin et stdout. Il peut établir deux types de connexions :
-client (il se connecte à un serveur),
-serveur (il se met en attente de connexions clientes).
cryptcat [-options] hostname port[s] [ports]
Cryptcat
L’aide : cryptcat –h
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-L listen harder, re-listen on socket close
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-s addr local source address
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
Connexion à une machine :
Il suffit juste de taper la commande cryptcat –v @ip port :
Cryptcat
Communication client/serveur :
Dans un premier shell, lancez un serveur :
$ cryptcat -l -p 1234 -v
Dans un second, lancez un client :
$ cryptcat -v localhost 1234
On a réalisé une connexion TCP entre deux shell. Si on tape un message dans un des deux
shell, il apparaitra dans l'autre.
Transmission d'un fichier :
Cryptcat permet donc d'échanger des données, qu'il lit sur son entrée standard et écrit sur sa
sortie standard.
Avec les mécanismes de redirection du shell, il est donc très simple d'échanger des fichiers :
Le serveur envoi un fichier sur la socket :
cryptcat -l -p 1234 < fichier_envoyé.txt
et le client le reçoit :
cryptcat –v @ip 1234 > fichier_recu.txt
Cryptcat
Quelques options :
-e : permet d’exécuté un programme après la connexion.
Sur la première machine : cryptcat –v –l –p 1234 –e cmd.exe
Sur la second machine cryptcat –v @ip 1234
2°) Scanner des ports avec cryptcat :
Cryptcat peut être utilisé pour scanner des ports. Il suffit de le lancer en mode verbeux (-v)
avec l'option -z, et de lui indiquer un (ou plusieurs) intervalles de port à scanner.
Par exemple pour scanner du port 1 à 1024 :
cryptcat -vz localhost 1-1024
Le mode verbeux (-v) indique à cryptcat d'afficher les ports ouverts.
On peut le lancer en mode très verbeux (-vv) pour obtenir le détail de chaque port testé :
ouvert ou fermé.
L'option -z, elle, permet d'indiquer à cryptcat qu'on s'intéresse uniquement à l'état du port
(fermé ou ouvert). Avec cette option, s'il tombe sur un port ouvert il passe directement au
suivant, sans s'attarder.
Si on le lance sans cette option, il s'arrête dès qu'il a pu ouvrir une connexion, c'est-à-dire sur
le premier port ouvert qu'il trouve.
L'option -r indique à cryptcat de scanner les ports dans le désordre. (Certains systèmes de
détection de scan sont basés sur un scan consécutif des ports).
L'option -i permet d'insérer un délai pour le scannage de ports, ce qui permet d'être moins
repérable.
Cryptcat
Comment se protéger de Netcat
Il est tout simplement impossible de se protéger de Cryptcat en lui-même mais respecter les
bonnes pratiques de la sécurité informatique sera la meilleure protection. Installez des
firewalls (et configurez les !), désactivez les bannières "trop bavardes" de vos services et
surtout, maintenez vos logiciels à jour et scannez vos ports de temps à autre afin de vérifier
s'il existe des ports ouverts inutiles ou des backdoors dans votre système.
Conclusion :
Dans cet article j’ai présenté quelques options de cryptcat, cependant cryptcat a encore
quelques options supplémentaires que je n'ai pas testé, comme la redirection de port …, et
toutes les options peuvent être combinées.
Cryptcat n'a d'autres limites que vos connaissances et votre imagination. Il ne sert qu'à établir
une connexion entre 2 hôtes et c'est bien ce qui fait sa puissance. Vous pouvez l'intégrer dans
des scripts, lui fournir des scripts en paramètre, vérifier la sécurité de vos serveurs et
machines, explorer les réseaux
Ghiles GADA