14 FTP, telnet y envío de correo electrónico
|-------------------------------------------------------------------------------------------------------------|
| FTP, TELNET Y ENVÍO DE CORREO ELECTRÓNICO |
|-------------------------------------------------------------------------------------------------------------|
| 23-02-2003 | | reddevil |
|-------------------------------------------------------------------------------------------------------------|
| _____ ___ _ _ _____ _ |
| | ___|_ _| | | | | ____|___(_)_ __ ___ |
| | |_ | || |_| | | _| |_ / | '_ \ / _ \ |
| | _| | || _ | | |___ / /| | | | | __/ |
| |_| |___|_| |_| |_____/___|_|_| |_|\___| |
| reddevil_FIH@ymmas.net |
| |
|-------------------------------------------------------------------------------------------------------------|
0.- Indice
- 0.- Indice.
- 1.- Introducción.
- 2.- FTP
- ¿Qué es, y para qué sirve?.
- ¿Cómo se utiliza?
- 3.- Telnet.
- ¿Qué es, y para qué sirve?.
- ¿Cómo se utiliza?
- 4.- Envío de mails.
- ¿Cómo se mandan correos electrónicos, sin usar el clásico cliente de correo
- ¿Mails anónimos?
- 5.- Otros datos interesantes.
- 6.- Conclusión y despedida.
1.- Introducción
Bueno amigos, aquí estoy otra vez más dando el tostón, antes de empezar a leer, no creais que este texto es una guía de como hackear cuentas de correo ni nada por el estilo, simplemente os quiero explicar, a los que no lo sepais, como y para que sirven estos 2 servicios que todos tenemos disponibles, como son el FTP (File Transfer Protocol) o Protocolo de transferencia, que ahora os explico lo que significa, aunque se que es un poco aburrido, es mejor saber algo de él, al igual que del Telnet, que también os explicaré a continuación qué es.
Espero, que después de haberte leído esto, no tengas dudas, pero bueno, si aún así las tienes, no dudes en acceder al foro de la eZine, y exponla a todos, para que así se te pueda ayudar.
Espero que este texto os sea de gran utilidad, como los que he creado y.. seguiré creando.
2.- FTP
2.1.- ¿Qué es, y para qué se utiliza?
FTP, como ya dije en la introducción, significa File Transfer Protocol o protocolo de transferencia de archivos, en castellano. Bueno, tras la definición de las siglas, me imagino que ya sepais más o menos para que sirve, pero aún así, por su alguien no se ha enterado, lo digo, este protocolo, sirve, como bien dice su nombre, para transferir ficheros, o bien de nuestra máquina a una remota, a lo cual se le llama, upload o subir archivos, o de la máquina remota hacia la nuestra, lo que se suele llamar, Download o descarga de archivos, que es lo que más utilizamos, para bajar nuestras pelis, música y demás, ¿Os queda claro?. También permite seguir bajandose un archivo después de un corte de conexión (por haberse cortado o por ser un archivo muy grande que queremos bajar en varias sesiones)
Un programa de FTP servidor suele abrir el puerto 21 en la máquina en la que está instalado, para que se puedan conectar por él otras máquinas. Un programa de FTP cliente es el que se utiliza para conectarnos al servidor. Los hay gráficos, como el CuteFTP para Windows o el IglooFTP para Linux, y en modo texto, que están incluídos en ambos sistemas operativos (para arrancarlos, basta con escribir el comando ftp en una ventana de MS-DOS o de la consola texto, en Windows y Linux respectivamente). En este texto nos centraremos en los programas clientes de texto.
El FTP no está diseñado para ejecutar programas, para eso está telnet, que más abajo explicaré como usarlo, 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ía de 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.
2.2.- ¿Cómo se utiliza?
Los comandos que aquí os pongo son los más importantes de 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.reddevil.homelinux.org)
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.
Ahora después de poner un definición de todos los comandos.. vamos a ver una parte práctica, vamos a subir nuestra página wez al servidor, para ponerla en la red. 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 bien, primero nos conectamos a nuestro servidor. Esto se hace poniendo el comando 'ftp (servidor)'. Debes sustituir (servidor) por el nombre de tu 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, pepito.
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.
Estos subdirectorios no se pueden borrar, porque contienen archivos de los que no somos los propietarios, pero sí renombrar ;-)
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
cd imagenes /*crea el subdirectorio imagenes y se cambia a él (todo en la máquina remota*/
binary /*cambia a modo binario (vamos a subir la imagen) (esto no es necesario si usamos un programa de ftp, sí lo es si no lo usamos)*/
put imagen.jpg
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)*/
ls /*comprueba que la imagen está en su sitio*/
quit /*salimos*/
3.- Telnet
3.1 ¿Qué es, y para qué sirve?
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, por ejemplo..
3.1.- ¿Cómo se utiliza?
Si queréis ver una muestra de cómo se pueden ejecutar programas en una máquina lejana, podéis probar con éstos:
eucmvx.sim.ucm.es (login: biblioteca) <-- Catálogo de la universidad complutense de Madrid
babel.uab.es <-- Catálogo de la universidad autónoma de Barcelona
chess.unix-ag.uni-kl.de (puerto: 5000) <-- Jugar al ajedrez contra otros usuarios
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 reddevil.homelinux.org' ó 'telnet reddevil.homelinux.org 23'
En windows, iniciad vuestro programa de telnet preferido, y en el menú de conexión escribid el nombre y el puerto (dejad telnet si es el 23). Dejad el tipo de terminal en vt-100. Si no veis lo que escribís, habilitad el eco (estará en el cuadro de opciones o similar).
Para utilizar un proxy wingate para anonimizarnos, primero tendremos que conseguir una lista de posibles proxys conectables. Para ello, vamos al IRC y escribimos '/raw stats glines'. Esto nos dará una lista de gente que ha sido baneada. Nos quedaremos con los que en el motivo de ban ponga algo de 'proxy abierto' o similar. Nos vamos al programa de telnet y probamos con uno. Si no nos deja conectar, o no dice nada al conectar, pasamos al siguiente. Si nos contesta con el prompt 'wingate>', ¡felicidades! has encontrado un wingate. Con él podrás conectarte a otro sitio sin dejar tu verdadera IP (quedará guardada en el sitio de la conexión la IP del wingate, y la tuya quedará reflejada en el wingate).
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.
Una vez conectado a un wingate, para conectarnos a otro o a cualquier otra parte tendremos que poner 'open servidor puerto'.
Y esto es todo, comandos no creo que haga falta poner ya que si por ejemplo estás usando telnet a una máquina win, los comandos que utilizarás serán como si en una ventana msdos se tratase.. cd, dir, copy... y si es a una máquina linux pues igualmente... ls, cd..
4.- Envío de mails
4.1.- ¿Cómo se mandan correos electrónicos, sin usar el clásico cliente de correo gráfico
Creo que lo mejor para ver cómo funciona el envío de e-mails es enviandolos "a mano".
Para esto abriremos nuestro programa de telnet, y conectaremos con nuestro servidor de smtp, que estará en el puerto 25. P.e.: telnet mailhost.terra.es 25
Después de los mensajes de bienvenida, si queremos enviar un mail, escribimos:
mail from: Nadie <nadie@ningunsitio.com>
o bien:
mail from: nadie@ningunsitio.com
La diferencia es que en el primer caso saldrá en el programa de correo empleado para leer nuestro mail que ha sido enviado por Nadie, mientras que en el segundo caso habrá sido enviado por nadie@ningunsitio.com.
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:
rcpt to: Amigo <amigo@nuestro.es> (rcpt significa recipient)
Ahora viene el cuerpo del mensaje. Le decimos al servidor que queremos introducirlo escribiendo: "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. Esto es todo así de facil es enviar un correo electrónico vía telnet.
4.2.- ¿Mails anónimos?
También llamados remailer anónimos. 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:
Helo (nuestronombreenlared) [(nuestraip)] please to meet you.
Ya nos podemos olvidar, porque no es un remailer anónimo. Si en la contestación no se incluye nuestra IP, seguramente sí lo será. Podemos comprobarlo enviando un mensaje y comprobando si la incluye.
El comando helo es conveniente utilizarlo al conectar a un servidor smtp. No es necesario, pero si no lo usamos en las cabeceras del mensaje se incluirá un warning (advertencia) de que somos unos maleducados que no saludamos :-D.
También se llama remailer anónimo a cierto servicio en la red, al que nosotros dirigimos nuestros mensajes, y ellos eliminan el campo From y lo redirigen al receptor original.
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.
5.- Otros datos de interés
Bueno en esta parte, solo quiero explicar a grandes rasgos, qué es y para que sirve un puerto.
Un puerto lógico es en parte similar a un puerto físico (eso que hay detrás de la caja del ordenador, donde conectamos la impresora, el ratón, el módem...). Detrás de cada puerto hay un programa, que da un servicio a todo aquel que se conecte a él y tenga permiso para acceder al servicio.
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.
Hay miles de listas muy completas con todos los puertos. Abajo incluyo una 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
6.- Conclusión y despedida
Bueno amigos, esto es todo en este texto, como siempre, deciros que espero que os haya servido para algo de utilidad y sobre todo espero que algo aprendieseis con él, ya que esa es mi única proposición con escribir los textos para vosotros..
Y bueno, esto ha sido todo. Espero no haberos aburrido mucho.
--------------
REDDEVIL |
---------------------------------
reddevil_fih@ymmas.net |
Clave pública en: www.ymmas.net |--- No es más sabio quien tiene conocimientos sino quien sabe demostrarlos ---
Evita mandar spam |
---------------------------------