25/01/2010

Vulnerabilidad local de escalación de privilegios

Introducción

El siguiente exploit aprovecha una vulnerabilidad que afecta a la totalidad de sistemas operativos Windows de 32 bits y proporciona un intérprete de comandos con privilegios de SYSTEM al usuario que lo ejecuta.

La vulnerabilidad se encuentra en la gestión al ejecutar aplicaciones de 16 bits. A día de hoy no existe parche para los sistemas afectados. La solución consiste en deshabilitar el soporte a las aplicaciones de 16 bits pero esto provoca que las mismas dejen de funcionar y sea necesario actualizarlas para que puedan ejecutarse en 32 bits.

La explotación

1. Buscamos en Google 'kitrap0D packetstorm' y enlazamos:

2. Volvemos a enlazar en 'mswinnt-pwn.txt':

3. Buscamos en el txt el siguiente url y descargamos el zip:

4. Abrimos el zip y arrastramos sobre el escritorio los siguientes ficheros:

5. Ejecutamos 'vdmallowed' y obtenemos un intérprete de comandos conprivilegios de SYSTEM. Ahora, por ejemplo, ejecutando 'compmgmt.msc' es posible modificar las cuentas de usuario:

La 'solución'

Impedir el acceso a aplicaciones de 16 bits:

Más información

Publicada por aLu | Enlace | Categorías: Seguridad, Sistemas, Microsoft

30/04/2009

Dos casos de recuperación con Cisco ASA

En ésta práctica veremos dos tipos de recuperación:

  • Recuperación de la contraseña Enable.
  • Recuperación de una imagen borrada.
Recuperación de la contraseña Enable

Si por algún motivo olvidamos la contraseña Enable, todavía tenemos la posibilidad de reescribirla siguiendo el proceso que explicamos a continuación.

La serie 5500 de dispositivos ASA de Cisco utilizan un registro de configuración para definir la configuración de arranque del dispositivo.

Por defecto, el arranque normal utiliza un registro de configuración con valor 0x1. Si queremos arrancar el dispositivo y que no cargue en RAM el fichero de configuración almacenado en la NVRAM y que contiene la contraseña olvidada, debemos modificar el registro de configuración al valor 0x41.

El primer problema lo encontramos cuando intentamos modificar este registro de configuración. Para poder modificarlo tenemos que entrar en modo privilegiado y es imposible entrar sin introducir la contraseña Enable.

Por lo tanto, tenemos que modificar el registro de configuración de otra forma, por ejemplo desde el modo ROMMON.

Para entrar en modo ROMMON, reiniciamos el ASA y presionamos la tecla ESC. Una vez dentro:

rommon #0> confreg 0x41
rommon #1> boot

Cuando aparece el prompt, entramos en modo privilegiado, después en modo configuración, copiamos el fichero de configuración de la NVRAM a la RAM, cambiamos la contraseña de Enable, reestablecemos el registro de configuración a 0x1, copiamos la configuración activa a la NVRAM y reiniciamos el dispositivo.

ciscoasa> enable
ciscoasa# configure terminal
ciscoasa(config)# copy startup-config running-config
ciscoasa(config)# enable password nueva_contraseña
ciscoasa(config)# config-register 0x1
ciscoasa(config)# copy running-config startup-config
ciscoasa# reload
Recuperación de imagen borrada.

Si por algún motivo borramos la imagen de la flash o la misma se corrompe, el ASA no puede arrancar.

Una forma de copiar una nueva imagen consiste en entrar en modo ROMMON y obtenerla desde un servidor TFTP.

Para ello seguiremos los siguientes pasos:

  • Utilizamos un PC para conectarnos por consola al ASA.
  • En nuestro caso, conectaremos el ASA y el servidor TFTP a un router.
  • Configuramos la información de red del router y del servidor TFTP
  • Verificamos que el servidor TFTP contiene la imagen que necesita el ASA.
  • Arrancamos el servicio TFTP.
  • Arrancamos el ASA y entramos en modo ROMMON presionando la tecla ESC.
  • Configuramos las variables de red necesarias para transferir la imagen, que se cargará en la RAM del ASA, del servidor TFTP.
    rommon #0> ADDRESS=192.168.1.1
    rommon #1> SERVER=192.168.2.1
    rommon #2> GATEWAY=192.168.1.2
    rommon #3> IMAGE=asa.bin
    rommon #4> PORT=Ethernet0/0
    rommon #5> tftp
    
  • Cuando aparece el prompt, iniciamos una sesión de forma habitual.
  • Tenemos que tener en cuenta que todavía no hemos copiado la imagen del TFTP a la memoria FLASH, sólo hemos arrancando el ASA desde la red.
  • Finalmente, configuramos la información de red y copiamos la imagen a la memoria FLASH del ASA.
    ciscoasa# configure terminal
    ciscoasa(config)# interface Ethernet0/0
    ciscoasa(config-if)# ip address 192.168.1.1 255.255.255.0
    ciscoasa(config-if)# no shutdown
    ciscoasa(config-if)# nameif inside
    ciscoasa(config-if)# security-level 100
    ciscoasa# copy tftp:asa.bin flash:asa.bin
    

Publicada por aLu | Enlace | Categorías: Cisco, Redes, Seguridad

08/04/2009

Policy-based routing (PBR)

Habitualmente estamos acostumbrados a que las decisiones de enrutamiento se basen en la dirección de destino de los paquetes. PBR permite sobreescribir la tabla de enrutamiento para cambiar la ruta que el tráfico sigue. PBR es de las más versátiles y potentes opciones de configuración en los routers Cisco. Tiene un gran parecido a las sentencias "Si condición Entonces acción" de los lenguajes de programación. La lógica de los mapas de rutas es la siguiente:

route-map MiRuta permit 10
match MiCondicion_1
set MiAcción_1
route-map MiRuta permit 20
match MiCondicion_2
set MiAccion_2
set MiAccion_3
route-map MiRuta permit 30
match MiCondicion_3 Micondicion_4
set MiAccion_1
set MiAccion_2
set MiAccion_4
route-map MiRuta deny 65536
match MiCondicion_5

El orden de comprobación de secuencias es 10, 20, 30 y finalmente 65536. Cuando la condición de una secuencia concuerda se ejecuta la acción asociada y no se comprueban más secuencias.

En la siguiente práctica veremos cómo podemos controlar totalmente la ruta que sigue un paquete desde el origen al destino sin utilizar protocolos de enrutamiento, rutas estáticas o rutas por defecto en los routers. Utilizaremos la siguiente topología:

Si no utilizáramos PBR la ruta que seguirían los paquetes ICMP desde pc a router5 sería la siguiente:

Pero utilizando PBR podemos modificar la ruta de la siguiente forma:

Configuración de router1:

hostname router1
!
interface FastEthernet0
ip address 192.168.0.2 255.255.255.0
ip policy route-map RutaIda
!
interface Serial0
ip address 192.168.1.1 255.255.255.0
clock rate 56000
!
interface Serial1
ip address 192.168.5.1 255.255.255.0
clock rate 56000
ip policy route-map RutaVuelta
!
interface Serial2
ip address 192.168.4.2 255.255.255.0
clock rate 56000
!
access-list 1 permit ip 192.168.0.1
access-list 2 permit ip 192.168.5.2
!
route-map RutaIda permit 10
match ip address 1
set ip next-hop 192.168.1.2
!
route-map RutaVuelta permit 10
match ip address 2
set ip next-hop 192.168.4.1
!
end

Configuración de router2:

hostname router2
!
interface Serial0
ip address 192.168.1.2 255.255.255.0
ip policy route-map RutaIda
!
interface Serial1
ip address 192.168.2.1 255.255.255.0
clock rate 56000
ip policy route-map RutaVuelta
!
access-list 1 permit ip 192.168.0.1
access-list 2 permit ip 192.168.5.2
!
route-map RutaIda permit 10
match ip address 1
set ip next-hop 192.168.2.2
!
route-map RutaVuelta permit 10
match ip address 2
set ip next-hop 192.168.1.1
!
end

Configuración de router3:

hostname router3
!
interface Serial0
ip address 192.168.2.2 255.255.255.0
ip policy route-map RutaIda
!
interface Serial1
ip address 192.168.3.1 255.255.255.0
clock rate 56000
ip policy route-map RutaVuelta
!
access-list 1 permit ip 192.168.0.1
access-list 2 permit ip 192.168.5.2
!
route-map RutaIda permit 10
match ip address 1
set ip next-hop 192.168.3.2
!
route-map RutaVuelta permit 10
match ip address 2
set ip next-hop 192.168.2.1
!
end

Configuración de router4:

hostname router4
!
interface Serial0
ip address 192.168.3.2 255.255.255.0
ip policy route-map RutaIda
!
interface Serial1
ip address 192.168.4.1 255.255.255.0
ip policy route-map RutaVuelta
!
access-list 1 permit ip 192.168.0.1
access-list 2 permit ip 192.168.5.2
!
route-map RutaIda permit 10
match ip address 1
set ip next-hop 192.168.4.2
!
route-map RutaVuelta permit 10
match ip address 2
set ip next-hop 192.168.3.1
!
end

Configuración de router5:

hostname router5
!
interface Serial0
ip address 192.168.5.2 255.255.255.0
ip policy route-map RutaVuelta
!
access-list 2 permit ip 192.168.5.2
!
route-map RutaVuelta permit 10
match ip address 2
set ip next-hop 192.168.5.1
!
end

Es un ejemplo un tanto retorcido pero la finalidad del mismo es la visualización de la potencia que otorga PBR para dirigir el tráfico arbitrariamente. Otros casos más prácticos serían:

  • Filtrar el tráfico utilizando un cortafuegos que sólo tuviera una interfaz de red:
  • En el caso de tener dos líneas a Internet, configurar cada red interna con una línea de salida diferente:

Referencias


Publicada por aLu | Enlace | Categorías: Cisco, Redes

03/04/2009

Visualizar fotografías privadas en Facebook

Facebook es un sitio web de redes sociales que permite localizar amigos con quienes se perdió el contacto o agregar otros nuevos con quienes intercambiar fotografías o mensajes.

Hay gente que permite que todo el mundo visualice su perfil y sus fotografías. También los hay que sólo comparten esta información privada con sus amigos y no con todo el mundo.

Ahora detallaremos los pasos para poder visualizar las fotografías de la gente que no comparte su información privada con todo el mundo:

  • Creamos una cuenta en Facebook. Si tenemos una, no es necesario crear una nueva.
  • Una vez dentro, buscamos la persona objetivo. Podemos observar que el perfil no es público.
  • Situamos el puntero del ratón sobre "Ver amigos".
  • De esta forma, visualizamos en la parte inferior izquierda del navegador una dirección. Tenemos que copiar el número identificador.
  • Ahora hacemos click en el enlace "Desarrolladores" situado en la parte inferior derecha del navegador.
  • Luego en "Tools".
  • Ahora en "Formato de respuesta" seleccionamos "Facebook PHP Cliente", en "Método" seleccionamos "photos.getAlbums" y en "uid" el identificador que copiamos anteriormente, "1234684030". Pulsamos "Método de llamada".
  • A la derecha recibiremos el resultado de nuestra consulta. Podemos observar los enlaces de unos álbumes. Copiamos los enlaces en la barra del navegador y ya podemos visualizar las fotos privadas del usuario.

Publicada por aLu | Enlace | Categorías: Facebook, Seguridad

01/04/2009

Entendiendo las VMnet

VMware Workstation proporciona el uso de redes virtuales (VMnets) para que el usuario pueda agrupar máquinas virtuales en redes independientes (dominios de difusión).

Por defecto, proporciona tres tipos de VMnets preconfiguradas: VMnet0 (bridged), VMnet1 (host-only) y VMnet8 (NAT). No obstante, también es posible utilizar las VMnet2, VMnet3, VMnet4, VMnet5, VMnet6 y VMnet7.

VMnet0 (bridged)

Esta red virtual proporciona conectividad entre las máquinas virtuales, la máquina real y la red externa real. Los máquinas situadas en la red externa real pueden comunicarse directamente con las máquinas virtuales.

VMnet1 (host-only)

Esta red virtual proporciona conectividad entre las máquinas virtuales y la máquina real.

VMnet2-7

Todas estas redes virtuales proporcionan conectividad únicamente entre las máquinas virtuales de la misma VMnet.

VMnet8 (NAT)

Esta red virtual proporciona conectividad entre las máquinas virtuales, la máquina real y la red externa real. En este tipo de red se realiza un traducción (PAT) de direcciones de red privadas a la dirección IP de la máquina real. Las direcciones privadas que utilizan las máquinas virtuales las proporciona un servidor DHCP.

Las máquinas situadas en la red externa real no pueden comunicarse directamente con las máquinas virtuales debido al ocultamiento (PAT) de la direcciones IP privadas con la dirección IP de la máquina real.

Referencias


Publicada por aLu | Enlace | Categorías: VMware, Redes, Sistemas

31/03/2009

Configuración automática con AutoInstall

Los IOS de Cisco con una versión igual o superior a la 12.2 proporcionan dos métodos (Setup y AutoInstall) para simplificar o automatizar la configuración de los dispositivos Cisco. Setup es un modo interactivo basado en la línea de comandos que guía al usuario en la primera configuración del dispositivo. AutoInstall permite cargar ficheros de configuración remotos de forma automática en los dispositivos.

Después de cargar el IOS en la RAM, un dispositivo inicia el proceso AutoInstall si detecta que no tiene una configuración almacenada en la NVRAM y alguna de sus interfaces tiene conectividad.

Antes de poder descargar un fichero de configuración de un servidor TFTP, el dispositivo necesita obtener una dirección IP. El tipo de interfaz utilizada determina el tipo de servicio que puede proporcionar la dirección IP. Si se utilizan interfaces Ethernet, Token Ring o FDDI, AutoInstall intentará obtener información de red utilizando DHCP, BOOTP o RARP. Si son interfaces seriales con HDLC, probará con SLARP. Si en cambio son interfaces seriales con Frame Relay, probará con BOOTP.

En esta práctica utilizaremos interfaces Ethernet y configuraremos los servicios DHCP y TFTP. Además, implementaremos dos topologías diferentes para alcanzar el mismo objetivo. El objetivo consiste en obtener la siguiente topología (Figura 1) pasando los ficheros de configuración automáticamente a router1, router2 y router3:

Figura1: Topología que obtendremos al finalizar el proceso.

Una vez obtengan los ficheros de configuración el último paso consistirá en cablear los routers.

Primero crearemos los ficheros de configuración router1.cfg, router2.cfg y router3.cfg.

Contenido de router1.cfg:

hostname router1
!
interface FastEthernet0
ip address 192.168.0.1 255.255.255.0
!
interface Serial0
ip address 172.16.0.1 255.255.255.0
!
router rip
network 192.168.0.0
network 172.16.0.0
!
end

Contenido de router2.cfg:

hostname router2
!
interface FastEthernet0
ip address 172.16.1.2 255.255.255.0
!
interface Serial0
ip address 172.16.0.2 255.255.255.0
clock rate 56000
!
router rip
network 172.16.0.0
network 172.16.1.0
!
end

Contenido de router3.cfg:

hostname router3
!
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
!
interface FastEthernet0/1
ip address 10.0.1.1 255.255.255.0
!
router rip
version 2
network 10.0.0.0
network 172.16.0.0
!
end

Topología 1: Utilizando un proxy.

Figura2: Topología ubicando servicios en varios dispositivos.

Configuración del router4 (proxy):

Router>enable
Router#config terminal
Router(config)#hostname router4
router4(config)#interface fa0/0
router4(config-if)#ip address 192.168.1.254 255.255.255.0
router4(config-if)#ip helper-address 192.168.2.1
router4(config-if)#ip helper-address 192.168.2.2
router4(config-if)#no shutdown
router4(config-if)#exit
router4(config)#interface fa0/1
router4(config-if)#ip address 192.168.2.254 255.255.255.0
router4(config-if)#no shutdown
router4(config-if)#end
router4#copy run start

Configuración del router5 (DHCP):

Router>enable
Router#config terminal
Router(config)#hostname router5
router5(config)#interface fa0
router5(config-if)#ip address 192.168.2.1 255.255.255.0
router5(config-if)#no shutdown
router5(config-if)#exit
router5(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.254
router5(config)#ip dhcp pool router1
router5(config-dhcp)#host 192.168.1.1 255.255.255.0
router5(config-dhcp)#client-identifier 0063.6973.636f.2d30.3030.662e.3233.3766.2e35.6238.642d.4661.30
router5(config-dhcp)#bootfile router1.cfg
router5(config-dhcp)#option 150 ip 192.168.2.2 
router5(config-dhcp)#exit
router5(config)#service dhcp
router5(config)#ip dhcp pool router2
router5(config-dhcp)#host 192.168.1.2 255.255.255.0
router5(config-dhcp)#client-identifier 0063.6973.636f.2d30.3030.662e.3233.3766.2e35.3862.622d.4661.30
router5(config-dhcp)#bootfile router2.cfg
router5(config-dhcp)#option 150 ip 192.168.2.2 
router5(config-dhcp)#exit
router5(config)#ip dhcp pool router3
router5(config-dhcp)#host 192.168.1.3 255.255.255.0
router5(config-dhcp)#client-identifier 0063.6973.636f.2d30.3031.392e.6537.3066.2e34.6665.302d.4661.302f.30
router5(config-dhcp)#bootfile router3.cfg
router5(config-dhcp)#option 150 ip 192.168.2.2 
router5(config-dhcp)#end
router5#copy run start

La configuración del servidor TFTP consiste en configurar la interfaz de red (192.168.2.2/24, gateway=192.168.2.254), ubicar los ficheros de configuración (router1.cfg, router2.cfg y router3.cfg) en la carpeta correspondiente e iniciar el servicio.

Encendemos router1, router2 y router3 y esperamos a que obtengan su fichero de configuración.

Topología 2: Utilizando un todo en uno.

Figura3: Topología ubicando servicios en un único dispositivo.

Configuración del router4 (DHCP y TFTP):

Router>enable
Router#config terminal
Router(config)#hostname router4
router4(config)#interface fa0/0
router4(config-if)#ip address 192.168.1.254 255.255.255.0
router4(config-if)#no shutdown
router4(config-if)#exit
router4(config)#ip dhcp pool router1
router4(config-dhcp)#host 192.168.1.1 255.255.255.0
router4(config-dhcp)#client-identifier 0063.6973.636f.2d30.3030.662e.3233.3766.2e35.6238.642d.4661.30
router4(config-dhcp)#bootfile router1.cfg
router4(config-dhcp)#option 150 ip 192.168.2.2 
router4(config-dhcp)#exit
router4(config)#service dhcp
router4(config)#ip dhcp pool router2
router4(config-dhcp)#host 192.168.1.2 255.255.255.0
router4(config-dhcp)#client-identifier 0063.6973.636f.2d30.3030.662e.3233.3766.2e35.3862.622d.4661.30
router4(config-dhcp)#bootfile router2.cfg
router4(config-dhcp)#option 150 ip 192.168.2.2 
router4(config-dhcp)#exit
router4(config)#ip dhcp pool router3
router4(config-dhcp)#host 192.168.1.3 255.255.255.0
router4(config-dhcp)#client-identifier 0063.6973.636f.2d30.3031.392e.6537.3066.2e34.6665.302d.4661.302f.30
router4(config-dhcp)#bootfile router3.cfg
router4(config-dhcp)#option 150 ip 192.168.2.2 
router4(config-dhcp)#exit
router4(config)#tftp-server flash:router1.cfg
router4(config)#tftp-server flash:router2.cfg
router4(config)#tftp-server flash:router3.cfg
router4(config)#exit
router4#copy run start

Encendemos router1, router2 y router3 y esperamos a que obtengan su fichero de configuración.

Apéndice: Cómo obtener el identificador de cliente (client-identifier)

El identificador de cliente es una cadena de números hexadecimales. Para obtener esta cadena tenemos que convertir la cadena de caracteres nullcisco-direcciónMAC-interfaz_que_solicita a números hexadecimales.

Por ejemplo, si el router1 realiza la petición DHCP por la interfaz FastEthernet0 que tiene la dirección MAC 000f.237f.5b8d tenemos que convertir la cadena nullcisco-000f.237f.5b8d-Fa0 a números hexadecimales:

00c i s c o - 0 0 0 f . 2 3 7 f . 5 b 8 d - F a 0   
00636973636f2d303030662e323337662e356238642d466130

Finalmente separamos con puntos esta cadena cada cuatro números hexadecimales:

0063.6973.636f.2d30.3030.662e.3233.3766.2e35.6238.642d.4661.30 = client-identifer

Esta tabla puede resultar útil para realizar la conversión.

Referencias

Publicada por aLu | Enlace | Categorías: Cisco, Redes