Después del último post sobre comprometer Whatsapp describiendo a manera de recopilación algunas de las formas más comunes para intentar espiar dicha aplicación de mensajería, hubo diversas reacciones posteriores a él, que desembocaron, por supuesto, en preguntas más específicas sobre cómo ejecutar alguna de las técnicas. Sin embargo, el cuestionamiento más importante para mí fue la de algunos allegados que me inquirieron sarcásticamente “Si, si… pero, ¿cómo hackeamos Facebook? ¿O no sabes?...”.
Como una estaca clavada en mi ventrículo izquierdo y habiendo ya abierto la zanja para aterrizar métodos que en verdad puedan ser efectivos a la hora de querer atacar algún perfil de tan utilizada red social, decidí hacer este “inventario”. Nuevamente, no deseo promover alguna clase de intrusión y mi finalidad es que puedan conocer estos ataques para proteger sus cuentas, empero, he de decirles que mi publicación meramente académica los invita de entrada a no descargar ninguna aplicación mágica para intentar “hackear” Facebook o acceder a algún servicio en línea para lograrlo. Eso no existe todavía y todos, me atrevo a decir, son solo fake.
Ahora bien, si se fijaron bien en mi título, no estoy diciendo que les voy a presentar cómo hackear Facebook, sino los “perfiles de Facebook”, que es algo diametralmente diferente, (cosa que a los amables lectores en general no les interesará en lo más mínimo, pues a final de cuentas el resultado es obtener la cuenta de la persona que desean).
Para atacar a Facebook como tal, deberemos encontrar alguna vulnerabilidad en sus sistemas, luego aspirar a explotarla con algún “exploit” y pretender consumar un ataque dirigido con cierta persistencia, intentando no dejar cola que nos pisen. Como esas ya son ligas mayores y es muy posible que ni siquiera puedan encontrar a alguien capaz de hacerlo, la manera más sencilla de apoderarnos de algún perfil es simplemente: Social Engineering + Hacking tools/techniques.
Habiendo concluido la introducción, empecemos a enumerar.
Phishing
El phishing es un vector de ataque extremadamente popular en el que muchos usuarios han caído y en el que, posiblemente, varios lectores sin darse cuenta han sido víctimas puntuales. El phishing es utilizado para robar informaciones sensitivas de los usuarios, tales como passwords, números de tarjeta de crédito, a veces incluso dinero, por medio de enmascarar una entidad que se nos presenta como confiable, de manera electrónica, evidentemente.
El ejemplo clásico de phishing es un sitio web que parece, por ejemplo, la web de un banco donde tenemos una cuenta electrónica, y al ingresar nuestros datos resulta que no lo era, pero ¿qué creen? Nuestra información ya ha sido robada.
Llevándolo a nuestro objetivo de hackear Facebook, un caso de phishing adecuado en el que si descargaron, por ejemplo, alguna de las aplicaciones mágicas que les mencioné para querer hackear Facebook, seguro que varias de esas apps, en algún momento, les pidieron que ingresaran a su cuenta (por medio de esa app) para conocer su lista de contactos y lograra conocer su “target”. Craso error, le acaban de dar su usuario y password a vayan ustedes a saber quién y ahora posee sus credenciales.
Muy probablemente, al tipo que tiene su cuenta ustedes le importen muy poco y viceversa, sin embargo lo que se hace con ello es generar una enorme base de datos con usuarios y passwords para venderlos en el mercado negro de Internet, a alguien que si le importe su perfil de Facebook por cierto, y se vuelvan parte de algo menos agradable como una red botnet, o bien funcionen como servidores de malware o, cómo no, sean servidores (sin que ustedes lo sepan) de pornografía o spam.
Dos tipos de phishing
Hay varias formas de clasificar este tipo de ataques pescadores. Sin embargo, para efectos del texto podemos mencionar:
- Web Phishing.- El clásico de copiar una página web, normalmente una página que involucre meter un login y un password. Una forma muy evidente en que la victima pueda darse cuenta de la falsedad del sitio copiado es que posee un dominio muy parecido, pero sin lugar a dudas diferente. Por ejemplo podrían copiar la URL www.facebook.com, pero en su ataque de phishing se puede llamar www.faceb00k.com. Si la víctima es capaz de detectar el cambio, entonces el phishing seguramente habrá fallado.
- Desktop Phishing.- Un atacante envía un malware a una víctima, pero cuando el usuario se firma al sitio real de Facebook, este malware actúa en modo stealth, ya sea para robar directamente las credenciales mediante un detector de pulsaciones del teclado, o modificando el archivo host que permite redireccionar a la víctima a un sitio Web modificado, cuando esta trate de ingresar a Facebook real, sin que lo pueda llegar a notar.
En fin, si quisieran hacer phishing sobre una persona para robarle el perfil, con fines educativos, la mecánica es simple; hagan una página idéntica a Facebook con una capacidad de “storage” para almacenamiento de datos (en este caso para guardar el usuario y password de la víctima), que no parezca sospechosa y provoquen que la persona de la que desean su cuenta, se firme en ella. Si la convencieron de la manera que sea, ya tienen sus credenciales en la mano. Pueden usar este ejemplo:
- Descarguen Notepad, que es un simple editor de texto o usen bloc de notas.
- Aunque no sepan nada de PHP, peguen el siguiente código en el editor y guárdenlo con cualquier nombre, pero con extensión php. Ejemplo: phishing.php
:<?php
header("Location: https://www.facebook.com/login.php");
$handle = fopen("passwords.txt", "a");
foreach($_GET as $variable => $value) {fwrite($handle, $variable);fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");}
fwrite($handle, "\r\n");
fclose($handle);
exit;
?>
Lo que hará ese código es simplemente efectuar un gathering de todos los inputs que detecte y guardarlos en un archivo llamado passwords.txt. En este caso los inputs serán las credenciales de Facebook.
- Vayan a la página de Facebook, hagan clic derecho, luego pulsen “Ver código fuente” cópienlo, péguenlo en otro archivo y guárdenlo como index.html.
- En el código fuente de su index, busquen action= y reemplacen lo que está entre las comillas con su archivo PHP previamente guardado, en este caso phishing.php. Después busquen la palabra method y reemplacen post por la palabra get.
- Creen un archivo en blanco llamado passwords.txt en el bloc de notas.
- Pruébenlo ustedes mismos, pongan todos los archivos en una misma locación, abran index.html en un navegador e intenten poner sus credenciales. Las guardará en su archivo passwords.txt.
- Mándenselo a una víctima, o déjenlo abierto en su máquina, simplemente esperando que su persona deseada haga login, súbanlo a un sitio de hosting y envíen una dirección falsa, o usen su imaginación para hacer que alguien caiga en su “pecera”.
Tal vez parezca un poco complicado hacer esto. Sin embargo, hay algunas herramientas que pueden ayudar a simplificarlo todo. Social Engineering Toolkit es una herramienta escrita en Python para realizar ataques de ingeniería social y posee un arsenal variado. Entre las características de esta tool, podemos encontrar una que nos permite obtener una copia idéntica del sitio web que elijamos, realizar campañas de engaño por medios electrónicos, para que los individuos caigan en el sitio falso (spearphishing) y así logremos confeccionar un ataque full effect.
Tip de seguridad
Jamás ingresen sus credenciales en sitios que no se vean confiables. Si alguna página les pregunta siempre por un password, chequen y estén seguros de que el sitio sea oficial y proteja sus datos.
SideJacking
Sidejacking es básicamente un tipo de sesión hijacking sobre HTTP, pero está mucho más enfocado a usuarios que utilicen redes WiFi. O sea, todos.
Aunque no es una técnica muy nueva (ni el phishing lo era) aún es altamente efectiva en determinadas circunstancias. Sidejacking involucra básicamente:
- Capturar paquetes que contengan cookies de sesión. Hay diversos “sniffers” disponibles en Internet que permiten capturar session cookies. La meca de estos populares analizadores de protocolos es Wireshark, pero uno muy específico para las cookies es Ferret.
- Usar la cookie capturada. Una vez que capturamos la cookie, lo siguiente es utilizar esa información para tener acceso a la cuenta de la víctima. Lo que necesitamos es un parser que sea capaz de editar y leer cookies para robar la sesión e inyectarlas en un browser. En navegadores como Firefox, y herramientas como Hamster, es posible hacer estas operaciones.
Para ver el ataque en acción nos posicionamos en la misma red de nuestra víctima y, de forma genérica, hacemos la siguiente demo:
- Tengan Hamster y Ferret instalados en su terminal y listos para ser usados
- Corran Hamster y abran su navegador poniendo en la barra de direcciones http://127.0.0.1:123
- Seleccionen el adaptador de red que desean utilizar y ejecuten el query.
- En ese momento comenzará Ferret en segundo plano, a capturar cualquier cookie que pase sobre el adaptador de red que seleccionaron.
- Podrán visualizar entonces a sus objetivos en formas de direcciones IP y clickear sobre sus sesiones directamente.
Es importante resaltar nuevamente que esta técnica no obtiene usuarios o contraseñas. Lo que se obtiene es acceso instantáneo y completo a la cuenta, al menos hasta que la cookie de sesión expire. Pero entrar en la cuenta es lo que realmente queríamos ¿o no?.
Tip de seguridad
Utilicen una VPN, o fuercen a su navegador a utilizar TLS en caso de que sus cookies de sesión no estén cifradas. También, siempre traten de hacer log out de su sesión en Facebook, para tirar cualquier conexión activa que no sea la de ustedes.
DNS Hijacking
En el desktop phishing mencioné indirectamente una técnica que merece ser mencionada bajo su propio punto. El hijacking nos permite hacer redireccionamientos maliciosos mediante diversas variaciones de ataques, entre ellos al DNS.
Simplificando muchísimo la terminología, cuando teclean www.facebook.com en realidad se efectúa una conversión a una dirección IP que tiene la forma de X.Y.W.Z, donde cada una de las letras representa un número del 0 al 255, que son los rangos manejados en IPV4. Esta traducción de un nombre a una IP es efectuada por un DNS, que se encarga de mantener, entre otras cosas, un archivo llamado HOST para direccionar al usuario a un sitio en particular, y mapear domain names con direcciones IP. Este archivo se localiza en Windows bajo la carpeta de System32 y en sistemas UNIX bajo etc/hosts. Lo que significa que si editas ese archivo, puedes hacer que cuando un usuario teclee en su navegador www.facebook.com se redireccione a un sitio malicioso, preparado para robar sus credenciales, teniendo como resultado un ataque dirigido listo para ser explotado. O bien si logramos editar los DNS settings del usuario, para que pida la resolución de nombre a un DNS malicioso, significaría que seremos capaces de enviar al usuario a cualquier sitio que nos apetezca, incluyendo uno falso o dañino.
Por ejemplo, esta suplantación del archivo host se puede realizar mediante un fichero preprogramado escondido en una imagen, tal vez, y nuestro sitio de phishing estaría listo en línea, albergado en una web de hosting (como lo describimos en el punto 1). El usuario común, no notará que está siendo engañado, pues la dirección de Facebook en su navegador no cambia a pesar de ser un sitio ilegitimo. Voilá
Tip de seguridad
En muchos de los casos, los atacantes utilizan troyanos para cambiar las configuraciones del DNS, por lo que una solución antimalware y un host IPS siempre serán de gran utilidad para estos vectores y para múltiples amenazas.
Si quieren saber más información sobre cómo realizar este tipo de ataques, pueden consultar este enlace
Extra: RAT en dispositivos móviles
En mi post sobre Whatsapp, les comenté sobre la viabilidad de posicionar troyanos remotos en dispositivos móviles para espiar al usuario. Realmente, si una persona está infectada con ese malware es susceptible no solo de ser espiada por SMS, Whatsapp o mail. Sus redes sociales Facebook, Twitter, Instagram, etc. también estarán completamente a merced del atacante y una vez dentro del teléfono, es trivial acceder a los perfiles del usuario en cuestión.
mSpy o AndroRAT son ejemplos de RAT’s que pueden utilizar para lograr su objetivo, y para posicionarlos dentro de su víctima hay numerosas formas de realizarlo. Usen la imaginación y más aún la ingeniería social.
Concluyendo este post…espero les haya servido de sapiencia académica el contenido referido y sobretodo les haya mostrado, que es muy difícil la existencia de un software que te traiga instantáneamente una cuenta de Facebook, con su contraseña. Si fuera así, realmente los ingenieros Mark Zuckerberg serían monkey coders, o algo parecido. Obtener una cuenta de Facebook es tan trivial dependiendo de la práctica y experiencia que ya tengan, así como, debo decirlo, la mansedumbre de su víctima. Las personas no están obligadas a entender profundamente este tipo de ofensivas cibernéticas, pero si a saber defenderse y un profesional de la Seguridad debe concientizarlos y entrenarlos a cierto nivel, para que no se vuelvan chivos expiatorios de ningún atacante.
No usen su conocimiento para el sombrero negro. Un gran poder es una gran… es un gran vicio.