📄 cctt.1
字号:
.\" Man page for CCTT.\" ============================================================.\" Author : Simon Castro - <scastro [ at ] entreelibre.com>.\" .\".TH "CCTT" "1" "$Date: 2003/08/29 10:11:51 $" "Cctt v0.1.8".SH "NAME".B CCTT\- \fBC\fPovert \fBC\fPhannel \fBT\fPunneling \fBT\fPool.SH "VERSION"Cette version \fB0.1.8\fP est une version alpha..SH "DISPOSITIONS LEGALES"CCTT a ete developpe dans l'objectif d'offrir aux responsables securite un moyen de verifier par la pratique l'etat de securite des reseaux dont ils ont \fBLEGALEMENT\fP la charge.Toute utilisation de CCTT est subornee a l'acceptation de sa licence (voir \fBCOPYING\fP) ainsi qu'au respect des dispositions legales propres au pays d'utilisation (voir le fichier \fBLISEZMOI\fP)..SH "SYNOPSIS".B cctt\fB-s listen_address\fP [\fB-p\fP \fIlisten_port\fP] [\fB-f\fP \fIconfig_file\fP] [\fB-t\fP \fIchannel_type\fP] [-l] [-L] [-v] [-T].P.B cctt\fB-c connect_address\fP [\fB-d\fP \fIconnect_port\fP] [\fB-f\fP \fIconfig_file\fP] [\fB-t\fP \fIchannel_type\fP] [-r | -a | -i | -z] [-v] [-T].P.B cctt [ -V | -h ].SH "DESCRIPTION"Ce manuel documente succinctement l'utilisation de \fBCctt\fP..PP.B Ccttest un outil permettant d'etablir des canaux subliminaux dans les flux autorises par les systemes de controle d'acces reseau mis en place..SH "PARAMETRES"Cctt utilise la syntaxe courante des lignes de commande GNU, avec des options en toute lettre precedees du double tiret ('-') ou leur equivalent raccourci..TPLes parametres qui peuvent etre passes en ligne de commande sont :.IP "\fB\-v, \-\-version\fP"Affiche la version de Cctt..IP "\fB\-h, \-\-help\fP"Affiche l'aide..IP "\fB\-d, \-\-debug\fP"Affiche les messages de debug (pour les developpeurs)..IP "\fBServeur \fP:".IP " \fB\-s, \-\-listen_address\fP"Positionne l'adresse IP d'ecoute du serveur..IP " \fB\-p, \-\-listen_port\fP"Positionne le port d'ecoute du serveur (Tcp 4242 par defaut)..IP " \fB\-l, \-\-logging\fP"Enregistre les sessions reverse-shell dans un fichier de log (rshells.log par defaut)..IP " \fB\-L, \-\-logging-syslog\fP"Envoie les messages verbeux vers Syslogd (daemon.notice par defaut).Tous les messages verbeux (si le flag -V a ete passe en ligne de commande) sont envoyes vers le demon syslogd local.Si le flag -V n'a pas ete passe en parametre, seule l'initialisation et l'arret du serveur sont consignes..IP "\fBClient \fP:".IP " \fB\-c, \-\-connect_address\fP"Positionne l'adresse IP de destination..IP " \fB\-d, \-\-connect_port\fP"Positionne le port de destination (Tcp 4242 par defaut)..IP " \fB\-r, \-\-rshell\fP"Le client doit executer un shell inverse..IP " \fB\-i, \-\-list_proxy_mode\fP"Le client demande la liste de proxy autorise par le serveur..IP " \fB\-a, \-\-proxy_mode\fP"Le client doit fonctionner en mode proxy..IP " \fB\-z, \-\-reverse_proxy_mode\fP"Le client doit fonctionner en mode proxy inverse..IP "\fBGeneral \fP:".IP " \fB\-t, \-\-channel_type\fP"Positionne le type de canal (socket par defaut)..IP " \fB\-f, \-\-config_file\fP"Positionne le fichier de configuration (cctt_srv.cf et cctt_cl.cf par defaut)..IP " \fB\-v, \-\-verbose\fP"Execute Cctt en mode verbeux..IP " \fB\-T, \-\-check_conf_file\fP"Verifie la syntaxe du fichier de configuration et quitte..SH "TYPES DE CANAUX :"Les types de canaux sont positionnes via la ligne de commande mais font appel a des directives qui doivent etre positionnees dans les fichiers de configuration :.IP "\fBsocket\fP"Le canal consiste dans l'etablissement d'une socket PF_INET (basee sur le protocole TCP ou UDP : voir \fIFICHIERS DE CONFIGURATION\fP) standard entre client et serveur..Sp Aucun codage n'est realise et si la connexion tombe, les applications (shell, shell inverse et applications fonctionnant en mode proxy) sont tuees..IP "\fBsocket_encode\fP"Ce type de canal est identique au canal \fIsocket\fP mais le flot de donnees est code..SpUne distance est calculee a partir d'une cle. Puis, on parcoure octet par octet un alphabet et la chaine a coder, on ajoute la distance au caractere courant de l'alphabet, on ajoute le resultat au caractere a coder, on fait quelques modulos pour demeurer dans une fourchette sizeof(unsigned char) et on cree la chaine codee. Si on parvient a la fin de l'alphabet, on boucle..SpLa chaine resultat est ensuite convertie en une suite de valeur hexadecimale (entre 00 et FF)..IP \fBsocket_http_proxy\fPCe type de canal est identique au canal \fIsocket\fP, mais utilise la methode CONNECT sur un serveur mandataire HTTP..SpLe client ouvre une connexion avec un serveur mandataire HTTP, puis envoie la requete \fICONNECT @IP_serveur_Cctt:Port_serveur_Cctt HTTP/1.0\fP. Si la connexion est acceptee par le serveur mandataire (reception de \fIHTTP/1.0 200 Connection established\fP), alors le canal est considere comme etabli..IP \fBsocket_http_proxy_encode\fPCe type de canal est identique au canal \fIsocket_http_proxy\fP, mais les donnees sont codees comme pour le type de canal \fIsocket_encode\fP..IP \fBclient_only_with_http_proxy\fPCe type de canal est identique au canal \fIsocket_http_proxy\fP et n'est utilisable que par le client.Il permet de beneficier des fonctionnalites de Cctt, tant du point de vue des services (shell, reverse-shell et mode proxy) que du point de vue de l'utilisation de la chaine de proxy sans etre oblige d'installer un serveur CCTT (le demon peut donc etre un service standard : ssh, netcat, etc...). Aucun paquet supplementaire n'est ajoute au flux (pas d'identification, pas de demande de service)..IP \fBhttp_post\fPCe type de canal permet une simulation du protocole HTTP basee sur l'envoi de requetes POST. Consultez les parties \fBDirectives HTTP POST serveur\fP et \fBDirectives HTTP POST client\fP pour plus d'informations..IP \fBhttp_post_proxy\fPCe type de canal permet une simulation du protocole HTTP basee sur l'envoi de requetes POST. Consultez les parties \fBDirectives HTTP POST serveur\fP et \fBDirectives HTTP POST client\fP pour plus d'informations..SPLa gestion du proxy intermediaire est realisee comme suit :Si la fonctionnalite chaine de proxy n'est pas activee, une connexion TCP est ouverte vers le serveur proxy et une requete HTTP POST specialement construite est envoyee.Si la fonctionnalite chaine de proxy est activee, la methode CONNECT est employee jusqu'au dernier proxy sur lequel est envoyee une requete HTTP POST specialement construire..IP \fBhttp_post_proxy2\fPCe type de canal est identique au type \fBhttp_post_proxy\fP sauf que la gestion du proxy intermediaire est realisee par la methode CONNECT..IP \fBtest\fPCe type de canal est utilise pour le developpement de nouvelles fonctionnalites..SH "FICHIER DE CONFIGURATION SERVEUR"Les fichiers de configuration permettent de positionner plusieurs directives relatives au fonctionnement de Cctt..P.P \fBDirectives du fichier de configuration Serveur\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 "\fBFAKE_WEBSERVER\fP=\fIfile\fP"Si un client ne parvient pas a passer le stage de l'identification, le contenu du fichier lui est envoye et la connexion est fermee. .IP "\fBKILL_QUIET_DEL\fP=\fIx\fP"Indique au serveur qu'il doit fermer les connexions quiet depuis \fIx\fP msecs. Si cette directive n'est pas positionnee, une valeur par defaut est definie dans includes/configuration.h..IP "\fBKILL_QUIET_DEL_CF\fP=\fIx\fP"Indique au serveur qu'il doit fermer les connexions ayant le flag close_flag positionne si elles sont quiet depuis \fIx\fP msecs. Si cette directive n'est pas positionnee, une valeur par defaut est definie dans includes/configuration.h..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 :"Voir l'explication dans la partie relative au client..SP \fBPROXY_MODE_LIST\fP=\fIlabel:@IP:Port\fPCette directive peut etre employee plusieurs fois si \fIlabel\fP est unique pour chaque ligne. C'est la liste d'autorisation de transfert pour les clients qui desirent fonctionner en mode proxy.Le serveur recoit une requete, verifie si la demande est parametree dans sa liste et le cas echeant fonctionne en mode proxy pour le service \fIlabel\fP entre le client et l'application presente derriere \fI@IP:Port\fP..SP \fBPROXY_ONLY\fP=\fION|OFF\fPIndique au serveur de se positionner en mode \fIproxy_only\fP ou non. Ce mode configure le serveur de telle sorte qu'il refuse les demandes de shell ou de reverse-shell et de telle sorte que l'entree standard (voir \fIMODE INTERACTIF\fP) ne soit pas disponible.Le serveur peut ainsi etre lance sans etat d'ame en background et utiliser les fonctionnalites de suppression des privileges (voir \fIDirectives de securisation du serveur\fP)..IP "\fBDirectives de configuration du shell \fP :".SP \fBSRV_SHELL_LOC\fP=\fI/path/to/shell\fPC'est le chemin absolu (attention au nom lors de l'utilisation de liens symboliques) menant a un interpreteur de commande (shell). Il est utilise dans le cas ou le client demande un shell au serveur.Si le serveur ne veut pas offrir de shell au client, cette directive peut etre positionnee \fI/path/to/false\fP ou \fI/path/to/nologin\fP.Cette directive est forcemment accompagnee de la directive \fISRV_SHELL_CMD\fP..SP \fBSRV_SHELL_CMD\fP=\fIshell\fPC'est le nom de l'interpreteur de commande (shell) qui est configure dans la directive \fISRV_SHELL_LOC\fP dont cette directive est forcemment accompagnee..IP "\fBDirectives de securisation du serveur \fP :"Ces directives ne sont applicables que si le serveur est lance sous l'identite du super utilisateur..SP\fBPERM_USER_GROUP\fP=\fIuser\fPApres initialisation, le serveur prend l'identite (gid,uid) indiquee par l'utilisateur user.Si la directive \fIPERM_CHROOT\fP est positionnee, celle-ci est d'abord appliquee..SP\fBPERM_CHROOT\fP=\fIpath/to/chroot/directory\fPApres initialisation, le serveur se bloque avec un chroot dans le repertoire indique.Note: Ce repertoire doit etre un repertoire regulier et non un lien et doit permettre l'ecriture a l'identite sous laquelle tourne le serveur..IP "\fBDirectives HTTP POST serveur : \fP".PQuand le mode http_post est actionne, le serveur s'attend a recevoir des requetes HTTP POST et repond par des reponses HTTP. Comme le client peut couper la connexion TCP a intervalle regulier, le serveur maintient les applications en service et se sert pour se faire d'un numero aleatoire que le client lui envoie pour identifier si une nouvelle connexion est relative a une communication anterieure ou non.Si une connexion TCP est ouverte et que la requete cliente ne contient pas d'URI predefinie, le serveur renvoie une page d'erreur avant de couper la connexion.Il est possible de preciser au serveur qu'il doit repondre a certaines requetes en envoyant des fichiers preconfigures quand leurs URIs sont presentes dans la requete HTTP.Les donnees utiles emises par le client peuvent etre masques en ajoutant des donnees avant et apres. Quand c'est le cas, le serveur ne tient pas compte de ces donnees superflues..IP "\fBLes directives suivantes sont obligatoires pour le serveur en mode http_post.\fP".SP\fBHTTP_MOD_URI\fP=\fI/cgi-bin/cctt.cgi\fPL'URI specifiee dans cette directive indique au serveur que des donnees peuvent etre presentes dans le corps de la requete HTTP..SP\fBHTTP_MOD_SRV_ERROR_PAGE\fP=\fIerror_page.txt\fPLe fichier specifie sera envoye par le serveur si l'URI definie dans \fBHTTP_MOD_URI\fP n'est pas presente dans la requete POST ou si l'URL de cette meme requete ne contient pas de fichier defini avec une directive \fBHTTP_MOD_SRV_FAKE_URLS\fP..IP "Les directives suivantes sont facultatives pour le serveur en mode http_post.".SP\fBHTTP_MOD_SRV_TOP_PAD\fP=\fIoctets\fPIndique au serveur qu'il y a \fIoctets\fP de donnees superflues qui precedent les donnees utiles dans le corps de la requete HTTP..SP\fBHTTP_MOD_SRV_BOT_PAD\fP=\fIoctets\fPIndique au serveur qu'il y a \fIoctets\fP de donnees superflues qui suivent les donnees utiles dans le corps de la requete HTTP..SP\fBHTTP_MOD_CL_TOP_PAD\fP=\fIpath/to/file\fPIndique au serveur de preceder les donnees utiles dans une reponse HTTP par les donnees presentes dans le fichier \fIpath/to/file\fP.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -