Page suivante - Page précédente - Table des matières

5. Procédure détaillée

En détail, la marche à suivre est la suivante :

  1. A partir d'une machine à l'intérieur du firewall, se connecter par telnet à l'extérieur de celui-ci et s'y loger.
  2. Sauf si vous êtes sous Linux et que vous utilisez le système de fichiers /proc (voir ci-dessous), vérifiez que votre shell est du genre sh. C.à.d. que votre shell par défaut soit une variante de csh. Appelez telnet par (setenv SHELL /bin/sh; telnet machine.la-bas.dehors).
  3. Après s'être logé, lancer la commande sur la machine de l'extérieur : term -r -n off telnet.

Maintenant revenez à l'invite telnet sur la machine locale, en utilisant le caractère d'échappement ^] (ou celui que vous voulez), puis utilisez la commande de telnet pour exécuter une commande shell ! pour lancer term :

telnet> ! term -n on telnet <&3>&3

Et voilà !!! (Ndt : En français dans le texte).

(Si vous possédez une autre version de telnet, vous risquez d'avoir à utiliser d'autres descripteurs de fichiers que 3. C'est facile à déterminer en utilisant trace. Mais 3 semble fonctionner sur tous les telnet de type bsd que j'ai testés. J'ai également essayé sous Sun OS 4.x et les distributions Linux standard.)

Certains clients telnet ne possèdent pas de caractère d'échapement !. Par exemple, client telnet diffusé avec la Slackware 3.0 en fait partie. Les sources de ce client sont sensés provenir de ftp://ftp.cdrom.com:/pub/linux/slackware-3.0/source/n/tcpip/NetKit-B-0.05.tar.gz, paquetage qui contient le caractère d'échapement. Une solution assez simple est de récupérer ces sources et de les recompiler. Je n'y suis malheureusement pas arriver. De plus, si vous êtes à l'intérieur d'un firewall socks, vous devrez avoir un client telnet à la SOCKS. J'ai réussi à compiler un tel cient en utilisant ftp://ftp.nec.com/pub/security/socks.cstc/socks.cstc.4.2.tar.gz ou si vous êtes à l'extérieur des USA, ftp://ftp.nec.com/pub/security/socks.cstc/export.socks.cstc.4.2.tar.gz

Autrement, sous Linux version 1.2.13 ou précédentes, vous pouvez mettre telnet en sommeil avec ^]^z , récupérer son pid et lancer :

 term -n on -v /proc/ < telnetpid> /fd/3 telnet

Cela ne fonctionne plus avec les noyaux 1.3 et supérieur, qui ont vérouillé certaines failles de sécurité pour éviter les accès à des descripteurs de fichiers n'appartenant pas au propriétaire du processus ou à ses fils.


Page suivante - Page précédente - Table des matières