Professional Documents
Culture Documents
por Seldon
******************************
Manual de referencia de
FTP, Telnet, correo y news
******************************
1. PREFACIO
2. PEQUEÑA INTRODUCCIÓN A LOS PUERTOS
3. FTP
2.a Teoría
2.b Comandos
2.c Práctica
4. TELNET
3.a Teoría
3.b Práctica
5. ENVÍO DE CORREO ELECTRÓNICO (SMTP)
4.a Práctica
4.b Remailers anónimos<
6. OTRAS CUESTIONES DE INTERÉS
6.a. Otros puertos interesantes
*****************************************************************
1.- PREFACIO
Esto es una pequeña guía para ayudar a los más nuevos (newbies) a poder seguir
sin muchas dificultades las siguientes lecciones del FOR YOUR EYES ONLY. No es
en ningún caso un manual de hacking, los servicios a los que accederemos aquí
son accesibles para todo el mundo, no sólo para hackers ;-)
Si después de leer esto tienes dudas, vuélvetelo a leer. Si sigues teniendo
dudas, pregúntalas al grupo, no a mi dirección de e-mail. Todos ganaremos si las
dudas son respondidas en el grupo, además de servir para corregir o añadir algo
al texto.
*****************************************************************
Para que sea accesible, el puerto debe estar 'abierto'. Además, debe tener un
programa detrás de él, porque si no, aunque nos conectemos, no podremos hacer
nada con él. Para saber qué puertos están abiertos debemos usar un scaner.
Puedes encontrar algunos muy buenos en http://hello.to/nbk/ y
http://www.geocities.com/crino1p/ ;-))))
Hay miles de listas muy completas con todos los puertos. Ahí abajo incluyo una
Página 1
sábado, 12 de octubre de 2002
para mayor comodidad, con los puertos más comunes y/o más importantes.
En la lista se asume que cada puerto está relacionado con su número asociado
(ftp con el 21, smtp con el 25, etc...), pero nada impide que podamos
intercambiar estos números (poner el ftp en el 1234, p.e.). También recordar que
a la hora de conectar con un puerto da igual poner su número que su nombre
('telnet www.servidor.com 21' es equivalente a 'telnet www.servidor.com ftp')
Y aquí está la lista:
Puerto Servicio Utilidad
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
7 echo Lo que teclees se volvera a escribir
9 discard dev/null - basura
11 systat Informacion sobre los usuarios
13 Hora y fecha en el host remoto
15 netstat Informacion sobre la red
21 ftp Transferencia de ficheros
23 telnet Acceso al shell
25 smtp Correo saliente
37 time Hora en el host remoto
39 rlp Localizacion del recurso
43 whois Informacion sobre la red y el host
53 domain Nombre del servidor
70 gopher Buscador de informacion (ya anticuado)
79 finger Informacion sobre los usuarios
80 www Servidor de Web
110 pop3 Correo entrante
119 nntp Grupos de noticias (news)
139 nbsession Netbios session
443 shttp Servidor de Web 'seguro'
512 biff Notificacion de correo
513 rlogin Login remoto
514 shell Comando remoto
515 spooler
520 route Protocolo de informacion routing
8000 http Otro servidor de web.
8080 proxy
*****************************************************************
3.- FTP
3.a Teoría
El FTP no está diseñado para ejecutar programas, para eso está telnet (ver más
Página 2
sábado, 12 de octubre de 2002
abajo), pero sí se pueden ejecutar algunos, los que sirven para poder decirle a
la máquina que queremos subir o bajar algún archivo o para navegar entre los
directorios.
Hay varios modos de transferencia de ficheros: ASCII y binarios. Los ficheros
ASCII son los archivos de texto, y los binarios todos los demás (programas,
imágenes...). Si transferimos un fichero de texto como binario, seguramente se
perderá el formato del archivo (aparecerán símbolos extraños o saltos de línea
donde no deberían haberlos), pero no será excesivamente grave.
Sin embargo, si transferimos un binario como texto, es casi seguro que quede
inutilizable. Por eso es importante asegurarse de cambiar el modo antes de
bajarse un programa, una imagen o un archivo de sonido. Luego, a menos que
queramos bajarnos otro archivo, debemos cambiar nuevamente al modo ASCII para
poder recibir correctamente la lista de archivos de un directorio (al hacer ls).
Normalmente no deberemos preocuparnos por esto si utilizamos un programa de ftp,
aunque sea en modo texto. Pero si nos conectamos mediante un programa de telnet
sí lo tendremos que tener en cuenta.
3.b Comandos
Nota: Estos son los comandos más importantes del ftp texto para Linux. Los del
ftp texto para ms-dos son iguales en su mayor parte, así que no creo que haya
ningún problema en encontrar los comandos equivalentes. Para información sobre
los comandos que no he incluído aquí, escribir el comando 'man ftp'
ascii = cambia a modo ASCII (por defecto)
binary = cambia a modo binario
bye = quit = exit = ¡adiós!
cd = Cambio Directorio (¡ojo! no sirve poner 'cd..' como en DOS, hay que poner
'cd ..' (con espacio)
cdup = igual a 'cd ..'
close = disconnect = corta la conexión sin salir del programa
delete = borra un archivo en la máquina remota
dir = muestra la lista de archivos del directorio actual. No admite parámetros.
get [archivo.arc] = descargarse el archivo.arc. ¡Ojo! Fíjate de que estás en el
modo adecuado antes de descargarlo.
lcd = sin nada más, muestra el directorio local actual. Con un directorio,
cambia el directorio local a ese directorio (en el directorio local se guardarán
los archivos descargados, y de él se cojerán los que se suban)
ls = muestra los archivos del directorio actual. Los parámetros son los mismos
que los del ls del s.o.
mkdir = crea un directorio en la máquina remota.
open = abre una conexión. Sólo es necesario si no ha sido especificado
un sitio en la llamada al programa (como por ejemplo, ftp ftp.rediris.es)
proxy = Se conecta a otro sitio sin desconectar del primero.
put = sube un archivo
rename = renombra un archivo/directorio -- ¡Esto puede resultar muy interesante
a veces! ;-)
reget = seguir bajándose un archivo que ha sido cortado anteriormente.
rmdir = borra un directorio, siempre que esté vacío (aunque algunos parezca que
lo estén porque no vemos nada al hacer un ls, lo que pasa es que tienen archivos
para los que no tenemos permiso de lectura (si no sabes lo que es esto, lee un
manual básico de UNIX)).
mdelete, mdir, mget, mls = lo mismo que esos comandos sin m, pero para varios
archivos / directorios
3.c Práctica
Vamos a subir nuestra página wez al servidor, para ponerla en intesné. Nuestra
página principal se llama index.html, y contiene una imagen llamada imagen.jpg,
que la queremos poner en un directorio aparte (imágenes).
Pues primero nos conectamos a nuestro servidor. Esto se hace poniendo el
comando 'ftp (servidor)'. Debes sustituir (servidor) por el nombre de tu
Página 3
sábado, 12 de octubre de 2002
servidor, por ejemplo ftp.servidor.es. Por defecto se asume que el puerto es el
21, si fuera otro tedrías que indicárselo. Por ejemplo, si usa el puerto
4000,tendrías que poner 'ftp ftp.servidor.es 4000'.
Ahora nos saldrá un prompt que nos pedirá un login (username). Le ponemos
nuestro nombre de usuario. Si quisiéramos conectarnos anónimamente tendríamos
que poner 'anonymous' (esto es así para la mayoría de servidores.
Puede, no obstante, que te encuentres alguno que no sea así. En estos casos hay
que probar con 'guest' o similares). Como este no es el caso, introducimos
nuestro nombre de usuario, por ejemplo, seldon.
Luego nos pedirá una contraseña. Si hemos entrado como 'anonymous' tendremos
que poner una dirección de e-mail. Poniendo 'guest@' ya vale en la mayor parte
de los casos. También puedes poner tu verdadera dirección si quieres que te
acaben de mandar por correo los archivos que no te has podido bajar (el servidor
debe aceptar esta opción). Si hemos entrado como usuario no anónimo,
introduciremos nuestra contraseña.
¡Y ya estamos dentro!, ahora podemos ver nuestros directorios. Si ponemos 'cd
..' veremos que estamos en el directorio raíz. Esto no es así en realidad, para
la máquina no es el nuestro el directorio raíz, sólo lo es para un usuario
(nosotros).
Si ponemos 'ls' podremos ver los archivos que hayamos puesto anteriormente
nosotros ahí. También veremos varios subdirectorios. Uno de ellos es bin, otro
sbin. Si miramos dentro de estos subdirectorios veremos que, aparentemente,
están vacíos, pero no es así, lo que pasa es que están llenos de archivos para
los que no tenemos permisos de lectura (pero sí de ejecución). Si no sabes qué
quiere decir esto, te recomiendo que mires la sección de permisos de un manual
básico de UNIX.
Bueno, a lo que íbamos. Aquí está el resto del trabajo. No creo que necesite
más explicación que la que ya tiene entre los símbolos /* y */.
lcd /mipagina /*cambia el directorio local actual a /mipagina, que es donde se
supone que tenemos guardada la página. Los usuarios de windows tendrán que usar
la barra invertida '\'*/
put index.html /*sube el archivo index.html. Como los html son archivos de texto
no hace falta cambiar el modo. Si tuvieras problemas, cambia al modo binary*/
mkdir imagenes
ascii /*vuelve a cambiar al modo ascii (porque vamos a comprobar que todo está
bien, y necesitamos recibir la información en modo texto (ascii)) (esto no es
necesario si usamos un programa de ftp, sí lo es si no lo usamos)*/
4.- TELNET
4.a Teoría
Página 4
sábado, 12 de octubre de 2002
Primero creo que hay que distinguir entre un programa de telnet y el protocolo
telnet. Un programa cliente de telnet es un emulador de terminal (teclado +
monitor) con el que nos podremos conectar con nuestro ordenador a otro y
utilizarlo como si nuestro programa fuera un terminal de la máquina lejana. Es
decir, es el que nos permitirá conectar a cualquiera de los puertos abiertos de
un sistema para aprovecharnos de sus servicios. Prácticamente todos los s.o.
traen uno. Tanto en Linux como en win se llaman igual: telnet.
También hay otros programas que hacen eso. Uno de los más conocidos es el CRT
(para win), que podréis encontrar en shareware.com, entre otros muchos lugares.
Y el protocolo telnet es un protocolo orientado a ejecutar programas en una
máquina remota. Nosotros le enviamos la información al programa de la máquina
lejana mediante el teclado, el programa la procesa en la máquina lejana, y
recibimos el resultado en nuestra pantalla. Es decir, este protocolo está
orientado a la ejecución de programas en la máquina lejana.
¿Y cómo más podemos utilizarlo? Pues nos puede servir para encontrar y
utilizar un proxy con el que anonimizarnos más.
4.b Práctica
Si queréis ver una muestra de cómo se pueden ejecutar programas en una máquina
lejana, podéis probar con éstos:
Para conectar con ellos en Linux debéis escribir 'telnet servidor' si se usa
el puerto 23 (los que no he puesto nada) o 'telnet servidor puerto' si se usa
otro puerto diferente. P.e.: 'telnet babel.uab.es' ó 'telnet babel.uab.es 23'
Hay algunos wingates que no guardan logs (archivos en los que quedan
reflejadas todas las conexiones). Éstos son los que deberemos conseguir
encontrar. El problema es que no hay forma de saber si un sitio guarda o no
logs. Por eso es conveniente conectarse a dos o más consecutivamente. Con esto
aumentan las posibilidades de encontrarse uno que no guarde logs, aunque la
velocidad disminuye.
*****************************************************************
5.- SMPT (envío de e-mails)
Página 5
sábado, 12 de octubre de 2002
5.a Práctica
Creo que lo mejor para ver cómo funciona el envío de e-mails es enviandolos 'a
mano'.
Hay algunos servidores que requieren que el servidor que hay detrás de la @
exista. En ese caso basta con poner un servidor que exista (no necesariamente
nuestro ;-) )
Para designar el receptor:
data
Si no ponemos nada, la primera línea será el subject, luego tendremos que
dejar una línea en blanco, y el resto el cuerpo del mensaje. Finalizaremos con
un puntito sólo en una línea.
Pero también podemos poner nuestras propias cabeceras. Como las únicas
obligatorias son el from, el to, y el Received (que lo pone el servidor y no
podemos modificar), las demás nos las podemos inventar, o copiar de las que
ponen los programas de correo. Esto incluye, entre otras, la fecha. Seguramente
el servidor la incluirá por otro lado, pero puede ayudar a sembrar la confusión
;-). La última que debemos poner debe ser el subject: , y a partir de esa ya
vendrá el mensaje.
Son los servidores de correo saliente que no incluyen la IP del que la envía.
Podemos saber si un servidor es o no un remailer anónimo con el comando helo.
Ponemos:
helo cualquiercosa
Si nos contesta con:
Página 6
sábado, 12 de octubre de 2002
Ninguno de estos dos sistemas es completamente anónimo, ya que si hacemos
alguna 'guarrerida' y a los MIG les da por investigar, como nuestra entrada en
estos servidores ha quedado registrada, no tendrán mucha dificultad para seguir
el rastro.
********************************************************
-Netstat
-Systat
Uso: telnet (servidor) systat
Nos da información sobre los procesos que se están ejecutando en la máquina
remota. Con esta información podemos, entre otras cosas, buscar exploits para
estos programas
-Finger
Uso: telnet (servidor) (usuario)
Página 7
sábado, 12 de octubre de 2002
login de usuario
nombre completo del usuario
directorio personal
shell que utiliza
última conexión (o si está conectado o si nunca se ha conectado) y desde dónde
si tiene correo por leer
Página 8