Google EL TIPO DE INFORMATICA: Seguridad
Mostrando entradas con la etiqueta Seguridad. Mostrar todas las entradas
Mostrando entradas con la etiqueta Seguridad. Mostrar todas las entradas

domingo, 1 de febrero de 2015

Conseguir Claves WEP en Mac OS X con Aircrack-ng

Este tema de romper claves WEP en redes WiFi no es nada nuevo, todos sabemos lo vulnerable que es WEP y lo rápido que se puede conseguir la clave o "key" una vez se logra capturar suficiente tráfico. Pero en este post veremos como hacerlo en Mac OS X usando la herramienta nativa de diagnostico de redes inalámbricas (Wireless Diagnostic) para capturar paquetes y luego "Aircrack-NG" para descifrar o calcular la clave en base a los datos capturados. Generalmente para el escaneo de redes inalámbricas, la captura de los datos y/o inyección de datos se utilizan programas como KisMAC, pero generalmente estos programas no funcionan con los drivers de la tarjeta WiFi de Mac OS X, por lo que usualmente se utilizan tarjetas externas USB con drivers que soporten. Pero si no tenemos otra tarjeta o drivers compatibles, podemos usar esta utilidad del sistema, nos permitirá conseguir la información necesaria de la red y también capturar los datos para descifrar la clave WEP. Lo que no podremos hacer con con esta utilidad es inyectar trafico a la red, así que si la red no es muy activa tendremos que durar mucho tiempo capturando hasta que se consiga una cantidad de suficiente de paquetes. Pero para muchos casos podremos usar esta herramienta nativa, así que empecemos.

Conseguir Información de la Red

Lo primero que necesitaremos es información de la red que queremos "auditar", o a fin de cuentas conectarnos. Lo que buscaremos será el canal en que transmite, el nombre de la red (o SSID) y el BSSID, que seria el Mac Address del router inalámbrico que transmite la red. Para esto usaremos como les dije la herramienta del sistema para diagnostico de Redes Inalámbricas, para abrirla presionamos la tecla "option" y manteniéndola presionada hacemos clic encima del icono que nos muestra las redes inalámbricas (en el menu de arriba), luego hacemos clic en "Open Wireless Diagnostic", como se muestra mas abajo:

Herramienta de Diagnostico Wireless
Herramienta de Diagnostico Wireless del Sistema

Se les pedirá escribir el usuario/password de un usuario con privilegios administrativos en el equipo, luego abrirá la siguiente ventana. Abrirá una especie de "Wizard" que se usa para determinar problemas de conexión, pero esto no es lo que usaremos. Junto a esta aplicación el sistema tiene una ventana de utilidades, para acceder a ella haremos clic en "Windows" (en el menú superior) y seleccionaremos "Utilities", como se ve mas abajo:

Mac OS X Wireless Diagnostic

Esto nos traerá la ventana que necesitamos. Como verán esta herramienta tiene varias opciones que nos resultaran de mucha utilidad. Tiene varios tabs: Info, Frame Capture, Logging, Wi-Fi Scan, Perfomance. Primeramente utilizaremos la opción "Wi-Fi Scan", que como ya se imaginaran usaremos para escanear y detectar las redes wi-fi cercanas y conseguir la  información que necesitamos. Hacemos clic en "Scan Now" y veremos un listado con las redes WiFi, donde buscaremos alguna que utilice WEP:

Redes WiFi

Ahora que tenemos identificada la red que queremos "auditar", podemos empezar a capturar datos. Como les había comentado al inicio, para conseguir la clave necesitamos capturar todo el trafico posible. Nos movemos a la sección "Frame Capture". Solo tenemos que seleccionar el canal (Channel) en que transmite la red (en el ejemplo del gráfico anterior, se encuentra en el canal 1) y hacemos clic en "Start". Con esto empezara a hacer la captura de los datos, dependiendo de que tan activa este la red este proceso puede tomar desde varios minutos hasta varias horas, mientras mas tiempo estemos capturando mas posibilidades de capturar.

Captura de Datos WiFi


Luego de que haya pasado un tiempo considerable detenemos la captura. Nos generara un archivo en el Desktop con extension ".wcap", el nombre estara compuesto por la fecha de creación, por ejemplo "150131_223736.wcap" (año - mes - mes). Este archivo contiene los datos que capturamos en el canal que especificamos. Ahora podemos pasar a intentar calcular el key usando aircrack-ng.


Aircrack-NG

Aircrack es toda una suite de herramientas para auditoría de redes inalámbricas, tiene herramientas para la captura de datos (lo que hicimos anteriormente con la herramienta del sistema), para inyección de trafico entre otras, pero como les comente antes, algunas no funcionan con los drivers de Mac OS X. Pero si tenemos suerte, no necesitaremos inyectar trafico. En caso de que no tengan Aircrack instalado, pueden instalarlo con Homebrew (y si no lo han utilizado Hombrew aquí les digo como instalarlo, es bastante sencillo). Para instalarlo utilizan el siguiente comando:

 brew install aircrack-ng

Bien, ya con Aircrack instalado, solo tenemos que ejecutarlo sobre el archivo que contiene la captura que hicimos. Este archivo contendrá muchos datos, no solo de la red en cuestión sino de todas las redes que estén en el área transmitiendo en el canal que hicimos la captura. Así que le indicaremos a Aircrack el BSSID de la red que queremos que nos descifre el Key, así que ejecutaremos:

$ aircrack-ng -b bssid-de-la-red archivo-capturado.wcap

Con la opción "-b" le indicamos el BSSID de la red, seguido del archivo capturado. Si se capturaron suficientes paquetes, Aircrack calculara en unos segundos la clave. En caso de que no hayan suficientes, aircrack les dirá que necesita más paquetes (IVs) para poder calcularla. En ese caso necesitarán hacer la captura nuevamente pero por mas tiempo. En el caso de este ejemplo, deje la captura por unos 40 minutos y mi archivo de captura alcanzó unos 900 MBs, al ejecutar aircrack solo necesito unos segundos para calcular la clave:

Aircrack calculando Clave WEP

Como pueden ver pude conseguir una buena cantidad de paquetes (43743 IV's) en la captura, y más abajo Aircrack muestra el Key. Solo hay que remover los dos puntos ":" entre cada par de caracteres y tendremos el Key de la red. Así de rápido se puede conseguir la clave de una red que utilice WEP, por esto es que tiene que evitar usarlo. Espero que esto les sea de utilidad.

Hasta el Próximo!

lunes, 24 de marzo de 2014

Crear un Access Point (Rogue AP) en Mac OS X y Captura de Datos con SSLStrip

En esta entrada veremos como crear un punto de acceso a Internet falso (o Rogue AP) en Mac OS Mavericks, usando la herramienta nativa de este sistema operativo para compartir Internet para crear una red Inalámbrica, configuraremos el Firewall del sistema para redireccionar todo el trafico que salga a traves de esta conexión a un puerto especifico en el equipo donde tendremos entonces la herramienta SSLStrip capturando el trafico. La función principal de SSLStrip no es solo la captura del trafico, sino mas bien permitir capturar datos en forma plana que generalmente se enviarían encriptados con SSL. Esto lo hace de la siguiente manera, cuando en una pagina, por ejemplo Facebook, hacemos clic en "Login" o "Acceder", se gestiona una sesión segura usando SSL (HTTPS) antes de enviar los datos digitados, lo que hace SSLStrip es que captura esa solicitud y evita que se establezca la sesión SSL, por lo que la conexión se mantiene en texto plano. Claro esto no siempre funciona, algunos sitios no permiten hacer el login si la conexión no es segura. La idea es mostrar porque debemos tener cuidado al conectarnos a una red Wireless abierta que encontremos, bien, habiendo dicho esto podemos empezar.

Creando la Red Wireless

Lo primero que haremos sera crear la red inalámbrica a la que queremos que las personas se conecten. Para esto compartiremos una conexión a Internet, esta conexión puede ser, por ejemplo, via un cable de red, o como en mi caso, puede ser a traves de un telefono celular via USB. Para esto iremos a System Preference --> Sharing. Veremos la siguiente ventana:

Comparitr Conexion Internet

Antes de activar la opción "Internet Sharing" de la sección de la izquierda debemos indicar cual sera la conexión que compartiremos y a traves de que medio la compartiremos. En nuestro caso, yo estoy compartiendo la conexión a Internet del Iphone a traves del cable USB, y la compartire a traves de la tarjeta Wi-Fi. Luego haremos clic en el boton "Wi-Fi Options..." para configurar el nombre de la red inalámbrica que crearemos y el password, como lo que queremos es hacer una red llamativa para que las personas se conecten, elegiremos como nombre "OPEN_INTERNET" o "OPEN_WIFI" y la configuraremos sin password, como se muestra en la próxima ventana:


Hacemos clic en OK y volveremos a la ventana anterior, donde seleccionaremos el recuadro "Internet Sharing" para habilitar esta conexión, con esto ya estaremos compartiendo nuestra conexión a Internet y regalando Internet al publico. Necesitamos ahora ver la interface que se creo para esta conexión Wireless y ver la dirección IP que tiene esta y que asignara a los usuarios, para esto ejecutamos en el comando "ifconfig" en una ventana Terminal, veremos algo como esto:



Como pueden ver, tengo ahora una interface llamada "bridge100", con la dirección IP 192.168.2.1, las computadoras que se conecten a esta red inalámbrica se le asignaran IP's en este mismo rango. Esta información la usaremos mas adelante cuando estemos configurando el Firewall.

UPDATE:

Si al habilitar "Internet Sharing" no les funciona (no ven que el icono del Wireless cambia en la barra), es posible que esten utilizando Mavericks o Yosemite. En mi caso, cuando migre a estas versiones dejo de funcionarme el Internet Sharing, pero se corrigio con "El Capitan" (10.11.1).

Configuración Firewall Mac OS

Bien, en este punto ya debemos tener personas conectadas a nuestra red, ahora necesitaremos redirigir todo el trafico HTTP o HTTPS que salga por esta conexión hacia el puerto en que estará escuchando SSLStrip. Para esto configuraremos algunas reglas en el Firewall de Mac OS, que a partir de Lion se maneja con el con pf, este manejador de paquetes viene de FreeBSD. La configuración de pf se encuentra en /etc/pf.conf,  pero las reglas del Firewall no se encuentran directamente en este archivo,  sino que que indican aqui los archivos que contienen las reglas. A estos archivos se les llama "Anclas" (anchor en ingles). Así que lo que haremos sera crear nuestro propio archivo ancla donde definiremos las reglas necesarias, y luego haremos referencia a ellos en pf.conf. Estos archivos "ancla" se crean generalmente en "/etc/pf.anchors/", el archivo que crearemos lo llamaremos "rdr.proxy" y lo crearemos ejecutando "sudo vim /etc/pf.anchors/rdr.proxy", el contenido de este archivo sera el siguiente:


rdr pass on bridge100 inet proto tcp from any to any port 80 -> 192.168.2.1 port 8080
rdr pass on bridge100 inet proto tcp from any to any port 443 -> 192.168.2.1 port 8080

pass in log quick on bridge100 proto { tcp, udp } from any to 192.168.2.1 port 8080 keep state
pass in log quick on bridge100 proto { udp } from any to 192.168.2.1 port 53 keep state
pass in log quick on bridge100 proto { icmp } from any to any keep state
pass out inet proto tcp from any to any keep state
pass out inet proto udp from any to any keep state

Con las primeras 2 reglas configuramos el "Redirect" del trafico hacia el puerto 8080, como ven indicamos a cual interface se aplicaran estas reglas que en este caso es a la interface que se creo cuando activamos el "Internet Sharing", que como vimos fue la interface "bridge100".  Las siguientes reglas lo que permiten es el acceso o abrir el acceso al puerto 8080 donde esperara SSLStrip por el trafico de las personas que usen esta red, tambien permitimos el acceso al puerto UDP 53 para que los equipos puedan hacer consultas DNS. Luego que hayamos copiado estas lineas en el archivo podemos guardarlo e irnos al archivo /etc/pf.conf, donde agregaremos las siguientes lineas:

rdr-anchor "rdr.proxy"
load anchor "rdr.proxy" from "/etc/pf.anchors/rdr.proxy"

Como ven primero definimos el archivo con la linea "rdr-anchor..." y luego le indicamos cargue este archivo y le indicamos la ubicación donde se encuentra. Al hacer estas modificaciones, el archivo /etc/pf.conf se veria de esta manera:


Archivo pf.conf

El Firewall del Mac OS  (pf) viene desactivado por defecto, así que aun no estarán habilitadas las reglas que acabamos de agregar, para esto tendremos que ejecutar el siguiente comando:

#sudo pfctl -ef /etc/pf.conf

Cuando ejecutemos este comando, habremos cargado las reglas y activado pf en el sistema. Hay que tener en cuenta que al habilitar esto, todo el trafico de las personas que esten conectadas a la red inalámbrica que acabamos de crear se estará redireccionando al puerto 8080, y como aun no tenemos SSLStrip corriendo en el sistema no podrán navegar. Así que seria mejor ejecutarlo cuando ya este instalado y corriendo SSLStrip, así que pasemos al siguiente paso.

Instalando SSLStrip 

Ya entramos en la ultima parte, ahora solo nos resta instalar SSLStrip para hacer la captura de los datos. Lo pueden descargar desde este link. Esta herramienta esta desarrollada en Python, pero para ejecutarla en Mac OS sera necesario instalar algunos componentes. Esto podemos instalarlo usando MacPorts, que es un manejador de paquetes similar a APT-GET en Linux. Si no lo tienen pueden descargarlo desde este link y seguir las instrucciones (su instalación es sencilla). Una vez lo tengan instalado solo debemos ejecutar:

$ sudo port install py-twisted-web2
$ sudo port install py-openssl

SSLStrip requiere Python 2.5 o superior, si tienen varias versiones de Python en el sistema, es posible que necesiten ejecutar los comandos anteriores indicando la version al lado de "py", por ejemplo "sudo port install py25-twisted-web", una vez instalados estos componentes, nos movemos a la carpeta donde descargamos SSLStrip y entonces ejecutamos:

$ sudo python sslstrip.py -l 8080 -w captura.log

Con esto iniciamos sslstrip escuchando en el puerto 8080 (con la opción -l) y le indicamos que todo lo que capture lo guarde a un archivo llamado "captura.log". Cuando ejecutemos este archivo sslstrip se mantendrá corriendo y capturando hasta que lo cancelemos, se vera como se muestra a continuación:

Ejecutando SSLStrip.py

Ahora solo tenemos que esperar que las personas que esten cerca se conecten a nuestro AP y SSLStrip empezara a capturar sus logins y passwords. Como los datos se van copiando al archivo "captura.lo", podemos abrir otra ventana de Terminal y ejecutar "tail -f captura.log" para ir viendo los datos según van siendo capturados. Entonces, cuando una persona se conecte, por ejemplo a Facebook, veremos los datos que introduce aparecer en el archivo captura.log como se muestra a continuación:



Como ven, el incauto conectado a mi red intento conectarse a facebook, y como vemos SSLStrip nos trajo el username que utilizo (usuario-conectado) y el password (misuperpassword01). A parte de SSLStrip se puede utilizar un proxy, como Burp Proxy (del cual les hable en este post) y así se podría incluso tener mas control sobre el trafico de las personas que se conecten. Bueno, hasta aqui este post, espero que les sea de utilidad y lo piensen mejor la próxima vez que vayan a conectarse a una red inalámbrica publica o que no sea de confianza (... y aunque sea de confianza).

lunes, 24 de febrero de 2014

Password por Defecto en Modems ADSL Huawei ADSL HG532e

En estos dias estaba en una oficina configurando el acceso a Internet y una nueva linea ADSL que se habia contratado. Necesitaba hacer algunos cambios a la configuración del Router y tenia que acceder al Manager para hacerlos. Como les habia comentado anteriormente, mucho de estos Routers/Modems ADSL venian con un usuario/password por defecto, desde un tiempo hacia aca lo que estan haciendo es que usan el serial del equipo, la MAC Address o la contraseña WEP/WAP del Wireless como clave para acceder a la administración. El Modem que instalo el suplidor fue un Huawei HG532e, procedi a conectarme al menu para hacer los cambios necesarios, generalmente la IP por defecto de estos equipos 10.0.0.1:

Ventana de Login Router Huawei

Para el caso de este Modem, el usuario/password es el mac address, lo que en cierta forma es una ventaja sobre el metodo antiguo de usar "admin/admin", ya que por lo menos para poder acceder al menu es necesario tener acceso fisico al equipo y evita que cualquiera a traves de Internet pueda entrar a nuestro Router. Asi que inserte el Mac Address y pude entrar sin problemas. Una vez habia hecho los cambios que necesitaba, me pase por la seccion "Mantenimiento" del menu para ver que opciones me presentaba y me llamo la atencion que en la parte de "cuentas de usuario" habia un "Drop-down" menu, o sea, que aparentemente habia mas de una cuenta creada en el router, aunque lo habia acabado de sacar de su caja. Al hacer clic encima de este elemento veo que efectivamente habia una cuenta "user" creada a parte de la cuenta con la que me habia logueado, como se ve a continuacion:

Lista Usuarios Modem Huawei

Al ver este usuario, me imagine el password que debía acompañarlo, así que cerre la sesión, intente logearme con ese usuario y al primer intento pude acceder al menu y con los mismos privilegios administrativos del usuario del Mac Address. Y si, el password era igual que el username: "user". Lo primero que hice fue entrar nuevamente con el usuario del Mac Address y eliminar esta cuenta. Luego senti curiosidad por ver si este usuario realmente venia en todos los modems de este modelo o si solo me habia caído a mi la dicha, así que revise la IP externa que tenia asignada el router en ese momento para hacer una búsqueda en todo ese rango a ver si encontraba modems de ese modelo y probar el usuario "user". Para esto utilizaria Nmap, pero antes tenia que ver como el Modem se identificaba y usar esa información para identificar los demás, así que ejecute el siguiente comando:

salida comando Nmap

Como ven, realice un escaneo a la IP del Modem con Nmap a los puertos 80 y 23 (HTTP y Telnet) con la opción "-sV" para que me muestre información de la version del servicio, en este caso el servicio Telnet en este Modem se identifica con "Huawei HG655b DSL router telnetd", así que ahora lo que resta es hacer un escaneo en un determinado rango de IP publicas y filtrar la salida para que nos muestre las que devuelvan esta linea. Utilice nuevamente Nmap pero ahora apuntando solo al puerto 23 y agregue tambien la opción "-oG - " para cambiar la forma en que se presentan los resultados y así poder filtrar mejor con "Grep" la salida, tambien amplie el rango del scan para que incluya las otras IP's vecinas del Modem en ese momento, este fue el resultado de la búsqueda de las primeras 100 IP's en ese rango:

Resultado Scan Nmap

Como ven solo entre las primeras 100 IP's aparecieron varios routers de este mismo modelo, es posible que incluso hayan mas y solo estaban apagados en ese momento. Lo interesante es que fui probando cada uno de estos Modems y efectivamente, TODOS los que encontre en este rango (y otros mas) tenian el usuario "user" con el mismo password!! Y bueno, que podría hacer alguien con el password de nuestro router ADSL? basicamente podrían controlar nuestro trafico en Internet, podrían alterar la configuración DNS ya que generalmente el mismo Modem hace el papel de servidor DNS para las computadoras que están detrás de el, tambien podrían crear reglas NAT que apunten a las computadoras detrás del router y exponerlas a Internet para realizar ataques sobre ellas y lograr acceso directo a estas.

En resumen, si tienen instalado uno de estos Routers/Modems en sus casas u oficinas, revisen la configuración en caso de que tengan este usuario creado y eliminenlo. Es posible que en otros modelos pase lo mismo, hasta ahora solo he probado este, asi que revisen su modem aunque no sea este modelo. Bueno, espero que les haya sido de utilidad, y esta información les haya llegado antes de que alguien mas entre en sus routers.

martes, 24 de julio de 2012

Leer Conversaciones Guardadas de Skype con SQLiteBrowser

En estos días se ha estado hablando de Skype en la red debido a la publicación de su código fuente y también a un problema que causaba que mensajes llegaran a personas que nisiquiera estaban en la lista de contactos. Así que quise aprovechar para hablarles de algo que encontré hace un tiempo mientras revisaba los archivos de datos de Skype, por simple curiosidad. Y es que el historial de conversaciónes o chat y otras informaciónes (como la lista de contactos) del usuario son almacenadas en un archivo de base de datos, y lo mejor, no esta encriptado ni nada parecido. Y todavía mejor, por default Skype almacena un historial de todas las conversaciónes, a menos claro que le digamos lo contrario, cosa que por lo que he visto muy poca gente hace.

En Windows 7, los archivos de datos de Skype se almacenan en la dirección "C:\Users\nombre-de-usuario-de-windows\AppData\Roaming\Skype\", dentro de esta carpeta encontraremos una o varias carpetas con los nombres de usuarios de Skype que se hayan logeado en esa computadora, en la que encontraremos estos archivos:


Archivos Skype

Como pueden ver en el gráfico anterior esta señalado el archivo "main.db", este es el archivo que contiene el historial de chat, los contactos, etc. Aquí es entonces donde utilizaremos el programa "SQLite Database Browser" que pueden descargar desde este link. Verán que es bastante sencillo de utilizar, solo hacen doble clic encima del ejecutable, luego hacen clic en "File--> Open Database" y buscamos el archivo "main.db" en la ruta mencionada anteriormente o donde lo hayamos copiado. Al abrir nuestro archivo lo primero que veremos sera la estructura de la base de datos, como se ve a continuación:

Base de datos Skype

En esta ventana seleccionamos el tab "Browse Data", y luego en la sección "Table" seleccionamos la tabla "Messages". Esta tabla es la que contiene el historia de Chat del usuario. Como verán, aquí aparecen las demás tablas que también pueden contener información interesante. En este caso seleccionaremos "Messages":

Archivo de Datos Skype

Esta tabla contiene muchas columnas, para ver el mensaje transmitido tendremos que movernos hacia la derecha en la ventana hasta la columna "body_xml". Lo bueno es que esta herramienta nos permite también ejecutar Queries SQL en esta base de datos, lo que nos facilitaría la lectura de los mensajes, para esto nos movemos al tab "Execute SQL", y en la sección "SQL String:" podemos escribir nuestro query y filtrar los mensajes. Las columnas mas importantes son author, from_dispname, dialog_partner y body_xml, así que podríamos ejecutar el siguiente query:

Archivos de Datos Skye

Como ven, ahora nos resultara mas cómodo leer todas las conversiones. Ahora bien, que hacer para evitar que alguien pueda leer nuestras conversaciones de esta manera? Lo primero primero seria decirle a Skype que no conserve nuestras conversaciones, esto se hace en "Tools --> Options --> Privacy" en la sección "Keep history for" seleccionamos "no history":

Configuracion Skype


Otra opcion seria borrar periódicamente este log, como ven en el gráfico anterior hay un botón "clear hostory" que se encargaría de esto. En la mayoría de los casos creo que la mejor opción seria la primera, no guardar historial de conversaciónes. Así que ya saben, la próxima vez que tengan la computadora de un amigo o compañero en sus manos y este usa Skype... no sean malos y adviertanle sobre el setting para eliminar las conversaciónes :) . Bueno, espero como siempre que esta información les haya sido de utilidad (tanto como a mi :P ).

viernes, 13 de julio de 2012

Un Poco de IPTables Parte 3: Redireccionando Logs

Siguiendo con lo que ahora se ha convertido en una serie de post de IPTables, voy a hablarles de como manejar los logs de IPTables, configurar cuales eventos que queremos escribir, agregar algún prefijo y redireccionarlos a un archivo especifico en el equipo, ya que por default los logs de IPTables se almacenan en el archivo "/var/log/kern.log". Para esto aplicaremos algunas reglas en IPTables y luego configuraremos nuestro syslog server (utilizaremos Syslog-NG) para indicar que queremos tener un archivo aparte únicamente con los log de IPTables. 

Lo primero que debemos hacer es determinar que tanto queremos que IPTables nos registre, si queremos que registre cada paquete que entre o salga a nuestra red, o si solo queremos que registre los paquetes que hayan sido "Dropeados" o descartados. La opción mas recomendable es logear todo lo que pase por nuestro Firewall, ya sea permitido o bloqueado, ya que esto nos permitirá identificar mas fácil algún problema de conexión, como auditoría en caso de que necesitemos localizar conexiones salientes o entrantes hacia algún sitio especifico o también para generar reportes de uso o ancho de banda. Hay que tener en cuenta que con esta opción nuestro archivo de log crecerá mucho mas rápido, dependiendo de la actividad de nuestra red. Para esto haremos lo siguiente: Supongamos en este ejemplo que nuestro firewall tiene 2 interfaces, la eth0 que esta conectada a Internet y la eth1esta conectada a nuestra red LAN, queremos entonces registrar todo lo que entre o salga hacia Internet, agregamos las siguientes reglas (antes de las demás reglas que hayamos definido para que se registre cada paquete antes de tomar alguna decisión sobre el mismo)

-A FORWARD -o eth0 -j LOG --log-level 7 --log-prefix IPTABLES-BANDWIDTH_OUT: 
-A FORWARD -i eth0 -j LOG --log-level 7 --log-prefix IPTABLES-BANDWIDTH_IN: 

En la primera linea le decimos a IPTables que todos los paquetes que salga desde nuestra red LAN a través de la interfase eth0 (-o eth0) le aplique la acción LOG (-j LOG), esta entrada en el log sera nivel 7 (--log-level 7) y le decimos que agregue el prefijo "IPTABLES-BANDWIDTH_OUT:" (--log-prefix), este prefijo lo utilizaremos mas adelante como filtro para enviar este tipo de eventos hacia un archivo especifico. En este prefijo pueden poner cualquier otra cosa que les haga sentido, de modo que cuando vean un evento en el log con este prefijo sepan de donde viene y como se produjo. En la segunda linea hacemos lo mismo, lo único que decimos que registro todo paquete entrante (-i) por la interface eth0, en este caso serian paquetes provenientes de Internet, y en la parte final del prefijo sustituimos OUT por IN para diferenciar los que son paquetes salientes con los entrantes.

Podemos también registrar los paquetes que han sido descartados, o que no encontraron ninguna regla que coincida permitiendo o denegando el paquete. Como les había mencionado en la entrada anterior sobre IPTables, podemos tener una acción por defecto que se aplicara a los paquetes que no coincidan con ninguna regla, por esto agregamos las siguientes reglas al final de las reglas de cada cadena, por ejemplo, al final de las reglas de INPUT, de modo que luego de que el paquete haya sido evaluado por cada y regla y no coincida, se registre este paquete antes de aplicar la regla default. Por ejemplo, supongamos que tenemos definidas varias reglas en nuestro firewall, una permitirá el trafico HTTP/S y POP3 hacia Internet desde la LAN hacia Internet, luego de estas agregaremos la siguientes reglas para logear todo lo que no se corresponda a lo que hemos definido:

-A FORWARD -p tcp -s LAN -d 0/0 --dport 80 -j ACCEPT
-A FORWARD -p tcp -s LAN -d 0/0 --dport 443 -j ACCEPT
-A FORWARD -p tcp -s LAN -d 0/0 --dport 110 -j ACCEPT
-A FORWARD -j LOG --log-level 7 --log-prefix IPTABLES-FORWARD-DROP:
-A FORWARD -j DROP

Como ven, tenemos aquí las reglas de ejemplo definidas que permiten ciertos paquetes, luego en la cuarta linea indicamos que todo lo que haya llegado a este punto sea logeado y le agregemos el prefijo "IPTABLES-FORWARD-DROP:", así reconoceremos los paquetes con este prefijo y sabremos que fueron descartados en la cadena FORWARD. Esto mismo lo podemos aplicar tambien en INPUT, OUTPUT o cualquier otra que hayamos definido. En el caso de que utilicemos las primeras reglas que registran todo el trafico entrante y saliente, es buena idea también utilizar estas ultimas, así podemos diferenciar cuales eventos corresponden a paquetes bloqueados.

Hasta ahora ya tenemos a IPTables generando logs, pero los estará creando posiblemente en el archivo "kern.log", donde se encontraran también otros tipos de eventos. Ahora veremos como separa los logs de IPTables y almacenarlos en un archivo individual con Syslog-NG.

  • Configuración Syslog-NG

El archivo que crearemos para almacenar el log de IPTables lo llamaremos iptables.log y lo crearemos en /var/log. Con esta informacion, vamos al archivo "/etc/syslog-ng/syslog-ng.conf" y en la sección "#destinations" agregamos la siguiente linea:

destination d_iptables { file("/var/log/iptables.log"); };

Aquí creamos un "destino" que llame "d_iptables" y le indicamos hacia adonde apuntara, que en este caso se nuestro archivo iptables.log (tengan en cuenta que luego del corchete hay un espacio en blanco). Luego nos movemos a la sección "filters" donde crearemos un filtro que nos permitirá separar los eventos de IPTables basándonos en los prefijos que indicamos anteriormente. 

filter f_iptables { match("IPTABLES") ; }'
filter f_not-iptables { not match("IPTABLES") ; };

Aquí agregamos 2 lineas (o filtros), uno que aplicara a los eventos que contengan las palabras IPTABLES (esta palabra la agregamos en cada prefijo) y otro para los eventos que NO contengan estas palabras, el segundo lo utilizamos para evitar que los eventos de IPTables se continúen almacenando en el archivo kern.log. Nos moveremos entonces ya a la sección "log", donde buscaremos el log que define los eventos que se almacenan en el archivo "kern.log" y agregaremos el segundo filtro que creamos, se vera entonces de esta forma:

log {
         source(s_all);
         filter(f_kern);
         filter(f_not_iptables);
         destination(df_kern);
}

Luego agregaremos entonces nuestro nuevo log indicando el destino  filtro que creamos:

log {
         source(s_all);
         filter(f_iptables);
         destination(d_iptables);
}


Al agregar esto salvamos el archivo y reiniciamos el servicio (/etc/init.d/syslog-ng restart). Con esto estaremos recibiendo los eventos de IPTables en el archivo definido. Si queremos ver lo que esta pasando entonces por nuestra red (en caso de que hayan configurado la primera opción de logs) o como va creciendo el archivo de log, podemos ejecutar:

# tail -f /var/log/iptables.log

Para ver solo los que estén siendo descartados por IPTables podemos agregar :

# tail -f /var/log/iptables.log | grep DROP


Bien, hasta aquí mi pequeño tip de IPTables, como siempre, espero que esto les sea de utilidad.

martes, 12 de junio de 2012

Tratando de Analizar (superficialmente) un Malware

Antes que nada quiero aclarar que no me refiero a un análisis profundo de un malware, a lo que me refiero es a ver las actividades que realiza, adonde intenta conectarse y que modifica en el sistema, a fin de que podamos tomar medidas para evitar la infección y facilitar la desinfección en caso de que uno de nuestros usuarios haya decidido ejecutar el malware antes de llamarnos, como usualmente pasa. Usare algunas herramientas, tanto locales como online, que nos ayudan a conocer un poco las intensiones del malware en cuestión y como intenta hacer la infección del equipo que lo ejecute. Teniendo esto claro, podemos continuar :) . En estos días recibí un correo SPAM que decía venir de un scanner HP, y como es normal en este tipo de mensajes traía consigo un archivo anexo ZIP, la diferencia con los que generalmente llegan es que este en lugar de contener un ejecutable contenía un archivo HTML, a continuación el mensaje:

Malware anexo

El archivo anexo se veía así al abrirlo con WinRAR:

Malware Anexo

Lo primero que hice fue crear una regla en el mail server para bloquear este mensaje especifico (por "subject", por "from", etc.) para tratar de evitar que llegue a otros usuarios. Luego subí mi  maquina virtual con XP que tengo como conejillo de indias. Configure la red de la maquina virtual (que en lo adelante llamare "la víctima") en modo "Bridge", la configure en el mismo rango IP de mi computadora host. La IP de mi maquina virtual sera 192.168.137.2 y la del host es 192.168.137.1, se necesita que tengan conexion entre si para poder utilizar el equipo host como proxy para la maquina virtual (como se vera mas adelante). Luego abrí con "notepad" el archivo  para ver el contenido sin ejecutarlo:

Archivo en Notepad

No se mucho de programación o html, pero no hace falta ser un experto para darse cuenta que esta pagina ejecuta un script y que esta aparentemente codificado. Haciendo una breve búsqueda en Google con la primera linea de este script encontre este enlace a Pastebin, de donde aparentemente viene el código. Luego encontré también este site que permite decodificarlo. Bueno, es hora entonces de verlo en acción, hice doble clic en el archivo HTML para que se ejecutara en mi maquina virtual, abrió con Internet Explorer 6 (que es el que tengo en mi maquina para pruebas) y presento el siguiente mensaje:

Descarga del Malware

El navegador me indica que este archivo esta intentando ejecutar cierto tipo de contenido que esta bloqueado, y que si quiero habilitarlo debo hacer clic en OK, hacer clic en la franja amarilla y seleccionar "Allow Bloked Content". Es posible que esta advertencia evite que algunos usuarios ejecuten este script, pero es seguro que la mayoría dará clic sin leer en "OK" y luego ejecutaran el código. Como mi intención es probar el script procedí a permitir que este se ejecutara, lo que hizo que el navegador me diera otra alerta mas sobre el contenido:

Descarga del Malware

Cualquiera pensaría que con tantas alertas los usuarios no ejecutarian este tipo de código, pero como todos sabemos los usuarios aman los botones "YES" y ciegamente hacen clic sobre ellos, así que muchos usuarios volaran esta advertencia y ejecutaran el código, que es lo que hice para esta prueba. Al hacer clic en "Yes" e ignorar la advertencia me devolvió el siguiente error:

Descarga del Malware

Si se fijan en la barra de estado del navegador, vemos que aunque se presenta el mensaje diciendo que se aborto la operación, Internet Explorer esta abriendo una pagina en un dominio de Rusia al puerto 8080 de ese servidor. En ese momento ejecute en una ventana de comandos el comando "netstat -na" para ver las conexiones que estaba haciendo mi maquina "víctima" hacia afuera:

Comando Netstat

Ahora necesitamos ver la conversación entre ese servidor y nuestra PC víctima, para esto configuraremos Internet Explorer en la maquina virtual para que utilice un proxy que correremos en el equipo Host, asi capturaremos los "Request" hacia el servidor en Internet y tambien las respuestas de este. Podríamos utilizar también un sniffer como Wireshark en nuestro Host y capturar todo el trafico entrante y saliente a nuestra maquina virtual, pero en este caso con el proxy es suficiente (y mas facil).

  • Monitoreando las conexiones a Internet con Burp Suite Free
"Burp Suite"es un proxy que permite entre otras cosas el ver las peticiones y respuestas a Web servers, podemos también modificarlas on line. Pueden descargarlo de este link. Esta hecho en Java, por lo cual requeriran tener instalado el RunTime. Una vez lo hayan descargado, lo ejecutan y se mueven al tab "proxy", y aquí al tab "options". En este tab le indicamos en que interface y en que puerto escuchara las peticiones, debe verse de esta manera:

Burp Proxy

Deben quitar la selección de la opción "Listen on loopback interface only" para que el programa escuche en todas las interfaces, en mi caso elegi el puerto 8080. En esta misma ventana deben también seleccionar la opción "intercept if" debajo de la sección "intercept server responses", para poder capturar también las respuestas de los servidores Web. Ya teniendo el proxy preparado para capturar, configuramos el navegador en nuestra maquina virtual para que lo utilice, en el caso de mi maquina virtual utilizo Internet Explorer 6 (lo se, un poco viejo, pero esa es la idea). Por si no saben como hacerlo, abren el Internet Explorer, luego hacen clic en Tools--> Internet Options --> Connections --> Lan Settings. En el caso de mi configuracion se veria de esta forma:



Ahora, volvemos a ejecutar de nuevo el archivo HTML y esperamos a recibir la solicitud de conexion al proxy en nuestro equipo. Cada conexion (http o https) que intente hacer nuestro equipo virtual a Internet pasara por Burp donde podremos revisar cada solicitud antes de aprobar que salga a su destino, en este caso el dominio ".ru".  Al ejecutar el archivo podemos ver la primera solicitud que hace:

Burp Proxy

Como vemos hemos capturado la primera solicitud la hace al sitio "http://uzindexation.ru:8080" y esta solicitando la pagina "/forum/showthread.php?page...". Para que esta solicitud pueda llegar al servidor debemos dar clic en esta ventana en el boton "Forward", y esperamos entonces por la respuesta del servidor, que llegara en unos segundos y verán algo como lo siguiente:

Burp Proxy

El servidor responde con otro script, aparentemente también codifcado. Podemos copiar todo este código, guardarlo en un documento html y subirlo a este site que les mencione al principio, aqui podemos decodificarlo y ver que es lo que esta transfiriéndole ese servidor a nuestro equipo. Pero para seguir observando el Malware, hacemos clic en "Forward" en esta ventana para permitir que este paquete llegue a nuestra maquina virtual. Al hacer esto veremos pronto otra solicitud que hace la maquina al servidor del atacante:

Burp Proxy

Ahora nuestro equipo víctima hace otra solicitud al servidor "malicioso", solicita la ejecución de un archivo PHP (/forum/data/ap2.php), hacemos clic nuevamente en "Forward" para permitir esta solicitud y esperar la respuesta del servidor. Como se puede ver en los headers, en esta ocasión el servidor le envía a la maquina víctima un archivo PDF, es muy posible que sea un archivo "especialmente manipulado" que explote alguna vulnerabilidad en Acrobat Reader y se use para descargar/ejecutar codigo malicioso en el equipo víctima y continuar la infección del equipo. La ventaja de usar un proxy en el medio de la conexion entre la víctima y el atacante es que podemos facilmente reconstruir el archivo que envía el servidor y salvarlo en nuestro equipo. Para esto solo tenemos que hacer clic derecho en el cuerpo del reply del servidor, como se ve en el gráfico siguiente, y seleccionar "copy to file" e indicarle donde queremos guardar el archivo y con que nombre. En mi caso, lo nombre "pdf-bad.pdf".

Burp Proxy

  • Analizando el Archivo en Virus Total
Teniendo ya grabado nuestro PDF de dudosa reputación, podemos subirlo a Virus Total para analizarlo contra los motores de las principales casas antivirus. Por si no lo conocían, VirusTotal es un servicio gratuito que permite analizar tanto archivos como direcciones Web y como les dije los analiza con las versiones actuales de los principales motores antivirus. Es muy utilizada tanto para comprobar archivos sospechosos como nuestro PDF, como para comprobar que tan detectable seria ante los antivirus un ejecutable que hayamos creado. Como verán el PDF es detectado en 6 de los 42 motores antivirus contra los que VirusTotal lo evaluó, lo cual nos confirma que este PDF se trae algo entre manos, y que aparentemente es una explota alguna vulnerabilidad reciente ya que pocos motores antivirus lo reconocen (a la fecha en que hice la evaluacion), como se ve en el siguiente gráfico:

Virus Total


Hasta ahora sabemos que el archivo HTML que llego por correo contiene un script (codificado) que envía al navegador a un sitio web desde donde se ejecuta un archivo PHP que descarga a la maquina víctima un archivo PDF especialmente modificado que aparentemente explota una vulnerabilidad en Acrobat Reader. La versión que tengo instalada en la maquina virtual es la version 9.3 y esta es evidentemente vulnerable al exploit que contiene este PDF, ya que al permitir que llegue a la maquina victima, Internet Explorer llama a Acrobat Reader para abrir el archivo malicioso y al ejecutarlo (en background) realizara esta otra petición:

Burp Proxy

Aquí la maquina víctima solicita otra pagina PHP, a lo que el servidor responde con el archivo que se ve en el gráfico siguiente. Nuestro amigo en Rusia envía a nuestra victima un archivo ejecutable (contacts.exe), el nombre de este archivo varía, en otras ocasiones el servidor enviar "calc.exe". Al igual que hicimos con el archivo PDF, podemos copiar todo este contenido, guardarlo en un archivo en nuestra computadora, y subirlo a VirusTotal para ver como lo reconocen los motores antivirus.

Burp Proxy

Al momento en que subí este ejecutable a Virus Total, solo era reconocido por 4 casas antivirus, lo que quiere decir que es muy probable que si uno de los usuarios lo hubiese ejecutado, el antivirus no lo hubiese detectado. A esta altura ya tenemos el archivo ejecutable que se descarga del servidor del atacante, ahora queremos saber que como se comportaria este ejecutable, una forma seria usando la misma descripción que dan las casa antivirus que lo detectan, pero en el caso de este ejecutable las pocas que lo detectan lo describen de forma genérica. A continuacion veremos una forma sencilla de saber las actividades que realizaria este ejecutable en nuestro equipo sin tener que ejecutarlo nosotros.

  • Utilizando un Sandbox para analizar el Ejecutable

En esta parte utilizaremos el site GFI Threat Track, este sitio nos permite subir una muestra de un archivo para su análisis, luego nos envían un elegante reporte con todas las actividades que realiza el archivo que subimos, los archivos que crea, las conexiones que intenta hacer y hacia adonde, las claves del registro que modifica, etc., lo que nos economiza tener que seguirle nosotros mismo el rastro a este malware en el equipo virtual de prueba que tenemos, y lo mejor, el servicio es gratuito! Luego de unos minutos de haber subido el archivo, recibiremos un correo con el reporte anexo de todas las actividades que detectaron realiza nuestro archivo, el reporte es bien detallado y tiene varias paginas, nos servirá de ayuda para detectar este malware en otros equipos posiblemente infectados y evitar la infección de otros. En el siguiente gráfico se muestran algunas partes del reporte, porque como les dije tiene varias paginas. En esta gráfica se muestra en resumen algunas de las actividades que realiza este ejecutable:


Como pueden ver, nuestro amigo crea archivo ocultos, crea mutaciones de el mismo y borra el archivo original que descarga, hace conexiones de red, etc. Mas adelante en el reporte veremos los archivos que crea o modifica este ejecutable, las claves del registro modificadas y hacia adonde intenta conectarse, lo cual nos servirá para bloquear esta IP en nuestro Firewall:



Resumiendo, podemos decir que el atacante envía masivamente correos con un archivo HTML comprimido en un ZIP haciendo creer que el mismo es enviado por un Scanner en la red. El archivo HTML posee un script camuflajeado que solicita la descarga de un archivo PDF manipulado que explota cierta vulnerabilidad en Acrobat Reader (aparentemente en la versión 9.3), el codigo que se ejecuta tras explotar la vulnerabilidad descarga y ejecuta un archivo "EXE". Una vez este archivo se ejecuta, periódicamente nuestro equipo infectado envia informacion hacia varios servidores (intenta varios servidores en caso de que no pueda conectarse al primero de donde descargo el malware). La información que transmite el equipo infectado es aparentemente encriptada. Bueno, los mas avanzados dirán que esto no es nada nuevo, que es la forma tradicional en la que trabajan los malwares hoy en día, eso es cierto, pero creo que es interesante que nosotros mismos podamos ver por lo menos por arriba como se realizan estas actividades. 

A continuación algunas recomendaciones que entiendo nos pueden ayudar a evitar que este tipo de malware infecte a nuestros usuarios:

  1. Educar a los usuarios para que reconozcan este tipo de amenazas y entiendan el riesgo que estos traen consigo, enseñarlos a no abrir o ejecutar ningún archivo anexo que venga en un correo no solicitado o que no reconozcan la dirección o el remitente, y claro, a contenerse las ganas de hacer clic en todos los "OK" que se les presenten.
  2. Mantener los sistemas operativos y aplicaciones actualizadas, el PDF que descarga el archivo HTML no ejecuta el código que descarga el ejecutable si se abre con versiones recientes de Acrobat Reader.
  3. Filtrar el trafico de salida lo mas que se pueda, en el caso de este malware, intenta hacer conexiones a un puerto no standar (8080), muy pocas aplicaciones que utilicemos utilizaran este puerto, para las que lo usen podemos permitirlo, pero para la mayoría del trafico solo se debería permitir la conexion a traves de proxy y a los puertos standar (80 para HTTP y 443 para HTTPS).
  4. Restringir en lo posible el acceso a Internet de los usuarios, en el caso de que un usuario reciba y ejecute un archivo como este, si solo tiene permiso a navegar en ciertos sitios, este malware no se ejecutaria ya que no podría descargar ni el PDF ni el Ejecutable.
  5. Por ultimo tener un antivirus y mantenerlo actualizado, tanto en los clientes como en nuestro servidor de correo. Lo dejo de ultimo porque como pudimos ver en este ejemplo muy pocos antivirus (solo 4 de 42) pudieron detectar el archivo malicioso, por lo que no podemos apostar toda la seguridad de nuestro sistema a los antivirus.
Bueno, espero como siempre que esto les haya parecido interesante y sobre todo que les haya servido de ayuda.

Hasta el Próximo!

jueves, 7 de julio de 2011

Robo de cuentas de Hotmail usando las Preguntas de Recuperacion

En estos días he estado revisando las opciones de recuperación de password de algunas cuentas de Hotmail, específicamente las preguntas/respuestas de recuperación. Como todos saben Hotmail, al igual que Gmail y cualquier otro servicio de correo, ofrecen opciones para recuperar o resetear el password de la cuenta en caso de que, o la olvidemos, o alguien nos haya hecho el favor de cambiarla por nosotros en caso de encontrar nuestra cuenta abierta en alguna computadora o algún cibercafe. Muchos usuarios eligen una de las preguntas que Hotmail les ofrece, como "Nombre de la primera mascota", o "Cumpleaños de la Madre". Otros escriben sus propias preguntas, como en el caso de un buen amigo mio. Hace un par de noches estábamos chateando y le decía que ya tenia mi cuenta de Twitter para el blog (por cierto aprovecho para avisarlo a ustedes también :P ) y el me contesto que aprovechara y que lo siguiera a él para que aprendiera algo. En ese momento pensé que había encontrado un perfecto conejillo de Indias para probar las preguntas/respuestas que él había elegido.

Mientras el seguía hablándome de las cosas que podía enseñarme sobre seguridad y Hacking, yo entraba a la pagina de recuperación de cuentas de Hotmail e introducía su cuenta para que mostrara las opciones de recuperación que el había elegido, y efectivamente tenia entre las opciones "Security Question" o "Pregunta de Seguridad". La pregunta que tenia no era de las pre-hechas que Hotmail te presenta, había escrito su propia pregunta: "Cual es". Cuando vi esta pregunta se me ocurrieron un par de respuestas tan sencillas como la pregunta misma. Intente un par de respuestas: "la pregunta", "dimela" hasta que entonces probé con una respuesta muy sincera: "no lo se" y como si se hubiese tratado de alguna de esas pruebas de sinceridad u honestidad que le hacen a los caballeros en la películas, se me presento la muy esperada pantalla de reseteo de password que se muestra a continuación:

Hotmail Password Recover

Cuando vi esta pantalla, inmediatamente hice lo que tenia que hacer: Resetearle el password!!! Una vez lo había cambiado, me dirigí nuevamente a la pantalla del chat donde todavía se encontraba él diciendome que aunque su área no era el hacking o la seguridad, el tenia los recursos para enseñarme un par de cosas, a lo que yo le conteste "Ok, perfecto, primero intenta entrar a tu cuenta de Hotmail, y luego empiezas las lecciones", ya pueden imaginar su reacción cuando no pudo entrar a su cuenta, y mas aun cuando le di su nuevo password. Otro error que mucha gente comete es seleccionar preguntas personales que aunque uno no las sepa, hay formas muy sencillas para conseguirlas que solo requieren de un poco de paciencia y buscar en el sitio correcto. Por ejemplo, algunas personas elijen preguntas como "Fecha de Nacimiento de la Madre". Si no conoces bien a la persona puede que no sepas la respuesta, pero es muy seguro que puedas conseguir esa respuesta en su perfil de Facebook. La mayoría de las personas publican en su muro TODO lo que les pasa o cualquier acontecimiento que consideren importante, como el cumpleaños de algun familiar o amigo, y Facebook se encarga de mantener toda esa información para nosotros. Con un poco de paciencia podemos ver publicaciones de hasta un año atrás, incluso mas, pero hasta un año atrás es el máximo que he buscado.

Otra forma de buscar información puede ser buscando entre los contactos de esa persona. Puede ser que su madre (en el caso de la pregunta que usamos como ejemplo) también tenga Facebook y entre su información facilmente podríamos conseguir datos como su fecha de nacimiento, etc. Otras preguntas muy comunes como "Lugar de Nacimiento", "Escuela donde Estudio", "Personaje Histórico Favorito" pueden también encontrar respuestas en Facebook. Y el hecho de que no tengamos a esa persona agregada como amigo tampoco es problema, ya que la gran mayoría de personas aceptan todas las solicitudes de amistad de cualquier desconocido, aparentemente se sienten elogiados de que alguien quiera saber de ellos. Incluso, una forma mas sencilla de conseguir esas respuestas es hacerle la misma pregunta directamente como parte de una conversión (utilizando un poco de ingeniería social) y por seguro lo mas lejos que tendrán es que esa misma pregunta la eligieron para resetear su password en Hotmail.

  • Asegurando nuestra cuenta de Hotmail

Hotmail ofrece varias opciones para recuperar el password:
  • Utilizar una cuenta secundaria
  • Enviando en un SMS un codigo o token a un numero movil registrado
  • A traves de una PC de confianza
  • Pregunta de Seguridad
Como se imaginan, la primera opción nos permite indicar una dirección de correo a la cual se nos enviara un mail con un link para reestablecer nuestro password. Si vamos a utilizar esta opción, tenemos que asegurarnos de que la cuenta que elegimos esta asegurada contra el tipo de cosas que hablamos mas arriba, o de nada nos servirá intentar asegurar esta cuenta. Personalmente tengo una cuenta de Gmail, que , a mi entender, maneja mejor el proceso de recuperación de cuentas. También tenemos que tener en cuenta donde tenemos configurada esta cuenta, por ejemplo, si tenemos esta cuenta configurada en un programa como Thunderbird o Outlook, tenemos que tener cuidado con quien tiene acceso a la computadora donde esta configurada, o alguien podría iniciar el proceso de recuperación de la cuenta, acceder a la computadora y esperar a recibir el mensaje, en ese caso, perdimos nuestra cuenta y nuestro amigo obtuvo su venganza.

El segundo método parece seguro. Introduces tu numero de móvil y en caso de necesitar recuperar tu cuenta, HotmailSMS al celular que registraste (supuestamente, porque intente probarlo y todavía estoy esperando el SMS). Pero entonces pensé, y que tal si se me olvida en el celular en algún sitio, o si mi amigo sediento de venganza me pide el celular un minuto y en ese momento aprovecha para solicitar la recuperación de la cuenta a través del SMS? Desistí inmediatamente de la idea de utilizar este método.

El siguiente método es a través del uso de una "PC de Confianza", para utilizar este método es necesario instalar "Windows Live Essentials". Realmente no llegue a probar este método, pero no me gusto la idea de una computadora de confianza desde la que se pueda realizar este proceso, por el mismo caso que con el celular. En cualquier descuido podría alguien (mi amigo sediento de venganza) pedir el reseteo de mi cuenta, así que también ignore esta opción. Claro, esto es en mi caso, puede ser que resulte efectivo para una persona que tenga una computadora a la que solo el pueda tener acceso.

El ultimo método, y el que da origen a este post, es el de la Pregunta de Seguridad. Particularmente llegue a la conclusión de que esta opción puede utilizarse de una forma que resulte difícil responderla simplemente adivinando o buscando la posible respuesta en Facebook. La recomendación seria elegir incluso una de las preguntas predeterminadas, pero que la respuesta sea algo totalmente divorciado de la pregunta. Por ejemplo, si elegimos la pregunta "Fecha de Nacimiento de la Madre" podríamos responderla con algo como "h0y llegue tarde al w0rk", incluso sustituyendo caracteres, como tipo "Pass Phrase". De esta forma nuestro amigo se gastara los dedos intentando (en el caso del ejemplo) escribir la fecha de nacimiento en varios formatos intentando contestar nuestra pregunta. Claro, tenemos que tener cuidado de escribir una respuesta que se nos vaya a olvidar y que luego no estemos nosotros intentando contestar la pregunta con una respuesta que corresponda a la pregunta. En caso de que necesitemos guardar esto, recomendaría utilizar TruCrypt , crear un volumen encriptado y guardar en este el archivo con la pregunta/respuesta de recuperacion. Otras opciones importantes para asegurar nuestra cuenta son habilitar SSL para la conexion a Hotmail.com, de modo que cada vez que nos conectemos a Hotmail se haga a través de una conexion segura, y habilitar la opción de que nuestro password caduque cada 72 dias. Esta ultima le da un tiempo de vida de 72 días a nuestro password.

En fin, desde que pude resetear el password mi amigo, siempre estoy pensando en que él debe estar buscando la manera de hacerme lo mismo, seguro ha revisado mis opciones de recuperación, y desde entonces he tratado de tomar todas las medias posibles para evitarlo. Pero creo que hoy en día así es como debemos estar, alertas, un poco paranoicos, pensando en que alguien esta tratando ya sea de robar nuestra identidad en linea, nuestra cuenta, o ya en el ámbito empresarial, de entrar a nuestros sistemas, robar información o causar algún daño en nuestra red, y como buenos Tipos de Informática debemos asegurarnos de tomar todas las medidas que estén en nuestro alcance para minimizar este riesgo.

Bueno, en resumen, mis recomendaciones para tratar de minimizar el riesgo de que nos roben nuestra cuenta son:
  1. Elegir un password fuerte: por lo menos 8 caracteres que incluya Mayúsculas, minúsculas, números y algún carácter especial.
  2. Habilitar SSL en Hotmail
  3. Activar que nuestro password caduque cada 72 días
  4. Si elegimos el método de recuperación por pregunta de seguridad, responder a la pregunta con algo totalmente alejado de la respuesta.
Bueno, no soy un experto en seguridad ni pretendo aparentarlo, y mucho menos un Hacker, pero creo que estas medidas pueden mantener lejos de nuestras cuentas por lo menos a los curiosos que intenten hacerte alguna maldad reseteando tu password. Espero que esto les sea de ayuda, y si mi amigo al que le resetie el password esta leyendo esto, por favor no intentes con la respuesta que puse de ejemplo, porque exactamente esa es la que estoy usando :P

Hasta el Próximo!