7 de febrero de 2010

Suplantación de la identidad, robo de contraseñas

Hoy vamos a ver un ataque de suplantación de la identidad. Es decir, hacernos pasar por otro para poder conseguir algo.

En este ejemplo me haré pasar por www.tuenti.com para que un usuario al iniciar sesión me envíe a mi el email y la contraseña.


Las cosas que se vean aquí son de simple información, cualquier mal uso de ellas es bajo vuestra responsabilidad.


Supongamos un ejemplo:


Persona 1: envía un link de tuenti a otra persona para decirle algo sobre una determinada foto.

Persona 2: al darle en el link, le pide autentificarse, se autentifica y es llevado a la foto en cuestión.

Persona 1: tiene el email y la contraseña de persona 2.


¿Cómo es posible?


En primer lugar para poder recibir los datos, necesitamos tener un servidor.


¿Un servidor?, buf paso...


No, no, no hace falta un servidor de eses especiales de internet.

Simplemente un programa que al recibir una petición, le envíe la petición pedida.

Un simple programita en java o C o del lenguaje que queramos, sin matarnos mucho es suficiente, conque sepa atender una simple petición GET (lo que hace que envíe un archivo, en este caso un .html) y que en nuestra terminal nos muestre la petición.


(Click para ampliar)

¿Y que hacemos con eso?


Pues muy fácil, con ese tenemos montado un miniservidor, ahora cuando alguien ponga nuestra dirección de servidor (es la IP, pero ya mostraré luego maneras de ocultarla)

Le enviaremos una pagina web por ejemplo. ¿Y que página exactamente?


(Click para ampliar)

No, no es la página del tuenti, es la página modificada del tuenti, el mismo aspecto, exactamente igual, salvo en el envío de la petición, y algún cambio más en el código fuente.


Que lo podréis descargar aquí. Viene comentado, el html del tuenti también.


Lo que hice básicamente fue que al enviar el formulario a tuenti por método post, en vez de mandarle eso así a tuenti, hice que me lo mandará a mi por método GET (Se puede hacer por post también, pero entonces tendríamos que tener el servido nuestro para que las atendiera y es un poco difícil, así que ponemos petición GET que el resultado va a ser el mismo, y la víctima no se enterará de esa petición)

Luego además, le puse que cuando diera a intro o clicara sobre Entrar, le puse un hipervínculo a una foto.

La diferencia entre la petición GET y POST, es que en la GET los datos van en la dirección URL y en el post van “ocultos”.

Entonces al recibir nuestra petición GET en nuestro servidor, veremos pone:


GET /?email=email+de+la+victima%40lala.com&input_password=12345&timezone=1 HTTP/1.1

--Host: 192.168.0.31:5000

--User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); es-ES; rv:1.9.2) Gecko/20100115 Firefox/3.6

--Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

--Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3

--Accept-Encoding: gzip,deflate

--Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

--Keep-Alive: 115

--Connection: keep-alive

--Referer: http://192.168.0.32:5000/www.tuentifotos.com/m=Home/func=do_login/index.html


no que ser un científico graduado en Harvard para saber que:


email=email+de+la+victima%40lala.com:

es el email en cuestión que sería: 'email de la victima@lala.com'

y input_password=12345:

que es la contraseña que sería '12345'

Éstos son los dos campos que nos interesan.

Con lo cual ya los tenemos.

Y la víctima será enviada a la página que teníamos hipervinculada

además así con las tonterías también podemos saber que su IP es la que está después de Host.

El tipo de navegador que usa entre otras, en este caso un Firefox 3.6


Además este servidor lo implementé con un control de logs, para que guarde en un fichero los accesos de la gente, donde podemos ver su IP, la fecha, y lo que pidió al servidor (osea las peticiones), las peticiones GET de email y contraseña se encuentran en el logsError.log ya que hace una petición de una pagina que no tienes y devuelve un 404 NOT FOUND aunque la víctima no llega a verlo.


Luego para poner menos cantoso el nombre, porque no mola decirle a una persona.

Mira está foto:

192.168.10.110:5000


Canta muchísimo.

Entonces tenemos varias maneras.

Hay paginas como Bit.ly y así que te acortan las direcciones.

Entonces le mandarías un link de Bit.ly y esta lo redireccionería a tu IP, o otras páginas como

no-ip.com que te pone un dominio y así no se ven los números de tu IP.

También podemos poner el index.html en una carpeta para que tampoco cante mucho.

Así podríamos poner algo en plan:


http://192.168.0.40:5000/www.tuentifotos.com/m=Home/func=do_login/index.html


es decir el index.html lo tengo en una carpeta llamada func=do_login que a su vez está en una llamada m=Home y esta ultima en www.tuentifotos.com


O ya siendo hackers guays

podremos hacer un Hipervínculo.

Que viene a ser un nombre que al clicarle te lleva a otro lado.

Entonces de nombre le podemos poner el que queramos y la página redireccionda pues la de antes.

Ejemplo de hipervínculo chachi:


www.bing.es


Ahora es solo pensar como podemos engañar a la gente, que por lo general, los usuarios de ordenadores normales que usan Internet Explorer que solo utilizan el ordenador para chatear etc etc, son fáciles de engañar.


Recordad que si hacéis esto a través de un router, tenéis que redireccionar el puerto a Vuestra IP, ya que vuestra IP externa es otra.


Así que:


CONSEJOS DE WAKY:


→ Lo primero es mirar que cuando vayas a iniciar sesión te fijes en la barra de direcciones:

ahí está la dirección real, si ves que tiene algo extraño desconfía.

→ Ojito con los hipervínculos de páginas que os manden, como ya visteis, no siempre os mandan a donde de verdad pone que os manda.

→ Hay muchos casos de suplantación de la identidad como estes, esto no fue más que uno así chapucerillo, pero efectivo, solo es para que os sirva de ejemplo.

0 comentarios:

Publicar un comentario en la entrada