debian tema 12: telnet - Curso de Técnico de Redes y Sistemas 2011

Anuncio
DEBIAN TEMA 12:
TELNET
Aprende a controlar remotamente una máquina a través del terminal de
comandos
DEBIAN TEMA 12: TELNET
Índice de contenido
1
¿Qué es? .................................................................................................................................................. 2
2
¿Cómo funciona y para qué se usó? ..................................................................................................... 2
3
Problemas de seguridad y SSH.............................................................................................................. 2
3.1
¿Dónde no utilizarlo? .......................................................................................................................... 3
4
Instalación del servidor y el cliente ....................................................................................................... 3
5
Manejo básico de telnet ......................................................................................................................... 4
5.1
Conexión básica .................................................................................................................................. 4
5.2
Comandos ............................................................................................................................................ 5
6
7
Tcpdump .................................................................................................................................................. 5
6.1
¿Qué es? .............................................................................................................................................. 5
6.2
Proceso de instalación ........................................................................................................................ 5
6.3
Uso ....................................................................................................................................................... 6
6.4
Primeros pasos .................................................................................................................................... 7
6.5
Comando tcpdump y todas las opciones .......................................................................................... 7
6.6
Filtros ................................................................................................................................................... 8
6.6.1
Filtros Type ................................................................................................................................... 8
6.6.2
Filtros Dir ...................................................................................................................................... 8
6.6.3
Filtros de Proto ............................................................................................................................. 8
6.7
Salida de datos.................................................................................................................................... 9
6.8
Detección de virus............................................................................................................................... 9
Bibliografía ............................................................................................................................................ 11
Página 1 de 11
ÍNDICE DE CONTENIDO
DEBIAN TEMA 12: TELNET
1 ¿Qué es?
Telnet (TELecommunication NETwork) es el nombre de un protocolo de red que sirve para acceder
mediante una red a otra máquina para manejarla de forma remota tal y como si estuviéramos sentados
delante de ella. También es el nombre del programa informático que implementa el cliente. Para que la
conexión funcione es necesario que el ordenador al que se accede tenga instalado y configurado
correctamente un programa especial que reciba y gestione las conexiones. El puerto que se utiliza
generalmente es el 23.
2 ¿Cómo funciona y para qué se usó?
Telnet sólo sirve para acceder en modo terminal o consola de comandos, es decir, sin gráficos. En su
momento de mayor apogeo fue una herramienta muy útil para arreglar fallos a distancia, sin necesidad de
estar físicamente en el mismo sitio que la máquina que los tenía. Esto permitió abaratar los costes de una
empresa informática. También se usó para consultar datos a distancia, como datos personales en
máquinas accesibles por red, información bibliográfica, etc.
Aparte de estos usos, en general telnet se ha utilizado (y aún hoy se puede utilizar en su variante SSH)
para abrir una sesión con una máquina UNIX, de modo que múltiples usuarios con cuenta en la máquina,
se conectan, abren sesión y pueden trabajar utilizando esa máquina. Es una forma muy usual de trabajar
con sistemas UNIX.
Hoy en día este protocolo también se usa para acceder a los Bulletin Board System o BBS, que
inicialmente eran accesibles únicamente con un módem a través de la línea telefónica. Para acceder a un
BBS mediante telnet es necesario un cliente que de soporte a gráficos ANSI y protocolos de transferencia
de ficheros. Los gráficos ANSI son muy usados entre los BBS. Con los protocolos de transferencia de
ficheros (el más común y el que mejor funciona es el ZModem) podrás enviar y recibir ficheros del BBS, ya
sean programas o juegos o ya sea el correo del BBS (correo local, de FidoNet u otras redes).
Algunos clientes de telnet (que soportan gráficos ANSI y protocolos de transferencias de ficheros como
Zmodem y otros) son mTelnet!, NetRunner, Putty, Zoc, etc..
3 Problemas de seguridad y SSH
Su mayor problema es la seguridad. Esto es debido a que todos los nombres de usuario y contraseñas
necesarias para entrar en las máquinas viajan por la red como texto plano (cadenas de texto sin cifrar).
Esto facilita que cualquiera que espíe el tráfico de la red pueda obtener los nombres de usuario y
contraseñas, y así acceder él también a todas esas máquinas.
Por esta razón dejó de usarse, casi totalmente, hace unos años, cuando apareció y se comenzó a usar
masivamente el protocolo SSH, que puede describirse como una versión cifrada de telnet. Actualmente se
puede cifrar toda la comunicación del protocolo durante el establecimiento de sesión
Hay tres razones principales por las que el telnet no se recomienda para los sistemas modernos desde
el punto de vista de la seguridad. Son los siguientes:
 Los dominios de uso general del telnet tienen varias vulnerabilidades descubiertas sobre los años, y
varias más que podrían aún existir.
 Telnet, por defecto, no cifra ninguno de los datos enviados sobre la conexión (contraseñas
inclusive), así que es fácil interferir y grabar las comunicaciones, y utilizar la contraseña más adelante
para propósitos maliciosos.
Página 2 de 11
CONCEPTOS
DEBIAN TEMA 12: TELNET
 Telnet carece de un esquema de autentificación que permita asegurar que la comunicación esté
siendo realizada entre los dos anfitriones deseados, y no interceptada entre ellos.
3.1 ¿Dónde no utilizarlo?
En ambientes donde es importante la seguridad, por ejemplo en el Internet público, telnet no debe ser
utilizado. Las sesiones de telnet no son cifradas. Esto significa que cualquiera que tiene acceso a
cualquier router, switch, o gateway localizado en la red entre los dos anfitriones donde se está utilizando
telnet puede interceptar los paquetes de telnet que pasan cerca y obtener fácilmente la información de la
conexión y de la contraseña (y cualquier otra cosa que se mecanografía) con cualesquiera de varias
utilidades comunes como tcpdump y Wireshark.
Estos defectos han causado el abandono y depreciación del protocolo telnet rápidamente, a favor de
un protocolo más seguro y más funcional llamado SSH, lanzado en 1995. SSH provee de toda la
funcionalidad presente en telnet. Además, aporta el cifrado fuerte para evitar que los datos sensibles
tales como contraseñas sean interceptados y la autentificación mediante llave pública, para asegurarse
de que el computador remoto es realmente quién dice ser.
Los expertos en seguridad computacional, tal como el instituto de SANS, y los miembros del newsgroup
de Linux security recomiendan que el uso del telnet para las conexiones remotas debería ser
descontinuado bajo cualquier circunstancia normal.
Cuando el telnet fue desarrollado inicialmente en 1969, la mayoría de los usuarios de computadoras
en red estaban en los servicios informáticos de instituciones académicas, o en grandes instalaciones de
investigación privadas y del gobierno. En este ambiente, la seguridad no era una preocupación y solo se
convirtió en una preocupación después de la explosión del ancho de banda de los años 90. Con la subida
exponencial del número de gente con el acceso al Internet, y por la extensión, el número de gente que
procura crackear los servidores de otra gente, telnet podría no ser recomendado para ser utilizado en
redes con conectividad a Internet.
4 Instalación del servidor y el cliente
Como hemos visto se necesita que en el ordenador que queremos controlar remotamente esté
instalado un servidor telnet y en el ordenador desde el cual queremos tomar el control esté instalado un
cliente telnet. En el caso de Debian, tenemos que descargar dos paquetes mediante el gestor de
paquetes Synaptic o la consola de comandos:
 telnet = cliente de telnet (normalmente está instalado por defecto)
 telnetd = servidor de telnet.
Usando la consola de comandos tenemos que escribir:
root@curso:/home/josemariatc# apt-get install telnet
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
telnet ya está en su versión más reciente.
0 actualizados, 0 se instalarán, 0 para eliminar y 0 no actualizados.
root@curso:/home/josemariatc# apt-get install telnetd
Leyendo lista de paquetes... Hecho
DEBIAN TEMA 12: TELNET
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes NUEVOS:
telnetd
0 actualizados, 1 se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 0 B/42,3 kB de archivos.
Se utilizarán 106 kB de espacio de disco adicional después de esta operación.
Seleccionando el paquete telnetd previamente no seleccionado.
(Leyendo la base de datos ... 152231 ficheros o directorios instalados actualmente.)
Desempaquetando telnetd (de .../telnetd_0.17-36_i386.deb) ...
Procesando disparadores para man-db ...
Configurando telnetd (0.17-36) ...
Añadiendo al usuario telnetd al grupo utmp
Cuando finalice ya tendremos instalado y funcionando a la perfección el demonio de telnet, telnetd
(telnet daemon). Si en algún momento quisieramos cerrar el puerto de telnet, lo que tendríamos que
hacer sería editar el archivo /etc/inetd.conf, comentar, poniendo una almohadilla delante, la línea:
#telnet stream tcp nowait telnetd.telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd
Para aplicar los cambios, es necesario reiniciar el demonio de red, lo haremos con:
/etc/init.d/inetd restart
5 Manejo básico de telnet
5.1 Conexión básica
Para iniciar una sesión con un intérprete de comandos de otro ordenador, puede emplear el comando
telnet seguido del nombre o la dirección IP de la máquina en la que desea trabajar, por ejemplo si desea
conectarse a la máquina purpura.micolegio.edu.com deberá teclear telnet purpura.micolegio.edu.com, y
para conectarse con la dirección IP 1.2.3.4 deberá utilizar telnet 1.2.3.4.
Una vez conectado, podrá ingresar el nombre de usuario y contraseña remoto para iniciar una sesión
en modo texto a modo de consola virtual (ver Lectura Sistema de usuarios y manejo de clave). La
información que transmita (incluyendo su clave) no será protegida o cifrada y podría ser vista en otros
computadores por los que se transite la información (la captura de estos datos se realiza con un packet
sniffer).
La forma típica de comenzar es buscar la orden connect, abriéndose una ventana donde indicaremos
el host al que queremos conectar (nos sirve tanto el nombre de dominio como la IP) y el puerto de
conexión (puerto telnet, 23 por defecto, aunque una misma maquina puede estar ejecutando diversos
servicios telnet, cada uno por un puerto distinto, como pop3 o smtp).
Si todo va bien y el ordenador remoto permite acceso telnet, el programa nos indicará que la conexión
ha tenido éxito. A continuación tenemos que identificarnos ante el sistema remoto (login) mediante
nuestro nombre de usuario y contraseña. Normalmente el propio ordenador remoto nos va pidiendo los
datos preguntando por user y password, pero en otras ocasiones la terminal solo nos muestra que
estamos conectados, asi que deberemos introducir los datos sin ayuda, normalmente tecleando user
minombreusuario y pass micontraseña. Una vez autentificados, podemos controlar la máquina.
DEBIAN TEMA 12: TELNET
Una alternativa más segura para telnet, pero que requiere más recursos del computador, es SSH. Este
cifra la información antes de transmitirla, autentifica la máquina a la cual se conecta y puede emplear
mecanismos de autenticación de usuarios más seguros.
Actualmente hay sitios para hackers, en los que se entra por telnet y se van sacando las password para
ir pasando de nivel, ese uso de telnet aun es vigente.
5.2 Comandos
6 TCPdump
6.1 ¿Qué es?
Tcpdump es una herramienta que se utiliza para analizar el tráfico de nuestra red. Hablando en plata:
es un sniffer. Este programa utiliza la librería Libpcap y captura los paquetes TCP/IP que circula por
nuestra red, mostrándolos a tiempo real. Los desarrolladores de este programa son Van Jacobson, Steven
McCanne, Craig Leres y Andrew Tridgell. Este programa funciona en sistemas operativos basados en Unix:
MacOS, Linux, Solaris, BSD, AIX...
6.2 Proceso de instalación
Podemos buscar el programa mediante el gestor de paquetes Synaptic o usar una consola de
comandos:
root@curso:/home/josemariatc# apt-get install tcpdump
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes NUEVOS:
tcpdump
DEBIAN TEMA 12: TELNET
0 actualizados, 1 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 376 kB de archivos.
Se utilizarán 901 kB de espacio de disco adicional después de esta operación.
Des:1 http://ftp.es.debian.org/debian/ squeeze/main tcpdump i386 4.1.1-1 [376 kB]
Descargados 376 kB en 7seg. (48,5 kB/s)
Seleccionando el paquete tcpdump previamente no seleccionado.
(Leyendo la base de datos ... 152243 ficheros o directorios instalados actualmente.)
Desempaquetando tcpdump (de .../tcpdump_4.1.1-1_i386.deb) ...
Procesando disparadores para man-db ...
Configurando tcpdump (4.1.1-1) ...
root@curso:/home/josemariatc#
6.3 Uso
Lo primero que tenemos que hacer es saber que NIC de red vamos a utilizar. Por lo tanto si estamos
conectados por cable y queremos auditar la red cableada de la red local, utilizaremos la NIC cableada
(aquella que utiliza el RJ45 o el USB para conectarse al router o al switch). Si por el contrario queremos
auditar la red inalámbrica, tendremos que usar la NIC o adaptador de red inalámbrico. Para poder
utilizarlo, necesitaremos saber el nombre de la interfaz. Si no especificamos nuestra interfaz, utilizar por
defecto la cableada eth0. Para conocer todas las conexiones disponibles usamos el siguiente comando:
root@curso:/home/josemariatc# ifconfig
eth0
Link encap:Ethernet
inet addr:192.168.1.3
HWaddr 08:00:27:99:4b:78
Bcast:192.168.1.255
Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe99:4b78/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
MTU:1500
Metric:1
RX packets:9743 errors:0 dropped:0 overruns:0 frame:0
TX packets:6513 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13163757 (12.5 MiB)
lo
TX bytes:682346 (666.3 KiB)
Link encap:Local Loopback
inet addr:127.0.0.1
Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING
MTU:16436
Metric:1
RX packets:1216 errors:0 dropped:0 overruns:0 frame:0
TX packets:1216 errors:0 dropped:0 overruns:0 carrier:0
DEBIAN TEMA 12: TELNET
collisions:0 txqueuelen:0
RX bytes:163964 (160.1 KiB)
TX bytes:163964 (160.1 KiB)
6.4 Primeros pasos
Vamos a proceder ya al análisis o “sniffeo” del tráfico en la red seleccionada. Para ello, Ejecutamos el
siguiente comando en un terminal como usuario root:
sudo tcpdump –i nombre_red_a_analizar
Veamos un ejemplo práctico:
root@curso:/home/josemariatc# sudo tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:22:02.517590 IP6 fe80::65c8:db8a:dc8f:da49.65010 > ff02::c.1900: UDP, length 146
12:22:02.520488 IP 192.168.1.3.57180 > ..domain: 63457+ PTR?
c.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa. (90)
12:22:02.987213 IP ..domain > 192.168.1.3.57180: 63457 NXDomain 0/1/0 (160)
12:22:02.988278 IP 192.168.1.3.49656 > ..domain: 12558+ PTR?
9.4.a.d.f.8.c.d.a.8.b.d.8.c.5.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (90)
12:22:03.270409 IP ..domain > 192.168.1.3.49656: 12558 NXDomain 0/1/0 (160)
12:22:03.271236 IP 192.168.1.3.59206 > ..domain: 24826+ PTR? 1.1.168.192.in-addr.arpa.
(42)
12:22:03.371402 IP ..domain > 192.168.1.3.59206: 24826*- 1/0/0 PTR . (55)
12:22:03.372011 IP 192.168.1.3.58176 > ..domain: 39634+ PTR? 3.1.168.192.in-addr.arpa.
(42)
12:22:03.613431 IP ..domain > 192.168.1.3.58176: 39634 NXDomain* 0/1/0 (103)
12:22:05.520623 IP6 fe80::65c8:db8a:dc8f:da49.65010 > ff02::c.1900: UDP, length 146
12:22:09.522203 IP6 fe80::65c8:db8a:dc8f:da49.65010 > ff02::c.1900: UDP, length 146
12:22:12.524324 IP6 fe80::65c8:db8a:dc8f:da49.65010 > ff02::c.1900: UDP, length 146
Como podéis ver, el programa nos resuelve hasta los nombres de las máquinas. También observamos
que los paquetes capturados son realmente pequeños. Esto tiene una explicación y es que el TcpDump
captura solo los 68 primeros bytes de cada paquete ya que ese es el tamaño de las cabeceras de
paquetes basados en protocolos TCP, UDP o IP.
6.5 Comando tcpdump y todas las opciones
Sintaxis
tcpdump [ -AbdDefIKlLnNOpqRStuUvxX ]
Opciones
-A
Imprime cada paquete capturado
DEBIAN TEMA 12: TELNET
-c número
Deja de recibir paquetes tras el número especificado.
-C
Antes de imprimir un paquete comprueba si el tamaño del fichero es mayor que el fijado en la
configuración.
-d
Muestra los paquetes en código comprensible por un humano.
-e
Imprime el nivel de enlace de la cabecera del archivo.
-f
Imprimir direcciones IPV4 foráneas numéricamente.
-r
Muestra la información almacenada en el fichero creado mediante la opción –w.
-s cantidad Cambiar el número de bytes a capturar
-w
La información capturada se almacena en el archivo que nosotros especifiquemos. Es
conveniente crear un archivo con formato .txt para facilitar la lectura en diversos sistemas.
-z
Muestra el nombre de usuario en lugar de su UID
6.6 Filtros
En TcpDump podemos distinguir 3 tipos de filtros:
6.6.1 Filtros Type
Las siglas vienen de Host, Net, Port y Mask. Con ellos podremos especificar un puerto, una red, un host
o una máscara de subred determinada. Ejemplo:
tcpdump -i ath0
192.168.2.23
tcpdump -i ath0
tcpdump -i ath0
tcpdump -i ath0
host 192.168.2.23 # Cogeríamos el tráfico de entrada y salida del host
net 10.0 # Capturaríamos el tráfico de la red
port 80 # Capturaríamos el tráfico del puerto 80 (http).
mask 255.255.255.0 # Más de lo mismo (mascara subred determinada).
Podemos combinar estos filtros. Ejemplo:
Código:
tcpdump -i eth0 host 192.168.2.23 port 80
6.6.2 Filtros Dir
Son filtros de origen y destino. Me explico, con estos filtros, tenemos la posibilidad de elegir que los
paquetes que salen y entran en un determinado host. Para ello se utilizan los parámetros “src” (source) y
“dst” (destiny). Supongamos que queremos saber que datos salen de una determinada IP (por ejemplo
192.168.2.23), pondríamos el siguiente código:
tcpdump -i interfaz src host 192.168.2.23
Pero, y si quisiéramos obtener los paquetes que entran y salen de un determinado host. Pues con
poner “host nombredelhost” valdría. Pero... ¿Y si quisieramos saber los paquetes que salen de un host y
los que salen de otro? Para esto tenemos las expresiones “and” y “or”. Pongamos que queremos saber
los paquetes que entran en dos host de nuestra red local (192.168.2.23 y 192.168.2.24), haríamos lo
siguiente:
tcpdump -i interfaz dst host 192.168.2.23 and dst host 192.168.2.24
6.6.3 Filtros de Proto
DEBIAN TEMA 12: TELNET
Estos filtros nos servirán para determinar que paquetes queremos capturar en función de su protocolo.
Para determinar el protocolo que queremos añadiremos al inicio del comando “ip” (para protocolo ip),
“tcp” (para protocolo tcp), “udp” (para protocolo udp), “arp” (para protocolo arp), “rarp” (para protocolo
rarp), “ether” (para protoclo ethernet y referenciando a la dirección MAC que se vaya a analizar) y “fddi”
(para redes basadas en fddi). De Ether y Fddi solo capturará tramas de paquetes a nivel de la capa de
enlace del modelo OSI. También podemos hacer esto añadiendo al comando “proto //protocolo”
(ejemplo: proto \\tcp).
tcpdump -i interfaz udp
tcpdump -i interfaz ether host FF:FF:FF:FF:FF:FF
También podemos hayar el tráfico icmp:
tcpdump ip proto \\ip
Podemos combinar todos los filtros para obtener un sinfín de posibilidades.
6.7 Salida de datos
Esto lo copio tal cual está en la wikipedia ya que creo que no tiene mucha más explicación:
src > dst: flags [dataseq ack window urgent options]
15:23:44.772291 IP 192.168.1.17.52798 > 85.Red-83-37-170.dynamicIP.rima-tde.net.65000: . ack
1791 win 7851 <nop,nop,timestamp 5520421 997821>
src: Dirección y puerto origen.
dst: Dirección y puerto destino.
flags: Flags de la cabecera TCP. si no hay flags o combinación de S (SYN), F (FIN), P (PUSH), W (reducción
de la ventana de congestión), E (ECN eco).
dataseq: Número de secuencia del primer byte de datos en este segmento TCP. El formato es
primero:ultimo(n).
ack: El número de asentimiento. Indica el número siguiente de secuencia que se espera recibir.
window: Tamaño de la ventana de recepción.
urgent: Existen datos urgentes.
options: Indica la existencia de opciones. Van entre "<"...">".
6.8 Detección de virus
Lo primero que tuve que hacer fue, ir a un ordenador con windows instalado (llamada aula10profe) y
quitar la compartición de carpetas, excepto la disquetera, que será la que utilizaremos de cepo para el
virus.
Luego nos vamos a una maquina unix y ejecutamos el tcpdump de la siguiente forma:
tcpdump -e -s 4000 dst host maq_caracol \
and src host not server1 \
and src host not server2
DEBIAN TEMA 12: TELNET
Lo que vamos a conseguir es capturar todo el táafico que vaya dirigido a la máquina aula10profe y que
no provenga de ninguno de estos servidores: server1 y server2. Ahora solo falta esperar a que el virus
intente acceder a la carpeta compartida (la disquetera) y, de esta forma, sabremos en que ordenador de
nuestra red está el virus.
DEBIAN TEMA 12: TELNET
7 Bibliografía




http://es.wikipedia.org/wiki/File_Transfer_Protocol
Características técnicas del protocolo actual. Documento RFC959: http://tools.ietf.org/html/rfc959
Sitio web oficial, en inglés, del servidor FTP instalado y configurado en esta guía: http://proftpd.org/
Sitio web oficial, en inglés, de Linux Security: http://www.linuxsecurity.com/
Página 11 de 11
BIBLIOGRAFÍAS
Descargar