Mostrando entradas con la etiqueta inocentadas. Mostrar todas las entradas
Mostrando entradas con la etiqueta inocentadas. Mostrar todas las entradas

28 diciembre 2011

[inocentada] Cross-Site Scriptings en Google, Nasa y CIA

----------- INOCENTADA 28-Dic-2012 -----------

Como muchos adivinasteis (y otros ¿siguieron la broma?), esta contribución se trataba de una inocentada.

-----------------------------------------------------------------------------------------

Quiero dar las gracias a Security By Default por dejarme publicar aquí esta técnica, en la que llevo meses trabajando y que espero poder presentar en diferentes congresos a lo largo de todo el mundo. Yo creo que nadie antes se había dado cuenta, pero creo que he descubierto una forma de poder conseguir Cross-Site Scriptings no persistentes (de momento :-D) en casi todas las páginas web, y ¡saltándose todos los filtros anti-XSS!

No quiero enrollarme mucho sobre cómo llegué a la sentencia final, pero si que os proporcionaré el truco para que así podáis llenar las bases de datos de webs con XSS, como  XSSed y demás.
Para probarlo en entornos reales, he decidido aplicar dicho ataque en las webs de Google, de la Nasa y de la CIA, cuyos departamentos de seguridad siempre se han jactado de tener sus sistemas más seguros del mundo...¡pues no lo parece!
Adjunto las siguientes capturas, en primer lugar de un XSS en el propio buscador de Google!

El siguiente, ¡en el buscador principal de la NASA!

Y finalmente, en el de la CIA:


He probado sobre las últimas versiones sobre Windows de Google Chrome, Internet Explorer y Mozilla Firefox, y en este último no me ha funcionado, así que quizás siga investigando para que así este método sea como Java, ¡que funcione en todas partes!

Si queréis probar vosotros mismos, no tenéis más que realizar los siguientes pasos:

1) visitar una web cualquiera que tenga un buscador
2) poner la siguiente cadena de texto (es una de las técnicas mostrada en la cheatsheet de XSS en ha.ckers.org): <XSS STYLE="xss:expression(alert('Security By Default'))"> como valor a buscar.
3) La búsqueda no ofrecerá resultados, y aunque parezca que escapa carácteres, a continuación, en la barra de direcciones del navegador, hay que escribir lo siguiente, tal cual:

javascript:alert('Security By Default')

¡Tachán! Así veréis como esto no se trata de ningún montaje, ¡las imágenes que os había mostrado eran reales! He contactado tanto con Google como con Microsoft, y de momento no he obtenido respuesta alguna (supongo que por las vacaciones de Navidad), y también he escrito a Mozilla para felicitarles por su seguridad.

Espero que os haya sido de utilidad, y si mejoráis la técnica, ¡dejad comentarios!

------------------------------
Contribución por Inn0-cent Hacker
Leer más...

30 diciembre 2010

Inocentadas 2.0

Recuerdo con alegría los tiempos de niño, cuando se celebraba el día de los Inocentes, gastando alguna que otra broma que no degeneraba más que en unas risas para la víctima y los que lo rodean.

Las típicas en esa época eran pegar un muñeco de papel en el abrigo, colgar con hilo de pescar un billete (falso) por la ventana, fijar al suelo con loctite una moneda de cierto valor y ver cómo la gente se esfuerza en despegarla, etc,…

Con el tiempo y los adelantos tecnológicos, las inocentadas fueron evolucionando gracias a nuevas herramientas que así lo posibilitaban. Por ejemplo el teléfono. Es típica la escena del bar de Moe en los Simpsons donde suena el teléfono y una voz desconocida pregunta por alguien con nombre creativo. Sin embargo, cuando los teléfonos empezaron a detectar el Caller ID, se fastidió el poder hacer este tipo de  inocentes bromas "en claro" utilizando un teléfono propio.

Con los móviles y su "posibilidad" de llamar con número oculto, se abrió otro universo de creatividad. En algunos casos, el que ve "número oculto" en la pantalla o sospecha o, muchos conocidos míos, ni siquiera lo cogen.

Sin embargo, sigue habiendo otro tipo de bromas que se pueden llevar a cabo gracias a la "modernidad de nuestros días". De hecho en diversos blogs, e incluso nosotros mismos, al igual que hicimos otros años, publicamos también un post acorde al día 28 de Diciembre.

Sin embargo, hay otras ideas que pueden dar lugar a unas risas, pero que  también pueden tener consecuencias desagradables. No obstante, queremos compartirlas aquí.

Disclaimer: Desde SbD NO nos hacemos responsables del uso inocente/malicioso que se pueda hacer de lo expuesto más adelante, así como de las consecuencias que puedan derivarse, tanto con las víctimas como con los participantes.

Por ejemplo:
  • Servicios tipo BromaSMS.com, en el que envías un SMS a un número, modificando el número origen por el que tú quieras. De esta manera, el que lo recibe, si tiene en su agenda el número origen que hemos solicitado "spoofear" parecerá que es ese contacto quien se lo envía. Podéis imaginar que los cacaos que se montan pueden ser descomunales. Otra modalidad de este tipo de ataque/broma, es si tenéis acceso físico al dispositivo de la "víctima". Así, simplemente con cambiar en el móvil el nombre de nuestro contacto/móvil, por el que queremos suplantar, podemos tener el control completo de la comunicación, enviando y recibiendo SMS con la "víctima", que creerá que está dirigiéndose a otra persona.  Sí, sé que no tiene nada de tecnológico pero, el engaño es la técnica de ataque más eficiente. Hace muuuuchos años tuve oportunidad de asistir a una broma de estas características en un entorno muy controlado y fue bastante divertido (en realidad ni siquiera era 28 de diciembre).
  • Correo suplantando el origen: Una idea que se me ocurrió hacer para este día de los inocentes, pero que finalmente no llegué a ejecutar, era el envío de un correo electrónico a un compañero de trabajo "víctima", utilizando como origen el de alguien importante de la empresa. Se puede hacer de varias maneras, pero la más creible es contando con una cuenta de correo en el mismo servidor desde el que pretendemos enviar los correos manipulados. Para poder hacer pruebas, lo más sencillo crear un script en Perl

#!/usr/bin/perl
use Mail::Sender;

my $sender = new Mail::Sender{smtp => 'X.X.X.X', 
from => 'Responsable RRHH <rrhh@empresapoc.com>', 
replyto => 'inocenteinocente@empresapoc.com'};

$sender->MailMsg({to=> 'Compañero Víctima <victima@empresapoc.com>', 
to => 'A mi mismo <atacante@empresapoc.com>', subject =>"Reunión urgente", 
msg => "Estimados empleados,\n\n
Por la presente os convoco a una reunión para el día 5 de Enero en 
nuestras oficinas centrales donde discutiremos 
vuestras condiciones laborales para el año 2011\n\n
Sin otro particular, se despide atentamente\n\n
Perico Pérez - Responsable de Recursos Humanos EmpresaPoC\n
rrhh\@empresapoc.com\n
+33 12 34 56 789\n\nEnviado desde mi iPhone"});



A tener en cuenta:
  • El subject, cuerpo y firma del correo ha de ser lo más parecido en el lenguaje que usa la persona a la que se suplanta.
  • Se puede "hablar" directamente al servidor de correo con los comandos SMTP adecuados pero, para tener flexibilidad y poder probar cómoda y rápidamente, Perl nos aporta lo necesario.
  • Si hiciera falta utilizar autenticación en el servidor, el módulo Mail::Sender nos proporciona mecanismos para llevarlo a cabo sin problemas, eso sí, con nuestro usuario/contraseña.
  • Hemos añadido una cabecera replyto: inocenteinocente@empresapoc.com para evitar que nuestra víctima conteste al suplantado y se organice un problema serio para alguien. Precaución con la suplantación de identidades por correo que en algunos países está considerado como delito, aparte de que en la empresa no darás una buena imagen, aun siendo 28 de Diciembre.
  • Si no tenemos acceso al servidor del origen que queremos "spoofear", podemos utilizar un servidor de correo cualquiera, con el requisito que no compruebe los dominios permitidos como originadores de correos. Si el servidor correo destino dispone de un mínimo mecanismo de filtrado antispam, comprobará que el correo viene de una dirección IP que no corresponde a un registro MX asociado al dominio indicado en el correo y lo rechazará o lo considerará SPAM.
¿Cómo detectar que el correo no es real?
  • Lo más normal es sospechar de algo con tan mala baba un 28 de Diciembre. Estar ojo avizor un día así y desconfiar más de la cuenta puede ayudar en un día así.
  • Análisis de las cabeceras del correo. En general, los clientes de correo, muestran por defecto los campos más comunes e interesantes de un correo: Origen, destino, subject, Fecha y hora de envío, etc,... De ahí que a simple vista, nuestro correo trampa/broma puede ser perfectamente creíble a primera vista. Sin embargo, todos los clientes de correo (al menos, no webmails) permiten ver todas las cabeceras que manda el servidor de correo al cliente. En este caso, comparando cabeceras con uno que tengamos confianza que es verdadero, podríamos ver diferencias que nos permitan tratarlo como corresponde en un día así. 
¿Y tú, te animas a contarnos qué inocentadas 2.0 hiciste el pasado 28 de Diciembre?
      Leer más...