Telnet, Netcat, Socat… quien involucrado en el mundo de la seguridad informática nunca ha escuchado y/o usado estas herramientas? Cuantos sistemas se han visto vulnerados en el pasado involucrando alguna de ellas? Probablemente hoy en día se les recuerda con añoranza o como protocolos obsoletos y que ya no representan ninguna amenaza (en el caso de Telnet especialmente ya que actualmente ha sido prácticamente reemplazado por completo por SSH) sin embargo, dada su versatilidad y facilidad de uso aun son utilizadas por muchos hackers para distintos tipos de tareas relacionadas con el flujo de paquetes en una red de ordenadores, sin ir muy lejos, algunas organizaciones aun utilizan Telnet para conexiones remotas desde sus redes corporativas internas (aunque supongo que serán realmente pocas las organizaciones que lo utilizan).
En esta ocasión se indicará el uso de estas herramientas y como son aplicadas hoy en día para manipular conexiones entre uno o varios puntos de red.
Utilizando Telnet:
Se trata de un protocolo de red usado sobre redes WAN o LAN que suministra conexiones de forma bidireccional permitiendo que una maquina se pueda comunicar con otra de forma remota desde linea de comandos. Cuando se utiliza el comando “telnet” en sistemas operativos Windows/Linux realmente se utiliza un cliente que soporta este protocolo, se puede utilizar como un interprete de comandos o directamente estableciendo una conexión a un host remoto especificando dirección y puerto, una de las potencialidades de Telnet es la capacidad de “encadenar” múltiples conexiones desde distintos sitios, permitiendo conexiones “escalonadas” (por decirlo de alguna forma), por ejemplo, suponiendo que un hacker establezca una conexión desde su maquina A a la maquina B, posteriormente desde la maquina B realiza una conexión a la maquina C, desde la perspectiva de la maquina C, la maquina A no tiene ninguna relación con la conexión establecida entre B y C, por esta razón cuando se habla de hacking con Telnet, frecuentemente se suele hablar de múltiples puntos de conexión y de “backtracking” para identificar el punto origen del atacante.
Para comenzar, desde un entorno de pruebas se enseñarán algunos ejemplos de uso de Telnet cliente/servidor.
En primer lugar es necesario instalar el servicio de Telnet en la maquina servidor con un simple comando apt.
>apt-get install telnetd |
Por defecto el servidor se inicia en el puerto 23, posteriormente realizar una conexión es muy sencillo:
> telnet Trying 192.168.1.34… Connected to 192.168.1.34. Escape character is ‘^]’. Debian GNU/Linux 6.0 debian login: adastra Password: Last login: Wed Jul 6 22:55:13 CEST 2011 from adastra-VPCEB3C5E.local on pts/1 Linux debian 2.6.32-5-amd64 #1 SMP Wed May 18 23:13:22 UTC 2011 x86_64 ………. adastra@debian:~$ |
Ahora bien, la principal vulnerabilidad de este mecanismo es que tanto login como password viajan por la red en texto claro y la conexión no viaja cifrada desde ninguno de los puntos, por este motivo es muy fácil capturar dichas credenciales utilizando un sniffer de red (como por ejemplo wireshark). Aunque existen implementaciones de telnet un poco mas seguras como telnetd-ssl/telnet-ssl (servidor/cliente) que soportan cifrado SSL, sin lugar a dudas, hoy en día la mejor elección a la hora de realizar este tipo de actividades es SSH.
Por otro lado Telnet soporta unas cuantas opciones para definir características de la conexión que se va a establecer, por ejemplo:
>telnet -e Q -l root -n /home/adastra/telnet.log 192.168.1.34 23 |
Indica el carácter de escape con la opción -e (carácter para salir del interprete de comandos) se indica el usuario local con -l y un fichero de log con la opción -n, finalmente se indica la dirección del servidor remoto y el puerto, aunque en este caso no es necesario se indica para fines ilustrativos.
También es posible utilizar telnet para conectarse a cualquier otro servicio (no solamente Telnet) como por ejemplo un servidor de correo SMTP para envío de mensajes de correo electrónico.
> telnet -e Q Telnet escape character is ‘Q’. telnet> open localhost 25 Trying ::1… Trying 127.0.0.1… Connected to localhost. Escape character is ‘Q’. 220 adastra-VPCEB3C5E ESMTP Sendmail 8.14.3/8.14.3/Debian-9.2ubuntu1; Wed, 6 Jul 2011 23:47:58 +0200; (No UCE/UBE) logging access from: localhost.localdomain(OK)-localhost.localdomain [127.0.0.1] 250-adastra-VPCEB3C5E Hello localhost.localdomain [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH DIGEST-MD5 CRAM-MD5 250-DELIVERBY 250 HELP |
Como se puede apreciar su uso es bastante sencillo, sin embargo bastante robusto, aunque se puede conseguir lo mismo (y más) utilizando SSH, resulta bastante útil tener conocimientos sobre esta herramienta especialmente cuando se trata con sistemas antiguos o sistemas que se encuentrán en segmentos de red cerrados (intranet) y que permiten la comunicación por medio de Telnet.
En próximas entradas se profundizará sobre el uso de Netcat y Socat, herramientas imprescindibles para cualquier hacker ademas de que traen consigo horas muy intensas de diversión.
Post antiguo pero de gran ayuda… muchas gracias por tomarte por la informacion.
Me gustaMe gusta