martes, 29 de mayo de 2018

Dalas y su lío con el hacking

Voy a tratar de elaborar esta entrada de forma objetiva. Prometer ser larga, ya que tengo mucho que comentar. También dejaré al final una reflexión que yo tengo sobre esta persona en base a acontecimientos como este, el que hoy voy a comentar en este post. Hace casi 2 años ya comenté de forma muy breve los fallos que el señor Dalas Review cometió cuando habló sobre Hacking. Pues han pasado 2 años y parece que nada a cambiado. Ni un sólo vídeo rectificando y aclarando sus fallos ni nada, así que voy a tratar de comentar, ahora en detalle, sus fallos cuando ha hablado sobre hacking en su canal de Youtube.


Dalas hace poco subió un vídeo en el que previamente pidió la contraseña de sus redes sociales a sus fans, pero antes de eso, ya tenía-al menos 2- vídeos donde hablaba sobre hacking, más concretamente sobre cómo se puede hackear una cuenta de una red social como Instagram.

Los vídeos en sí, a primera vista, parecen interesantes, ya que este señor mueve mucha audiencia y eran buenas oportunidades para distribuir información relativamente buena sobre el tema, ya que es algo importante. Pero claro, Dalas tenía 2 opciones, informarse debiadamente, o tirar de tópicos y de 4 chorradas que se leyó en los primeros blogs en los que hablaban sobre el tema. Eso, pasa factura.

Os voy a ir dejando algunas de sus afirmaciones que realiza en estos 2 vídeos e iré comentando cuál es o son los errores que ha cometido.


Afirmación 1:“Os voy a dar los trucos para que nadie os pueda hackear nunca más”
La seguridad Informática a día de hoy es imposible al 100%, sobre todo cuando metemos al tiempo en la ecuación, ya que puede que estés seguro hoy al 100%, pero mañana, por no actualizar un software de tu sistema operativo, verte afectado. Por ejemplo. Pero bueno, a lo mejor tras varios años de investigación, él ha dado con una solución o, al menos, un modelo matemático que pueda servir.

Afirmación 2:"Cada vez salen más grupos de ‘hackers’ entre muchas comillas que en realidad no tienen ni puta idea de hackear nada y que son unos críos…"

Cuando habla de "hackers", utiliza la palabra en un contexto ambiguo, donde lo mismo significa crío que cree que sabe hackear -script kiddie es su nombre correcto- que un cibercriminal, pero en ningún momento utiliza la palabra con su significado real, el de investigador y pasionado por la informática que trata de mejorar la seguridad de la misma.


El IETF en el RFC1392 ya definió lo que es un hacker, y esta es una definición que yo suscribo, es más, cada vez que me refiero a la palabra "hacker", la utilizo en este contexto. Si alguien utiliza esta palabra de otra forma, estamos hablando de cosas distintas y no perderé mi tiempo en especificar que un hacker no es un cibercriminal.

Afirmación 3:"A veces esta gente sí que consigue hackear a gente, hackear entre comillas"

Con esto no sé a lo que se refiere, ya que si consigues tu objetivo, has hackeado, sea cual sea el camino seguido. Aquí no hay una sola solución, aquí importa el camino seguido, aunque es cierto que no es lo mismo currarte un ataque que buscar por Pastebin.

Afirmación 4: “El método más usado se llama EXPLOIT. Consiste en que te envían un enlace y lo que te salta es la página como la de inicio de gmail,twitter,facebook,etc...Así que tú confiado escribes tu correo creyendo que la envías a gmail,twitter, facebook cuando en realidad es la página creada por este ‘hacker’, entre comillas hacker”.

Aquí confunde por completo y se ve que no sabe muy bien que lo que ha explicado, se denomina Phishing y no exploit. Un exploit es un trozo de código que se usa para, por ejemplo, ponernos a la escucha como es el caso del multi handle. Pero al César lo que es del César, lo que es el Phishing lo ha explicado muy bien, sólo que ha confundido Exploit con Phishing. El fallo es garrafal, pero es lo que pasa cuando te lees las 4 chorradas que lees en el primer blog que pillas.

Pero lo que más me llama la atención, es que dice que este es el método más utilizado, pero en ningún momento aporta ninguna fuente que respalde lo que dice. Es cierto que el phishing se realiza mucho, ya que es uno de los caminos más fáciles para obtener una password, y posiblemente sea la forma más utilizada, pero no tenemos fuentes que respalden eso, o al menos Dalas no las ha mostrado.

Los que nos dedicamos a Seguridad lo sabemos nada más que por experiencia, pero tampoco he visto que en su vídeo haga una PoC de cómo se realiza un Phishing, algo que es relativamente sencillo de mostrar.


Yo para la prueba he usado un Apache Web Server en mi Linux Mint en el que he creado una web de login sencilla.


Si escribimos un usuario y una contraseña cualesquiera, se enviarán a una Base de Datos en MariaDB que me he montado.


En este caso, la seguridad a la hora del almacenamiento de datos confidenciales como puede ser la contraseña por parte de la web es una basura, ya que se está almacenando en texto claro.


Una capa extra sería almacenar esa contraseña con un hash. Para esto, se utilizan funciones sencillas, pero claro, utilizar MD5 no es seguro, ya que existen webs online que sacan el texto asociado a dicho hash en cuestión de segundos. Sobre esto ya hablé en este post, y la solución-que también la di en esta entrada- sería almacenar la password utilizando un hash con un salt para que así resulte mucho más difícil descifrar la contraseña.

Claro, que para el caso del Phishing, lo que vamos a hacer será una web con la apariencia de Twitter, Instagram, Facebook,etc. algo que con SET se hace en un momento. En este post donde mostraba cómo hacer un ARP  y DNS SPOOFING lo demostré. Enviabas el archivo con los hosts cambiados y ya está, la víctima solamente tenía que entrar a su red social favorita-en este caso lo hice con Twitter- y recibiríamos su contraseña.

Aunque si lo queremos hacer a mano, nos bastaría con dejar la web de tal forma que al pulsar en "Iniciar Sesión", la password se almacene en una Base de datos que controlemos nosotros y, por supuesto, sin hashear la contraseña para no pararnos mucho. Ya tendríamos la password.



Afirmación 5: “La forma de evitar esto es que no entréis en vuestras cuentas en páginas que no sean escribiendo la url arriba, es decir, gmail.com. No busquéis en Google y después hagáis clicks por si una de estas webs se ha conseguido posicionar bien y estáis regalando vuestra contraseña”.

Esta es una solución parcial, ya que tampoco te quita de problemas. Es cierto que te quita del problema de caer en ataques de Phishing que te puedan enviar por correo electrónico, pero si seguís este blog ya sabéis que le podemos buscar las cosquillas a esto. Algunas de las formas son:

-Ataque ARP y DNS SPOOFING
-Cambiar DNS del router de la víctima
      -HiitA
-Cambiar DNS del router de la víctima + certificado SSL

Afirmación 6:
“Cuando entréis, comprobad arriba que efectivamente es la página de Facebook, Instagram,etc entonces os podéis fiar, y si no pone https que indica que es segura y habéis accedido desde un enlace que os han pasado o algo parecido, jamás pongáis vuestra contraseña”.
Esta afirmación se niega por completo con la afirmación 5 y con la entrada Cambiar DNS del router de la víctima + certificado SSL. También recordar que la web sea HTTPs solamente es que los datos van cifrados en tránsito, es decir, desde el cliente hasta el servidor[sobre esto ya hablé en este blog]. Pero si consigo acceso a tu equipo por un software desactualizado y te instalo un keylogger{programa que detecta lo que escribes con el teclado} o utilizas un Windows y con el acceso a tu sistema utilizo unas sentencias básicas de Powershell que ni te tienes que saber, con tenerlas apuntadas basta para copiar y pegar; te podría robar la password aunque vaya en HTTPS.

Y de todas formas, este consejo si es en ordenador, puede pasar, pero ¿desde el móvil? ¿Quién ve la URL a la que te estás conectando? Nadie, y esto es culpa de las webviews, algo de lo que también he hablado en este blog.


Afirmación 7: “Esta no es la única forma, también usan unas webs que ‘prometen’ que te van a hackear el Instagram de la cuenta que escribas”
Vale, esto que dice es cierto. Esas webs que prometen que te van a sacar la contraseña del usuario que le pases son una estafa. Aquí estamos de acuerdo. No obstante, yo eché en falta que lo demostrase de alguna forma, ya que en teoría él se había informado debidamente{o eso dice}.
 Claro, que diga algo pero no lo demuestre, reduciendo algo al absurdo, no es que sea muy fiable{y esto él lo hace con varios temas, tomad nota}. O no demuestra lo que dice, o se queda a medias con una media verdad {caso de alguna afirmación anterior}. La demostración hubiese sido muy sencilla.
Con tan sólo analizar el código fuente de la web, se hubiese dado cuenta que, escriba lo que escriba el usuario, la web ya tiene siempre las mismas respuestas, algo que no es lógico, ya que si introduce un usuario que no existe, no tendría sentido que diga, por ejemplo, que el usuario está conectado. Un usuario que no existe no puede estar conectado. Tan sólo con esto, ya lo hubiese demostrado, y esto es algo que no es muy complicado de hacer, de ahí que me extraña mucho que diga lo que diga, ya que, o no se ha informado debidamente, o ha leído 4 tonterías en 2 blogs cualesquiera y sin fundamento y ya está.
Afirmación 8: “Existen los hackers de mierda y los de verdad que sí que dan mucho miedo”
Esto es lo mismo que una de las afirmaciones anteriores. Sin definir debidamente lo que es un hacker, parece absurdo que diga esto. Además, Charlie Miller, un hacker muy conocido, estuvo trabajando para mejorar la seguridad de Twitter, y no creo que mejorar la seguridad de Twitter, de miedo.
Afirmación 9: “La forma más eficiente es la que hacen estos hackers de verdad que hackean bases de datos de sitios como Linkedin, Instagram,etc.” 
Esta es una de mis afirmaciones favoritas y de las más fáciles de demostrar que realmente no se ha informado como debe.
Para esto, os debéis ir a la afirmación 4 de nuevo, ya que es ahí donde realizo una web con un formulario de login que envía los datos a una base de datos que tengo creada. Claro, los datos los envía por POST y en claro, por lo que la contraseña se almacena en la base de datos tal cual. Solamente ahí-y en un escenario más- sería posible que ocurra lo que dice Dalas, ya que si hackean la base de datos de la web de, por ejemplo Twitter, y almacenasen así las credenciales, sí que un atacante podría acceder y conocer las contraseñas sin problema.
¿Cuál es entonces el problema de su afirmación? Pues que esta no es la única manera de almacenar una contraseña en una Base de datos.
En el post fucking your bullshit code ya lo demostré, y como dije, una opción es-tal y como se ve también en la afirmación 4- almacenar la contraseña tras pasarle una función hash, como puede ser MD5.


Esto es un ejemplo de código y se ve como en $pass estoy utilizando la función MD5 para hashear la contraseña que se pasa por POST y posterormente almacenarla en la Base de datos.


El problema reside en que funciones de este tipo, son conocidos, por lo que se obtiene el texto claro en un momento con servicios online como MD5Hashing 
En este escenario también sería posible conocer la contraseña de los usuarios por esto mismo que estoy contando. Estos 2 escenarios son los que cometa Dalas en su vídeo, aunque hay un escenario más que se le "olvidó" comentar o, al menos, tener en cuenta.


 
Utilizar un hash + salt tal y como se ve en la imagen anterior. Es aplicar una función solamente, y esto dota a las Bases de datos de una mayor seguridad a la hora de almacenar información relativa a credenciales de usuarios.
Y este escenario es el que invalida la afirmación de Dalas, pues este escenario es que el utilizan la mayoría de sitios webs como Twitter, Instagram, Facebook,etc. Esto lo sabemos porque hasta en webs con CMS Wordpress, se utilizan estas funciones hash con salt. Podemos demostrar este punto si nos vamos a la base de datos de nuestro sitio en Wordpress y en la base de datos entramos en wp_users.

No mostrar todos estos escenarios posibles es meter miedo por meter, algo que no está bien. Ojo, no digo que avisar de determinada cuestiones sea malo, al contrario, es más, avisar -sobre todo a los desarrolladores- que gestionen correctamente su web y que las credenciales de sus usuarios la almacenen utilizando hashes con salt, me parece correcto, y prevenir de los 2 primers escenarios también puede ser interesante, pero también se debe avisar de este tercer escenario, que es el que usan casi todos los servicios webs.

Y hasta aquí lo dejo. He comentado solamente los fallos de uno de sus vídeos, pero la verdad es que llevo 2 días preperando este post y seguir sacando más me está cansando mucho, ya que es hablar sin informarse de absolutamente nada, siendo en muchos casos falaz y con medias verdades. Además, tengo que preparar otros posts que me van a llevar su tiempo también y no quiero perder más tiempo con este, porque la de tonterías que se dice por minuto, es bestial.

¿Hackeamos el Mundo?

1 comentario:

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...