martes, 25 de noviembre de 2008

Port Knocking: Despistando a los intrusos

Hola!

Hoy vamos a ver una técnica que nos va a venir de perlas para, de algún modo, encubrir los servicios que corren en nuestra maquina.

Imaginemos que tenemos un PC que actúa como servidor, y en el tenemos instalado un FTP (wu_ftpd por ejemplo, que tiene bastantes vulnerabilidades en según que versiones). Cualquiera que hiciera un barrido de puertos con nmap podría ver que tenemos un precioso puerto 21 abierto, incluso podría averiguar que versión de FTP utilizamos con el mismo nmap o a través de telnet.
Esto empieza a ser preocupante, una sola búsqueda en bugtraq, SecurityFocus o MilWorm podria poner los dientes largos a nuestro atacante y poner en jaque nuestra seguridad.

El caso es que a nmap no es fácil engañarlo, porque si un puerto esta filtrado, lo va a detectar igual, pero no va a saber que servicio corre en el. Ejemplo:

Resultado de nmap con puerto 22 abierto:



Resultado de nmap con puerto 22 filtrado con iptables:


Como podemos ver, en el primer caso no solo ha averiguado que usamos OpenSSH, incluso ha sabido que SO utilizamos!!!
En el segundo caso hemos filtrado las conexiones con una sencilla regla de iptables:

slayer@Erhard:~$ sudo iptables -A INPUT -s ip-que-permitimos -p tcp --dport 22 -j ACCEPT

Así solo pasa esa IP por el puerto 22, ademas si hacemos:

slayer@Erhard:~$ sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Ahí ya no entra ni Dios.

Todo esto es muy bonito, pero claro, tiene una pega ¿¿Como voy a saber yo desde que IP me voy a conectar a mi servidor SSH?? Cada vez que me conecte desde fuera voy a tener
una IP publica distinta, y si filtro por una IP que no tengo no me voy a conectar.

¿Como solucionamos esto?


Con Port-Knocking, una técnica mediante la cual, haciendo una "llamada" a determinados puertos con un determinado orden nos abre el puerto de un servicio conocido, como SSH o FTP.

Nosotros por defecto vamos a cerrar el puerto 22 a todo ser viviente:

slayer@Erhard:~$ sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Y a continuación, con netcat, abrimos un puerto alto, el 5000, el cual, al conectarnos, abrirá el puerto 6000 durante 10 segundos. Esto de los 10 segundos tiene un sentido, si alguien nos sniffara veria que conectamos con el puerto 5000, el único abierto, y finalmente que nos conectamos a ssh, pero no podrá conectarse a el, entonces tratara de hacer un nuevo barrido con nmap, y vera el puerto 5000 abierto y el 22 cerrado, como el 6000 solo ha estado 10s abierto ni llegara a detectarlo... ;) (todo esto lo podemos complicar haciendo la llamada a mas puertos... of course)

slayer@Erhard:~$ sudo nc -l -p 5000 -c "nc -l -p 6000 -q 10 -e 'sshon.sh'" >/dev/null 2>&1 &

Con esta instrucción conseguimos nuestro propósito, y ademas, al conectarnos al puerto 6000 este ejecutara un script llamado sshon.sh que podría tener un contenido como este:

#!/bin/bash
#sshon by SLaYeR
#Open especific port in IpTables

IP=`netstat | grep 5000 | awk '{print $4}' | cut -d: -f1`
PORT=22
iptables -D INPUT -p tcp --dport $PORT -j DROP
iptables -A INPUT -S $IP --dport $PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $PORT -j DROP
if [ $? == 1 ]; then
echo "Debes de ser root para ejecutar el comando"
fi

Que si observáis lo que hace es recoger la IP que se conectó al puerto 5000, eliminar la anterior regla que deniega el trafico al puerto 22, nos habilita el acceso desde la nueva IP y vuelve a denegar el resto de trafico.

Así, para conectarnos a SSH, primero, mediante netcat conectaríamos con el puerto 5000, a continuación con el 6000 y después (mejor desde otra consola) conectaríamos con SSH:

slayer@Erhard:~$ sudo nc xxx.xxx.xxx.xxx 5000 && nc xxx.xxx.xxx.xxx 6000 && ssh slayer@xxx.xxx.xxx.xxx

Podemos hacerlo mediante este comando o con varios terminales. Solo recordaros, que esta regla seguirá vigente hasta que la eliminemos, así que o bien esperáis a llegar a casa para quitarla, o en lugar de cerrar sesión con SSH, elimináis la regla que os da acceso y ya os echa el solito...XD

viernes, 10 de octubre de 2008

El gigante con pies de barro

Segun informan desde Hispasec, se ha detectado una nueva y importante vulnerabilidad en el protocolo IP. Es la tercer gran fallo que se descubre año sobre el diseño de internet y alguien deberia ya tomar cartas en el asunto antes de que las consecuencias puedan ser peores.
Aquí dejo la noticia, tal cual esta en la web de hispasec.

02/10/2008 Supuesta vulnerabilidad en el protocolo IP pone (de nuevo) en riesgo a toda la Red

Una empresa finlandesa llamada Outpost 24 dice haber descubierto un fallo en el Internet Protocol (IP) que puede provocar una denegación de servicio en todo dispositivo que lo use. Teniendo en cuenta que es la base sobre la que se sustenta toda Internet, es equivalente a decir que se puede provocar la caída de cualquier aparato con comunicación en la Red. Es la tercera "gran alerta" del año. ¿Necesita Internet una puesta a punto?
En realidad ni siquiera se podría llamar "denegación de servicio" tal y como lo conocemos hoy en día. Más bien se trataría de una especie de (mítico) "ping de la muerte" en el que, con muy poco tráfico (10 paquetes por segundo) se podría llegar a colapsar cualquier dispositivo que implemente la especificación del protocolo base. Al parecer se trataría de uno de los mayores problemas detectados en la Red que la volvería insostenible de forma relativamente sencilla.
No se han ofrecido por tanto muchos más detalles. Parece que el problema surgió durante el escaneo de varios millones de sitios en Internet. Alguno de estos tests (realizados con la herramienta Unicornscan) hacía que los sistemas dejaran de responder, y tras una investigación se concluyó que existía un problema en todas las implementaciones de la pila TCP/IP. Aunque afecta de distinta manera, se supone que todas son vulnerables y que todavía no han encontrado ningún dispositivo que no puedan bloquear.
Los investigadores han conocido este problema desde 2005. Según dicen, no han podido encontrar por el momento una solución válida, pero tampoco quieren difundir los detalles por el peligro que supondría el conocimiento público. Advierten que, incluso con IPv6 el problema podría ser incluso más grave.
Darán más detalles sobre el problema el 17 de octubre, durante una conferencia en Helsinki. Afirman tener una herramienta llamada sockstress capaz de "tumbar" cualquier dispositivo. Aunque la información es confusa (y habría que tomarla con cautela mientras no se tengan detalles), parece que el problema está directamente relacionado con la técnica de las "SYN cookies". Se utilizan precisamente para evitar que un atacante pueda realizar una inundación de paquetes SYN. Básicamente se "recuerda" con esta cookie a quien ha realizado la conexión y se evita que se falsee la dirección y se perpetre el conocido ataque (abriendo conexiones a medio realizar que consumen memoria y agotando los recursos del dispositivo).
Es la tercera gran vulnerabilidad del año que pone en peligro a toda la Red. En primer lugar fue Kaminsky con su problema DNS. El 8 de julio todos los grandes y pequeños fabricantes parcheaban sus sistemas DNS. Kaminsky había descubierto meses antes un fallo que permitía falsificar cualquier IP asociada a un dominio. Poco después en agosto, durante la Black Hat, se habla de nuevo de la mayor vulnerabilidad de Internet, cuando Tony Kapela y Alex Pilosov demostraron una nueva técnica que permite interceptar el tráfico de Internet a una escala global. Cualquiera con un router BGP podría interceptar el tráfico de cualquier gran nodo y devolverlo (modificado o no) de forma transparente.
Y vuelve a ocurrir, repitiendo prácticamente el mismo escenario. En los tres casos se trata de un problema de diseño de un protocolo creado muchos años antes. En los tres casos parece haber una demostración empírica de un problema conocido pero cuyas posibilidades o puesta en práctica se suponía imposible hasta la fecha... Incluso el hecho de revelar detalles en una conferencia posterior con la que se crea una gran expectación. Como le ocurrió a Kamisky, es posible que todos los detalles del problema salgan a la luz antes de lo esperado si algún investigador decide juntar todas las pistas ofrecidas por Outpost 24.
Es más que posible que aunque los detalles fueran conocidos desde hace 3 años, haya sido precisamente lo ocurrido con el fallo DNS y con BGP lo que haya animado a los investigadores a darle publicidad precisamente ahora. Kaminsky demostró que se puede realizar una actualización masiva y coordinada entre todos los grandes fabricantes y mantener en secreto los detalles de un grave problema (siempre que no se divulgue su existencia).
Nos encontramos posiblemente también ante una nueva era en la Red en la que, a través de estos graves errores puestos sobre la mesa, estamos cuestionando su sostenibilidad tal y como la conocemos. Usamos protocolos diseñados, cuando menos, hace 20 y 30 años. Los ingenieros estaban mucho más sorprendidos por el hecho de que la Red simplemente funcionase que preocupados por la seguridad. Hacer que un trozo concreto de información digital concreta llegase de un punto a otro del planeta era algo demasiado fantástico como para complicarlo previniendo si alguien la iba a podía modificar, alterar u obtener de forma ilegítima. Posteriormente, sobre estos débiles pilares, se ha construido algo muchísimo más complejo y unido millones de personas y dispositivos con muy distintas motivaciones. Para abarcar toda esta explosión, se ha ido parcheando sobre la marcha un monstruo gigante con pies de barro que, a la vista de estos tres recientes acontecimientos (y de otras preocupaciones de largo recorrido, como el malware ganando la batalla a los antivirus), necesita una clara revisión y puesta a punto.

miércoles, 8 de octubre de 2008

Montar unidades remotas de Windows en Ubuntu

Hola!

Antes que nada pedir disculpas por el tiempo inactivo (una barbaridad... XD), la verdad es que estoy bastante liado, entre mis estudios, el CCNA, algunos cursos de Seguridad...

Bueno al lío!

Vamos a ver como montar carpetas compartidas remotas de Windows en Ubuntu. Es algo que me ha surgido a raiz de estar haciendo un curso en la EPSA y necesitar acceder a recursos compartidos.

El primer paso, instalar smbclient y smbfs, fácil no?
slayer@SpongeBob:~$ sudo aptitude install smbclient smbfs
Segundo paso, editar el /etc/fstab:
slayer@SpongeBob:~$ sudo nano /etc/fstab

y añadir la siguiente linea:
//servername/recurso /media/mountname smbfs sername=myusername,password=mypassword 0 0

Substituyendo obviamente los campos ejemplo por datos reales ;)

Pero, dado que /etc/fstab es legible por todos los usuarios, es evidente que no conviene tener escritas las contraseñas Windows en claro. La forma de evitarlo es utilizar un fichero de credenciales, del que controlaremos los permisos y que contienen únicamente el usuario y su contraseña:

slayer@SpongeBob:~$ sudo nano ~/.smbcredentials
Añadir las siguientes líneas:
username=myusername
password=mypassword

Ahora se modifican los permisos del fichero para que sólo el usuario pueda leerlo y escribir en él.
slayer@SpongeBob:~$ sudo chmod 600 ~/.smbcredentials

y volvemos a modificar el fstab:
//servername/sharename /media/mountname smbfs credentials=~/.smbcredentials 0 0


Para montar las unidades lo hacemos tal cual siempre lo hemos hecho, con mount:
slayer@SpongeBob@:~$ sudo mount /media/mountname


y para desmontar os lo dejo a vuestra imaginación ;)

Saludos, nos vemos!

miércoles, 30 de abril de 2008

Firestarter Firewall

Hola!
Aprovechando la reciente salida de Ubuntu 8.04 Hardy Heron y con la incorporación del UFW (Uncomplicated Firewall) voy a comentar una alternativa, que si no es mejor, es mas Uncomplicated que el propio UWF.

La verdad es que el UWF parece ser víctima de los plazos de tiempo, pues en pleno 2008, incorporar un firewall en modo texto a una distribución orientada al publico en general me parece un paso atrás... para eso me quedo con IPTables ;)

Así que se me ha ocurrido hablar de Firestarter, un sencillo y eficaz firewall con una GUI completa que permite gestionar a la perfección la configuración de las reglas.

Su instalación es tan simple como un
slayer@ErhArD:~$ sudo apt-get install firestarter
A continuación, se os debe de haber creado en Aplicaciones->Internet un nuevo acceso a Firestarter, en caso contrario lo podéis crear vosotros haciendo un lanzador que apunte a sudo firestarter (recordad que hay que ejecutarlo como root).

Una vez lo ejecutéis os saldrá un asistente la primera vez:

Asistente

A continuación se os pedirá una sencilla configuración.
Es posible que cuando acabéis de configurar el Firewall os salte un error adivirtiendoos de que no se puede arrancar el Firewall porque eth0 no se encuentra disponible... que no cunda el pánico.
Solo tenéis que ir a /etc/firestarter/firestarter.sh y hacer una pequeña modificación en la linea 20 (mas o menos).

MASK=`/sbin/ifconfig $IF | grep Mas | cut -d : -f 4`

hay que modificarlo a:

MASK=`/sbin/ifconfig $IF | grep Más | cut -d : -f 4`

Es decir, añadir el acento en la "a", pues al tener el interface en español el grep no encuentra la cadena que empieza con Mas, de Máscara... ;)

Con esto ya os arrancara el Firestarter, y a partir de ahí ya podéis dedicaros a configurarlo un poco mas a vuestro gusto ;)

Os dejo dos capturas mas, una de la ventana principal y otra de una de las pestañas de la configuración.

Ventana principal

Preferencias

En fin, esto es todo!
Salu2!

jueves, 27 de marzo de 2008

Navegando en 3D

Mas novedades!

Si creíais haberlo visto todo en navegadores, o creías estar a la ultima por tener el Firefox con petacientosmil pluggins, prepararos para el futuro de la navegación web, navegar en 3 dimensiones!!

Pogo se llama el responsable de este cambio de perspectiva, y los famosos laboratorios AT&T sus desarrolladores.
Viendo el vídeo parece un poco extraño, sinceramente yo no acabo de pillar del todo como se navega, pero seguro que me adapto ^^



Tal vez con la imagen veáis un poco mejor el navegador:



Lo siento por quien quiera probarlo, pues de momento se encuentra en fase beta privada, habrá que esperar un poco aún...

Sin mas que contar... Salu2!

jueves, 20 de marzo de 2008

BigDog: Un robot todoterreno

He leído en Microsiervos de un nuevo robot, diseñado por Boston Dynamics para DARPA, que con cuatro patas y unos movimientos idénticos a los de un animal es capaz de caminar por cualquier terreno, y a una velocidad bastante respetable por lo que se puede apreciar en el video:



Ya era hora de ver un robot con movimientos tan increibles como estos y no los tipicos robots que suben escaleras y dicen hola con la mano, se nota que aquí sí ha habido una buena inversion en I+D...

Realmente acojona lo que puede llegar a hacerse con tamaña bestia, porque si es capaz de cargar 150kg a sus espaldas ya me imagino de que acabara cargado, y sus usos militares pueden llegar a ser infinitos. Esperemos que lleguen a usar estos engendros con seriedad y un poco de sentido común.

Salu2!

jueves, 6 de marzo de 2008

Escritorio Remoto con VNC

Hola!

Hoy quiero hablaros de algo que hará vuestra vida algo mas cómoda, en el caso de que uséis varios PC's separados por una distancia considerable (1,5m ya se considera un desplazamiento grande XD).
El tema esta en conseguir un escritorio remoto de una maquina separada en la distancia (de momento dentro de la misma LAN) desde vuestro Linux. Para ello vamos a usar la aplicación VNC, que nos permitirá obtener estas conexiones de forma fácil y sencilla ;)

Cito de la wikipedia:
VNC es un programa de software libre basado en una estructura cliente-servidor el cual nos permite tomar el control del ordenador servidor remotamente a través de un ordenador cliente. También llamado software de escritorio remoto. VNC permite que el sistema operativo en cada computadora sea distinto: Es posible compartir la pantalla de una máquina de "cualquier" sistema operativo conectando desde cualquier otro ordenador o dispositivo que disponga de un cliente VNC portado.
Conociendo mas o menos la idea de lo que es VNC procedemos a obtener los paquetes que nos harán disfrutar de esto (describiré los pasos en Debian/Ubuntu, en otras distros sera similar):

apt-get install vnc
Esto instalara el paquete virtual de VNC con sus complementos habituales, tales como el vnc, sus librerías, el visor... etc.
Antes de seguir con todo esto, advertiros a los que no lo sepáis, y recordaros a los que ya lo sabéis, que el sistema de escritorios de Linux (Gnome, KDE, Flux, XFace...) utiliza una arquitectura cliente/servidor; lo cual implica que cada sesión de escritorio este escuchando de un puerto distinto y nos pone un impedimento en nuestro quehacer, pues no podremos obtener la pantalla de la sesión activa actualmente, sino que cada vez que conectemos estaremos abriendo una nueva sesión en la maquina remota.
Pero no sufráis... esto tiene solución en forma de paquete .deb ;)
Instalando el x11vnc paliaremos este efecto y podremos tener el escritorio de la sesión actual. Por tanto, antes de instalar el vncserver de toda la vida, recomiendo que instaléis esta versión ;)

La conexion con la maquina servidor se realizara mediante vncviewer, las versiones mas modernas de Ubuntu lanzan un entorno gráfico cuando ejecutas vncviewer por consola, en donde solo tienes que especificar el nombre de la máquina que actúa como servidor y, opcionalmente, el puerto de conexión:

slayer@ErhArD:~$ vncviewer NeMeSiS:8990

La primera vez que inicies el servidor x11vnc te advertirá de que no tienes asignada una contraseña para el servicio, y al mismo tiempo te proporcionara información para asignarla, sigue los pasos, no tiene mayor complicación.

Hay que tener en cuenta que la conexión con VNC no utiliza cifrado, si estamos en una red insegura cualquiera podría ver el password o todos lo que hagamos en el escritorio remoto. Una posible alternativa es utilizar los túneles SSH para que los datos viajen cifrados, para esto es necesario tener un servidor SSH configurado en la máquina que tiene instalado x11vnc.

Desde un PC ejecutaríamos en una consola:
$ ssh -L 2000:servidor:5900 user@servidor -N

Y en otra diferente:
$ vncviewer localhost:2000

El primer comando crea un túnel cifrado entre nuestra máquina y el servidor, los datos que enviemos a nuestro puerto 2000 irán a parar al puerto 5900 del ’servidor’ (también podría ser una IP) y para esto utilizaremos nuestro usuario “user” del servidor “servidor” (el mismo que el anterior). Este tipo de túneles también podríamos utilizarlos para otros servicios diferentes a VNC.
El segundo paso es conectarnos a nuestro puerto local 2000 como si tuviésemos ahí un servidor VNC.

Si buscáis en los posts pasados podréis leer algunos artículos mas sobre SSH si os interesa ;)

Con todo esto ya deberíais estar realizando vuestras propias conexiones con maquinas remotas.

Si tenéis dudas ya sabéis, comentarios o Google ;)

Hasta la próxima!

miércoles, 13 de febrero de 2008

Virtualización de sistemas

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

Parte 1 : Introducción a la virtualización

Parte 2: Maquinas virtuales en Windows

Parte 3: Máquinas virtuales en Linux
---------------------------------------------------------------------------

Parte 1 : Introducción a la virtualización

En este nuevo articulo, os voy a hablar de una nueva tecnología que esta ahora emergiendo (aunque hace ya años que se esta desarrollando) que puede marcar una época y sobre todo una manera diferente de ver y gestionar las computadoras. Esta nueva tecnología se llama virtualización y nos esta llamando ya a la puerta de casa. Os dejo esta frase, dicha por Robert B. Crooke (Intel), que puede resumir lo que será la virtualización: "la virtualización es una de las tecnologías más revolucionarias de la década, y nuestra tecnología combinada con los esfuerzos conjuntos de la industria ayudarán a llevar esta revolución al mercado masivo de PCs”.


Al usuario doméstico, normal, de ir por casa, lo que quiere es que el tiempo de respuesta de la computadora sea lo mas pequeño posible (es decir, que cuando le demos al botón, se nos muestre la información tan rápido como sea posible). Por contra, a los administradores de sistemas quieren que la productividad de la máquina sea lo mas alta posible, aun cuando aumentemos un poco el tiempo de respuesta. En términos estadísticos podemos decir solo aprovechamos la mitad de la capacidad de cálculo de los servidores, mientras que el tiempo restante, la máquina no hace nada productivo. En ese afán por disminuir ese tiempo "muerto" han surgido ideas como la virtualización para rellenar ese vacío.

La idea principal de la virtualización consiste en montar un sistema operativo virtual encima de un sistema operativo base. Dicho de otra forma, podemos tener un sistema anfitrión Linux y encima de este sistema base, hacer correr otro SO como pueda ser Linux o FreeBSD. Cada nuevo sistema que queramos lanzar encima del SO anfitrión constituirá una nueva maquina virtual, la cual tendrá acceso a todos los recursos del hardware (como si no estuviera montado sobre otro SO), pero a la vez también estará aislada dentro del sistema operativo anfitrión, de manera que si se produce algún fallo en la máquina virtual, este solo afectará a la máquina virtual en cuestión y no a todo el sistema base. Las ventajas que nos ofrece la virtualización son muchas y muy grandes. Por ejemplo, parémonos a pensar en un entorno de una pequeña empresa, que empezó con un servidor que registraba las llamadas. Era un Pentium PRO, y estaba sobrado, pero en seguida tuvieron que agregar otro, ya que los procesos de facturación ahogaban a los procesos de tiempo real (era solo un día al mes, pero ese día perdían registros de llamadas). Luego agregaron otro servidor de backup. Después vino otro para las estadísticas. Luego vino otro, esta vez para Web server, ya que teníamos que separarlo de las bases de datos criticas. Y así así hasta alcanzar unas 50 máquinas. Casi todos usaban la CPU a menos del 5% y aparte había que añadirle la dificultad de la administración los servidores. Aquí es donde entra en juego la virtualización en su mejor faceta. Cojo un servidor, instalo un sistema base y a partir de ahí (sobre él) instalo el sistema operativo que mejor desempeñe nuestra tarea (un sistema para cada tarea si lo vemos oportuno incluso), donde cada uno de estos nuevos sistemas estarán asilados el uno del otro.
Perdonen por esta aburrida historieta, pero no crean que estoy exagerando o que esto no ocurre en la realidad, ya que la historia que les he contado es real (aquí les dejo el enlace) y es un ejemplo perfecto de la gran utilidad que tiene la virtualización.

Y para el usuario doméstico, que es la gran mayoría, ¿cuales son las ventajas que aporta esta nueva tecnología? Para empezar, podremos crear diferentes maquinas virtuales de los diferentes sistemas operativos que queramos para poder hacer nuestras pruebas, con la garantía de que si ocurre un fallo (llámale "destrucción" de parte del sistema operativo, infección de algún tipo de virus, etc., etc.) en la máquina virtual, no afectará para nada en la máquina base (las máquinas están totalmente aisladas). También podremos crear nuestra propia red de ordenador, simulando distintas máquinas virtuales conectadas entre ellas como si fuera una red real (podremos acceder a las máquinas virtuales como si de ordenadores físicos se trataran). Estas y muchas otras cosas son posibles gracias a la virtualización.

Entrando ya de lleno en el tema en si, podríamos distinguir entre dos grandes clases de virtualización: la virtualización por hardware y la virtualización por software (que utiliza o puede aprovecharse de la virtualización por hardware).

Todos hemos escuchado últimamente que Intel ha incorporado a sus nuevos procesadores la tecnología de virtualización. Lo que incorporan estos nuevos procesadores es un nuevo conjunto de instrucciones máquinas que faciliten y mejoren las posibilidades de virtualización. Paralelamente a estas nuevo set de instrucciones, también están saliendo al mercado procesadores de doble núcleo, quad, incluso en un futuro no muy lejano de ocho núcleos. Estos nuevos procesadores permiten dedicar cada procesador a una maquina virtual distinta y aislar la ejecución de los sistemas operativos virtuales y que estos hagan un uso intensivo de su propia cpu.

Tanto para los procesadores Intel como AMD (tanto para servidores, como para usuarios domésticos) la tecnología de virtualización ya esta en el mercado. La tecnología en Intel se llama Intel VT (IVT) y en AMD se llama AMD virtualization (AMD-V ) también llamado Pacifica. Intel ya había incorporado la tecnología de virtualización a sus servidores, pero ahora la extiende a máquinas domésticas.

Repasando un poco la historia, podemos darnos cuenta que hace ya 30 años IBM implementó ya la tecnología de virtualización, pero es ahora con la exportación al usuario doméstico cuando se ha dado a conocer masivamente.

Por lo que respecta a la virtualización por software, me refiero con este término (no se si realmente será el mas adecuado o no) a la instalación de un software sobre un sistema operativo que me permita virtualizar parte o totalmente el sistema. Existen muchas clases de virtualización según el grado en que este emulado el sistema: emulación, virtualización parcial o completa, virtualización de aplicaciones, paravirtualización, virtulización de servidores... . Es decir, podemos emular todo el PC (incluyendo el procesador,RAM,etc), o solo algunas partes básicas del sistema. Nosotros nos centraremos en el tipo de virtualización denominada virtualización completa que nos permite crear una máquina virtual sin virtualizar la CPU. Emularemos en la máquina virtual casi todo el hardware (tarjeta de sonido, tarjeta de red, RAM, disco duro, BIOS,... ) menos la CPU. Para permitir este tipo de virtualización existen múltiples programas que nos lo permiten hacer y que se ejecutan sobre muchos sistemas operativos.


Como hemos estado viendo la virtualización es una opción a tener en cuenta a corto y largo plazo debido a sus múltiples ventajas, a propri para sistemas servidores, pero poco a poco también para el usuario doméstico. Por eso no nos ha de extrañar que empresas como SUN compren Innotek, compañía creadora de VirtualBox.

Vamos pues a ver distintos softwares que tenemos, tanto para la plataforma GNU/Linux como Windows, para la creación de máquinas virtuales.

viernes, 11 de enero de 2008

Wesside-ng: la nueva herramienta de la suite aircrack

Navegando por la red me encuentro una persona que dice haber roto el cifrado WEP en un minuto. ¿Queee? ¿Como puede ser eso? La curiosidad me mata y entro para ver como lo ha hecho.....

Pues parece ser (todavía no lo he probado, pero no tardare mucho en hacerlo) que los creadores de la suite aircrak-ng, han sacado una nueva herramienta llamada wesside-ng que permite romper las claves en un minuto. Además de mejorar la técnica para poder obtener la clave en menos tiempo, ahora únicamente tenemos que teclear un comando (wesside-ng -i wireless interface name) y automáticamente obtendremos la clave en poco tiempo.
Esta claro que nadie duda de la potencia de esta nueva herramienta, pero perdemos aquí (por su supuesta simplicidad) "la magia" de entender un poquito como funciona todo este mundo de las claves WEP, sus problemas de seguridad y como poder atacarlos (los diversos ataques que podemos realizar) .

Parece ser, que en la versión 3 de backtrack, ya que encuentra disponible esta herramienta. En el siguiente vídeo se muestra un ejemplo de como romper la clave en un minuto y poco:
http://www.ethicalhacker.net/content/view/167/2/

El nuevo mecanismo que utiliza wesside-ng para la obtención de la clave es el siguiente:
  1. Va saltando de canal buscando una red wireless con clave WEP.
  2. Una vez que encuentra una red, intenta autenticarse. Si la autenticación falla, entonces el programa intenta encontrar una dirección MAC que se haya asociado con el AP para engañarlo.
  3. Una vez que el programa se ha autenticado satisfactóriamente intenta asociarse con el AP.
  4. Despues de snifar un simple paquete de datos, procede a descubrir los 128 bytes de un PRGA enviando paquetes “broadcasts” e interceptando los paquetes de respuesta. Esto es lo que se conoce como ataque de fragmentación. El PRGA se escribe en el archivo prga.log.
  5. Despues esnifa un “ARP request” y desencripta la dirección IP usando la técnica “linear keystream expansion”. Esto se usa para construir la petición ARP que se usará para la inyección.
  6. Inunda la red con peticiones ARP para esa dirección IP.
  7. Lanza el aircrack-ng PTW attack para determinar la clave WEP.

Esta y mucha mas información la podemos encontrar en la página web del proyecto:
http://www.aircrack-ng.org/doku.php?id=wesside-ng.es

A disfrutar! Un saludo!