CCTT - Covert Channel Tunneling Tool v0.1.8 - LISEZMOI Copyright (C) Simon Castro - scastro@entreelibre.com $Id: LISEZMOI,v 1.14 2003/09/02 11:22:38 simsim Exp $ ================================================================================ This file is part of CCTT - Covert Channel Tunneling Tool v0.1.8 (C) Simon Castro. CCTT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. CCTT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with CCTT; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ================================================================================ GRAY-WORLD.NET / CCTT ===================== CCTT fait partie des projets Gray-World.net. Notre équipe - Gray-World - présente sur le site http://www.gray-world.net nos projets et publications relatifs au contournement des systèmes de contrôle d' accès réseau et à la sécurité des réseaux. ================================================================================ CCTT ==== CCTT, pour "Covert Channel Tunneling Testing" ou pour "Covert Channel Testing Tool" est un outil présentant divers types d'exploitation des flux autorisés par un système de contrôle d'accès réseau de façon à réaliser un transfert de données arbitraire et interdit. CCTT est un outil de type "Covert Channel Tunneling Testing" car il permet d' encapsuler des flux de données dans des protocoles présents au niveau des couches hautes du modèle OSI et est également un outil de type "Covert Channel Testing Tool" car il permet la création de canaux de communication interdit au travers des systèmes de contrôle d'accès réseau installés. La plupart des concepts de contournement que je m'efforce d'ajouter dans CCTT depuis les premières phases de développement sont présentés dans un article que notre équipe a publié en Juin 2003 et qui est intitulé "Exploitation des flux autorisés par un système de contrôle d'accès réseau pour un transfert de données arbitraires : Tunneling et canaux cachés au sein du protocole HTTP". A) DESIGN INITIAL DE CCTT ------------------------- Je voulias tout d'abord que les types de canaux de communication permettent : * l'obtention d'un Shell d'un serveur externe à partir d'une station localisée sur le réseau interne; * l'obtention d'un shell inversé d'une station localisée sur le réseau interne à partir d'un serveur externe; * la création de canaux TCP/UDP permettant la circulation de trafics TCP (Ssh, Smtp, Pop, etc...) entre un serveur externe et une station localisée sur le réseau interne; et j'ai ensuite conçu CCTT de façon à ce que : * le serveur soit capable de gérer des clients multiples; * le serveur soit capable d'offrir des shells aux clients; * le client soit capable d'offrir un reverse-shell au serveur; * le serveur et client soient capables de fonctionner dans un mode "proxy" : le client CCTT accepte des connexions de clients applicatifs, les encapsule, les envoie au serveur CCTT qui se charge de les transmettre au service concerné. * le serveur CCTT soit capable d'accepter diverses demandes de service "proxy" sur le même port niveau 4 OSI. Exemple de mode "proxy" (Le sens des flèches indique la destination des connexions) : Client SSH --> Client CCTT ------> Internet --> Serveur CCTT --> Serveur SSH <_______reseau_interne_____A.C.S_> Internet <______x_reseaux_externes______> B) ADD-ONS A CCTT ----------------- Proxy mode inversé (ajoute dans la v0.1.5) : En consultant des mailing listes de sécurité favorites journalières, j'ai remarqué un message demandant une fonctionnalité spécifique pour un test d'intrusion. Cette demande était semblable à une fonctionnalité à laquelle je pensais déjà depuis un bon moment en travaillant sur CCTT et j'ai donc décidé de l'ajouter dans CCTT. Exemple de mode "proxy inversé" : 2 3 1 1 4 Client SSH->Client CCTT->Serveur CCTT<-Internet<-Client CCTT Inv.->Serveur SSH <_________x_reseaux_externes__________>Internet<_res_int_><_reseau_int_ou_ext_> Canaux de communication basés sur le protocole HTTP : Tout en travaillant à notre premier article avec Alex, j'ai décidé d'ajouter certaines des techniques de couverture et stéganographiques que nous présentions dans CCTT. Ainsi, a été ajoutée la première série de directives HTTP dans la version v0.1.7 de CCTT. C) EXEMPLES ----------- Et bien, le mieux est que vous consultiez les fichiers d'exemple présents dans le répertoire de documentation ou que vous alliez faire un tour sur le site Web GW. D) AVERTISSEMENTS ----------------- 1. Sécurite de CCTT ------------------- CCTT est un outil de test. Je ne recommanderais donc pas son utilisation comme front-end à un service quelconque avant qu'un audit propre n'ait permis de le vérifier. Dans une optique de test, il n'est donc pas recommandé d'utiliser des logins/passwords de service de production lors d'une utilisation de CCTT... Sauf peut être, si vous faites du Ssh en mode-proxy :) En somme, j'ai essayé de ne pas sombrer dans la facilité et de coder d'une façon "propre". cependant, l'eau a parfois été froide et j'étais, sur la fin, pressé de parvenir à une première version stable (au niveau du développement) :) 2. Dispositions légales ----------------------- Je tiens à insister auprès de l'utilisateur (*) de CCTT, qu'en plus des dispositions légales propres à la licence GPL par laquelle CCTT est protégé, l'utilisation (**) de CCTT est assujetie à toutes les dispositions légales propres au pays de distribution et/ou d'utilisation (**). CCTT est d'abord un outil de test implémentant plusieurs concepts présents dans le domaine public. Son objectif est de permettre aux responsables sécurité de vérifier par la pratique l'état de sécurité des réseaux dont ils ont LEGALEMENT la charge. J'insiste lourdement pour les lecteurs/utilisateurs mal-comprennant : CCTT n'a pas pour vocation d'être utilisé pour contrevenir aux articles 323-1 a 323-3 du nouveau Code Pénal ou à tout autre article s'y rapportant (ou ne s'y rapportant pas évidemment) - qu'il soit actuellement disponible, en cours d'élaboration ou ajouté dans le futur. (*) Par utilisateur, j'entend un utilisateur de CCTT (éxécutable compilé à partir des sources que je fournis et à partir de celles-la uniquement) ou tout autre personne se servant pour réfléchir, discuter ou mettre en oeuvre tout ou partie d'un code source ou éxécutable à partir du code que je fournis ou de tout autre fichier de documentation, de configuration, etc. présents dans la distribution que je fournis. (**) Par utilisation, j'entend l'utilisation de CCTT (éxécutable compilé à partir des sources que je fournis et à partir de celles-la uniquement) ou toute réfléxion, discussion ou mise en oeuvre de tout ou partie d'un code source ou éxécutable à partir du code que je fournis ou de tout autre fichier de documentation, de configuration, etc. présents dans la distribution que je fournis. Note aux lecteurs Francais : Je ne peux que recommander la lecture édifiante des articles 323-1 a 323-3 du nouveau Code Pénal, ou de tout autre article s'y rapportant - y compris le projet de loi pour la confiance dans l'économie numérique présenté à la mi-janvier 2003 par la Ministre déléguée à l'Industrie. E) PLATEFORMES ? ---------------- Le plus possible :) Pour l'instant, et sous réserve d'installation des librairies requises, CCTT a été testé sous : # Linux : Debian 2.2 et 3.0 stable, Mandrake 8. # BSD : OpenBSD 3.0 et 3.2. # Mac Os X : 10.2. # Win32 : Compilation de CCTT avec CygWin (Consultez LISEZMOI.win32). F) LICENSE ? ------------ Bien entendu que cet outil est sous licence... Vous devriez vous en être rendu compte... G) REMERCIEMENTS ---------------- Modu : Pour toutes les discussions sur les fonctionnalités, l'implémentation, etc... Hadi : Pour avoir accepté de se lancer dans la traduction anglaise et avoir corrigé mes fautes d'orthographe :) Alex : Pour tous projets GW actuels et prévus. Consultez le fichier CHANGEMENTS pour plus d'informations sur les contributions. ================================================================================ RESSOURCES CCTT =============== A) Où est disponible la dernière version de CCTT ? -------------------------------------------------- Vous pouvez obtenir la dernière version de CCTT depuis http://gray-world.net ou depuis son miroir sur http://www.entreelibre.com/gray-world.net/ Vous pouvez obtenir la dernière version de CCTT compilée avec CygWin pour Win32 sur http://gray-world.net/projects/cctt/win32_CCTT ou sur http://www. entreelibre.com/cctt/win32_cctt/. B) Forum de discussion ---------------------- Vous pouvez poster vos requêtes de fonctionnalités, des rapports de bugs ou tout simplement discuter de CCTT sur un forum de discussion. Ce forum est accessible sur : http://gray-world.net/board/viewforum.php?f=4 C) Patches ---------- Les patches de la version courante tels qu'annoncés sur le forum de discussion sont disponibles sur : http://www.entreelibre.com/cctt/patches/. Simon Castro - scastro@entreelibre.com