guía

Telnet ha muerto, larga vida a Telnet.

por Lógico (@logico_ar)

PUBLICADO 07:40
3.5.2020

Es viejo, inseguro, no sirve para mucho y aun así, ahí va la mejor herramienta para iniciarse en sistemas.

Quizás el encierro por la cuarentena me esté poniendo melancólico. Quizás al pintar canas algunos recuerdos se vuelvan más dulces. Pero no puedo dejar de recordar con cariño la primera vez que nos vimos. Los nombres fueron cambiados para proteger a los involucrados.
Corría el año 1998. DOS era el lugar de encuentro. Me entere de vos porque saliste en el archivo anarchist-cookbook.txt. Sección hacking.
Ibas completamente de negro. Letras de fósforo color ámbar haciendo juego. Me acerqué y te dije: telnet mail.coopelec.com.ar 25. La música del módem sonaba a todo lo que daba. Me respondiste:

Trying 216.58.222.46...
Connected to mail.coopelect.com.ar.
Escape character is '^]'.

La descarga de endorfinas por la emoción del momento invadía todo mi ser. Amor a primera vista que se le dice. Aunque fue bueno mientras duró, no tuvimos un final feliz. Tuve que reiniciar (mal) la computadora porque no sabía cómo salir. Aún así, uno no se olvida del primer amor.

Telnet básico.

Telnet (Teletype Network) es un protocolo para acceso remoto originalmente propuesto en 1969. Sobra decir que actualmente hay alternativas mucho mejores para conexiones remotas (ssh, vnc, etc). Sin embargo telnet todavía puede sernos útil de cuando en cuando.

Instalación.

Microsoft desactivó telnet desde Windows 7. Sin embargo podemos activar el paquete:

Inicio -> Panel de control -> programas -> programas y características -> Activar o desactivar las características de Windows -> Tildar Cliente Telnet.

Si es muy complicado o no tenés ganas de dar muchas vueltas podés descargar el cliente de Telnet de PuTTY, PuTTYTel. Un binario, fácil y rápido.

En sistemas Linux/BSD ya viene instalado por defecto.

Los usuarios de OS X pueden instalarlo mediante Brew, ingresando en la terminal:

brew install telnet

Uso y usos.

Cómo es viejito, telnet per se, no tiene mucha dificultad. El programa se ejecuta en línea de comando con:

telnet

Luego ingresar

open [IP o dominio] [puerto]

Por ejemplo:

#  (si no se pone el puerto se entiende que es el 23)
open avalon-rpg.com

O directamente con

telnet avalon-rpg.com

Para terminar la conexión hay que presionar Ctrl+] aka ^].

Lo interesante de telnet radica en que puede ser usado para verificar puertos TCP o interactuar con algunos servicios. Si bien voy a mostrar algunos ejemplos, no van a ser en profundidad, lo suficiente cómo para generar curiosidad (espero) en usted, amable lector.

Navegando con Telnet.

Podés tener una mirada más intima de HTTP usando telnet.

telnet google.com 80

Ahora estamos conectados a un servidor web de Google. Haciendo uso de los métodos de HTTP, podemos descargar el contenido del home de Google. Para esto ingresamos GET / y el web server amablemente nos responde con el código 200 OK.

Trying 172.217.172.110...
Connected to google.com.
Escape character is '^]'.
GET /

# Esta es la respuesta de Google
HTTP/1.0 200 OK
Date: Wed, 03 Jun 2020 15:13:25 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: 1P_JAR=2020-06-03-15; expires=Fri, 03-Jul-2020 15:13:25 GMT; path=/; domain=.google.com; Secure
Set-Cookie: NID=204=uj2MNUj0459B85wFC9vQxtS_b8rNXNwZDjmkZGTz-IIDh-8W7uGbbtMo0Tas_6uhtedY7MQFEO-0jvq2U-pkoSvEYtDkz4FZ31xmIZQ3pPGAvCMqhVWaw-OIST2k8BuEnooDv88XgbJCM5ySQN-MRb5X8Ht4cDP_9bzD7aKz4Jk; expires=Thu, 03-Dec-2020 15:13:25 GMT; path=/; domain=.google.com; HttpOnly
Accept-Ranges: none
Vary: Accept-Encoding
[...]
Connection closed by foreign host.

Esto puede ser útil para testear instalaciones de web servers y firewalls.

Envío de correos electrónicos con telnet.

Ahora podemos ir un poco más allá y conocer más sobre el protocolo SMTP.

telnet mail1.fabrikam.com 25
Trying 64.233.186.108
Connected to smtp.gmail.com.
Escape character is '^]'.
220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Fri, 5 Aug 2016 16:24:41 -0700
EHLO contoso.com
250-mail1.fabrikam.com Hello [172.16.0.5]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST
MAIL FROM: <chris@contoso.com>
250 2.1.0 Sender OK
RCPT TO: <kate@fabrikam.com> NOTIFY=success,failure
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
SUBJECT: Prueba de mail

Estoy probando el envio por TELNET.
.
250 2.6.0 <c89b4fcc-3ad1-4758-a1ab-1e820065d622@mail1.fabrikam.com> [InternalId=5111011082268, Hostname=mail1.fabrikam.com] Queued mail for delivery
QUIT
221 2.0.0 Service closing transmission channel

El ejemplo anterior extraido de acá nos muestra un intercambio con el servidor de SMTP para enviar un mail

  • EHLO contoso.com, saluda al servidor.
  • MAIL FROM:, quien escribe el mensaje.
  • RCPT TO:, quien es el destinatario.
  • DATA, indica que comienza la carga de información del mail.
  • SUBJECT: Prueba de mail, asunto del mensaje.
  • Doble Enter para empezar a escribir el cuerpo del mensaje, en este caso: Estoy probando el envio por TELNET.
  • Para finalizar el cuerpo y enviar, presionar Enter, luego punto (.) y otra vez Enter.
  • QUIT finaliza la conexión al SMTP.

Cómo se puede apreciar uno podría poner cualquier dirección de origen en MAIL FROM... ¿Alguien dijo spoofing?, se escuchó algo en el fondo. En la vida real (actual) no es tan fácil, pero es algo así. Queda de tarea al lector buscar más data por ahí. Y ya que estamos en tema email...

Leer emails con Telnet.

Ahora vamos a leer nuestro correo desde la terminal usando el protocolo POP3.

telnet pop.midominio.com 110
Trying 10.39.243.134...
Connected to pop.midomino.com.
Escape character is '^]'.
+OK Dovecot ready.
USER micorreo@midominio.com
+OK
PASS Tremenda contraseña
+OK Logged in.
LIST
+OK 4 messages:
1 5177
2 32760
3 16757
4 2643
.
RETR 4
+OK 2643 octets
Return-path: <admin@midominio.com>
Envelope-to: micorreo@midominio.com
Delivery-date: Wed, 03 Jun 2020 13:20:23 -0300
[...]

POP3 es bastante fácil de utilizar al sólo poder leer la bandeja de entrada. A continuación los comandos

  • USER: ingresa el usuario.
  • PASS: ingresa la contraseña.
  • LIST: lista los mensajes en la bandeja de entrada.
  • RETR: muestra el mail en cuestión. En nuestro caso RETR 4 muestra el contenido del mail con ID 4.

Otros comandos de POP3

  • NOOP: Hace nada, es para obtener una respuesta del servidor.
  • STAT: Muestra l cantidad de mails en la bandeja de entrada y el tamaño total.
  • DELE id: Marcar el mensaje para ser eliminado. Es eliminado cuando se ingresa el comando QUIT.
  • RSET: Quita la marca de borrado de todos los mails que hayan sido marcados para su eliminación.
  • TOP id n: Muestra la cabecera y la cantidad de líneas del cuerpo mensaje id indicado por n. Ejemplo: TOP 2 8 (muestra las primeras ocho líneas del cuerpo del mensaje 2).

Telnet: oldie but goodie.

Cómo podemos ver, a pesar de contar con varios años encima y ser superado por otros programas y protocolos, telnet todavía tiene algunos usos. Para cerrar algunos links de interes:

  • jumpjet: un gran listado de servidores telnet (BBS, MMO, etc).
  • telnetbbsguide.com: todo lo que siempre quisiste saber sobre BBS (incluye directorio).
  • mudconnect: directorio de juegos MUD (Multi-User Dungeon).
  • telehack.com (telnet telehack.com): se puede ver Star Wars en versión ASCII...


Comentarios desactivados en la versión móvil.