📄 cctt.1
字号:
.SP\fBHTTP_MOD_CL_BOT_PAD\fP=\fIpath/to/file\fPIndique au serveur d'ajouter les donnees presentes dans le fichier \fIpath/to/file\fP apres les donnees utiles d'une reponse HTTP..SP\fBHTTP_MOD_SRV_FAKE_URLS\fP=\fIpath/to/file\fPIndique au serveur qu'il doit envoyer le fichier localise dans \fIpath/to/file\fP quand il recoit une requete HTTP dont l'URI correspond a ce fichier.Cette directive peut etre employee plusieurs fois..SH "FICHIER DE CONFIGURATION CLIENT"Les fichiers de configuration permettent de positionner plusieurs directives relatives au fonctionnement de Cctt..P.IP "\fBDirectives du fichier de configuration Client\fP :".IP "\fBPROTOCOL\fP=\fItcp|udp\fP"C'est le protocole qui est utilise pour l'etablissement de la socket entre le client et le serveur ou entre le client et le serveur mandataire. Dans le cas d'une utilisation d'un serveur mandataire, ce protocole est obligatoirement \fBtcp\fP.\fBCette directive est obligatoire.\fP.IP "\fBDirectives d'identification\fP :"Ces directives permettent de specifier la methode d'identification utilisee entre client et serveur..SP \fBIDENT\fP=\fIxxx_ident\fPC'est le type d'identification parametre entre serveur et client. Il doit etre identique dans les deux fichiers de configuration et peut contenir les valeurs: \fIclear_ident\fP, \fIbasic_ident\fP.\fIclear_ident\fP ne contient aucun codage, la cle est envoyee telle quelle.\fIbasic_ident\fP contient un codage base sur le meme principe que le type de canal \fIsocket_encode\fP.\fBCette directive est obligatoire et est forcemment accompagnee de la directive\fP \fIIDENT_KEY\fP..SP \fBIDENT_KEY\fP=\fIxxx\fPC'est la cle qui est utilisee pour identifier le client aupres du serveur. C'est une chaine ASCII.\fBCette directive est obligatoire et est forcemment accompagnee de la directive\fP \fIIDENT\fP..IP "\fBDirectives Mode Proxy\fP :"\fBL'utilisation de l'une de ces directives entraine l'obligation d'utilisation des autres.\fPLe client se positionne en ecoute sur un couple @IP:Port. Quand une application se connecte, le client se connecte au serveur, s'identifie et envoie la demande de transfert au serveur. Si cette demande est acceptee, le client recupere les donnees envoyees par l'application, leur ajoute les divers codages demandes et envoie le resultat au serveur. Il procede inversement quand il recoit des donnees du serveur..SPSi le serveur accepte la demande du client, il ouvre une connexion vers l'application qui est configuree dans sa liste et transmet les donnees du client a l'application apres suppression des divers codage realises sur le flot de donnees recu. Il procede inversement en recevant des donnees de l'application avant de les renvoyer vers le client..SP \fBPROXY_MODE_PROT\fP=\fItcp\fPEn mode proxy, c'est le protocole utilise entre l'application locale et le client ainsi qu'entre le serveur et le service distant. Pour l'instant, seul le protocole \fItcp\fP est supporte..SP\fBPROXY_MODE_LOCAL_IP\fP=\fI@IP\fPEn mode proxy, c'est l'adresse IP avec laquelle le client se positionne en ecoute..SP\fBPROXY_MODE_LOCAL_PORT\fP=\fIPort\fPEn mode proxy, c'est le port sur lequel le client se positionne en ecoute..SP \fBPROXY_MODE_REMOTE_IP\fP=\fI@IP\fPEn mode proxy, c'est l'adresse IP qui est envoyee dans la demande de transfert. Cette adresse IP est comparee par le serveur avec les adresses se situant dans ses directives \fIPROXY_MODE_LIST\fP..SP \fBPROXY_MODE_REMOTE_PORT\fP=\fIport\fPEn mode proxy, c'est le port qui est envoye dans la demande de transfert. Ce port est compare par le serveur avec les ports situes dans ses directives \fIPROXY_MODE_LIST\fP..IP "\fBDirectives Mode Proxy Inverse\fP :"\fBL'utilisation de l'une de ces directives entraine l'obligation d'utilisation des autres.\fPLe client se connecte au serveur et s'enregistre comme relais pour le serveur defini grace aux directives de son fichier de configuration. Une fois l'enregistrement effectue, le client se met en attente de donnees..SPQuand le serveur recoit une demande pour ce service, il envoie les donnees au client via la connexion existante en lui indiquant de quel client applicatif il les a recues..SPLe client recoit les donnees et : soit il n'a recu aucune donnees de ce client applicatif, auquel cas il ouvre une connexion vers le service parametre et fait office de proxy - soit il a deja recu des donnees de ce client applicatif auquel cas il fait office de proxy pour une connexion qu'il a ouverte precedemment..SPEn d'autres termes, la connexion etablie entre le client et le serveur permet un multiplexage rudimentaire..SP \fBPROXY_MODE_PROT\fP=\fItcp\fPEn mode proxy inverse, c'est le protocole utilise entre le client et le service auquel il sert de relais. Pour l'instant, seul le protocole \fItcp\fP est supporte..SP \fBPROXY_MODE_REMOTE_IP\fP=\fI@IP\fPEn mode proxy inverse, c'est l'adresse IP du service auquel le client sert de relais. Cette adresse IP est ajoutee dynamiquement par le serveur dans une directive \fIPROXY_MODE_LIST\fP et retiree lorsque le client en mode inverse coupe la connexion..SP \fBPROXY_MODE_REMOTE_PORT\fP=\fIport\fPEn mode proxy inverse, c'est le port du service auquel le client sert de relais. Ce port est ajoute dynamiquement dans une directive \fIPROXY_MODE_LIST\fP..IP "\fBDirectives utilisees pour un serveur mandataire\fP :"\fBL'utilisation de l'une de ces directives entraine l'obligation d'utilisation des autres.\fP.SP Dans le cas d'une utilisation d'un serveur mandataire faisant l'intermediaire entre le client et le serveur (types de canaux \fI*_http_proxy_*\fP), ces directives permettent de configurer la liaison vers le serveur mandataire..SP \fBCHANNEL_PROXY_PROT\fP=\fItcp\fPC'est le protocole utilise entre le client et le serveur mandataire. Pour l'instant, seul le protocole \fItcp\fP est supporte..SP\fBCHANNEL_PROXY_IP\fP=\fI@IP\fPC'est l'adresse IP du serveur mandataire..SP\fBCHANNEL_PROXY_PORT\fP=\fIPort\fPC'est le port utilise par le serveur mandataire pour effectuer le proxying HTTP..SP\fBCHANNEL_PROXY_DEL\fP=\fIDelai\fPC'est le temps d'attente d'une reponse du serveur mandataire avant de considerer qu'on abandonne la connexion. Il s'exprime en micro-secondes..SP\fBHTTP_PROXY_CHAINE\fP=\fI@Ip2:Port2:Delai;...;@Ipx:Portx:Delai\fPPermet d'utiliser la methode CONNECT sur une chaine de serveurs mandataires HTTP.La premiere connexion a lieu avec le proxy defini avec \fICHANNEL_PROXY_IP\fP. Sur celui-ci est envoyee la requete CONNECT vers la premiere adresse IP de la chaine \fIHTTP_PROXY_CHAINE\fP. Quand cette chaine est vide, on envoie la requete CONNECT pour l'adresse IP du serveur que l'on veut atteindre.Le delai d'attente est configurable pour chaque proxy..IP "\fBDirectives HTTP POST client :\fP".PQuand le mode http_post est actionne, le client ouvre une connexion TCP, envoie un certain nombre de requete HTTP POST et receptionne les reponses correspondantes. Quand le nombre de requete configure est atteint, la connexion est coupee mais les applications demeurent actives. Une nouvelle connexion est alors ouverte et le meme schema se reproduit.Le client peut envoyer un certain nombre de requetes superflues dans l'objectif de cacher les requetes legitimes. Si ces requetes superflues sont configurees au niveau du serveur, celui-ci enverra le contenu des fichiers demandes.Il est egalement possible de cacher les donnees applicative d'une requete legitime en ajoutant des donnees avant et/ou apres dans le corps du message HTTP. Ceci permet par exemple de faire transiter pour un observateur les donnees applicatives dans des pages HTML ou dans des images..IP "\fBLes directives suivantes sont obligatoires pour le client en mode http_post.\fP".SP\fBHTTP_MOD_CL_REQ_PER_CON\fP=\fIx\fPSpecifie le nombre de requetes HTTP qui peuvent etre emises sur une connexion TCP avant que la connexion ne soit ferme puis re-ouverte..SP\fBHTTP_MOD_CL_DELAY_BET_CON\fP=\fIx\fPSpecifie un delai minimal d'attente en msecs entre chaque emission de requete HTTP sur une connexion TCP..SP\fBHTTP_MOD_CL_HOSTNAME\fP=\fIhostname\fPSpecifie que \fIhostname\fP doit etre ajoute dans le champ approprie du header HTTP de la requete POST..SP\fBHTTP_MOD_CL_CONTENTTYPE\fP=\fIcontent-type\fPSpecifie que \fIcontent-type\fP doit etre utilise dans le champ approprie du header HTTP de la requete POST..SP\fBHTTP_MOD_CL_DATASIZE\fP=\fIx\fPSpecifie que le client ne doit pas transmettre plus de \fIx\fP octets de donnees utiles dans une requete HTTP POST..SP\fBHTTP_MOD_URI\fP=\fI/cgi-bin/cctt.cgi\fPEnvoie l'URI \fI/cgi/bin/cctt.cgi\fP dans la requete HTTP. C'est cette URI qui permettra au serveur de savoir si des donnees utiles sont presentes dans le corps de la requete HTTP..IP "Les directives suivantes sont facultatives pour le client en mode http_post.".SP\fBHTTP_MOD_SRV_TOP_PAD\fP=\fIoctets\fPIndique au client qu'il y a \fIoctets\fP de donnees superflues qui precedent les donnees utiles dans le corps de la reponse HTTP..SP\fBHTTP_MOD_SRV_BOT_PAD\fP=\fIoctets\fPIndique au client qu'il y a \fIoctets\fP de donnees superflues qui suivent les donnees utiles dans le corps de la reponse HTTP..SP\fBHTTP_MOD_CL_TOP_PAD\fP=\fIpath/to/file\fPIndique au client de preceder les donnees utiles dans une requete HTTP POST par les donnees presentes dans le fichier \fIpath/to/file\fP..SP\fBHTTP_MOD_CL_BOT_PAD\fP=\fIpath/to/file\fPIndique au client d'ajouter les donnees presentes dans le fichier \fIpath/to/file\fP apres les donnees utiles d'une requete HTTP POST..SP\fBHTTP_MOD_CL_FAKE_URLS\fP=\fIGET /index.html HTTP/1.0\fPIndique au client qu'il doit envoyer la requete \fIGET /index.html HTTP/1.0\fP au serveur. Cette requete est superflue : Si le serveur est configure pour envoyer le fichier present dans l'URI, il enverra le fichier et le client se contentera de le lire sans l'utiliser dans son fonctionnement applicatif.Cette directive peut etre employee plusieurs fois.\fBL'utilisation de cette directive entraine obligatoirement l'utilisation de la directive HTTP_MOD_CL_FAKE_URLS_FREQ.\fP.SP\fBHTTP_MOD_CL_FAKE_URLS_FREQ\fP=\fIx\fPCette directive indique au client la frequence d'envoi des requetes precisees avec la directive \fBHTTP_MOD_CL_FAKE_URLS\fP.Si \fIx\fP est egal a -1, les requetes superflues seront envoyees toutes les y requetes legitimes (avec y aleatoire), si \fIx\fP est egal a 1, les requetes superflues seront envoyees pour chaque requete legitime et si \fIx\fP est egal a y>1, les requetes superflues seront envoyees toutes les y requetes legitimes.\fBL'utilisation de cette directive entraine obligatoirement l'utilisation d'au moins une directive HTTP_MOD_CL_FAKE_URLS.\fP.SH "MODE INTERACTIF"L'execution du serveur permet d'entrer quelques commandes en mode interactif.Ces commandes sont :.IP "\fBhelp\fP"Affiche les commandes disponibles..IP "\fBshow connections\fP"Affiche les connexions en cours..IP "\fBshow params\fP"Affiche les informations d'initialisation du serveur..IP "\fBkill connection X\fP"Ferme la connexion allouee sur le socket descriptor \fBX\fP..IP "\fBkill manager X\fP"Tue le manager gerant la connexion allouee sur le socket descriptor \fBX\fP..IP "\fBtell client X 'something'\fP"Envoie la commande \fBsomething\fP au client de la connexion allouee sur le socket descriptor \fBX\fP..IP "\fBquit\fP"Stoppe le serveur..SH "SECURITE"Cctt est un outil de test. Je ne recommande donc pas son utilisation dans un environnement de production..PAucun audit du code n'a eu lieu. Il serait preferable, si vous utilisez Cctt sur une plate-forme connectee a Internet, que vous l'executiez avec une identite possedant des droits restreints et qu'il soit bloque dans un cage..PPour ce faire, soit vous creez votre environnement personel, soit vous utilisez les fonctionnalites presentees dans \fIDirectives de securisation du serveur\fP..SH "AUTEUR"Simon Castro <scastro [at] entreelibre.com>.SH "CONTRIBUTIONS"Olivier Dembour <odembour [at] entreelibre.com>, Hadi El-Khoury <helkhoury [at] entreelibre.com> et Alex Dyatlov <alex [at] gray-world.net>..SH "DISTRIBUTION"La derniere version de Cctt peut etre obtenue sur http://www.gray-world.net ou depuis son miroir sur http://www.entreelibre.com/gray-world.net/..SH "LICENCE"CCTT - Covert Channel Tunneling Tool - v0.1.8, Copyright (C) 2002,2003 Simon Castro (scastro@entreelibre.com).PCctt 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..PCctt 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..PYou 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -