25/01/2010
Vulnerabilidad local de escalación de privilegios
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ón1. 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ón30/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.
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# reloadRecuperació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
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
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.








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
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- Using AutoInstall and Setup
- Cisco IOS DHCP Server (client-identifier)