Les HOWTO Linux...
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 :
- A partir d'une machine à l'intérieur du firewall,
se connecter par
telnet
à l'extérieur de celui-ci et s'y loger. - 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 decsh
. Appeleztelnet
par(setenv SHELL /bin/sh; telnet machine.la-bas.dehors)
. - 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