Welcome to my blog

jueves, 19 de mayo de 2011

Infraestructura PKI con certificados digitales


En esta entrada les dará a conocer como funciona una infraestructura PKI con certificados digitales. En este caso daré un ejemplo con un sitio web. También mostrare detalladamente como crear una CA, crear una petición, configurar el sitio web para que trabaje con certificados digitales, servidor DNS, etc.




Infraestructura PKI Con Certificados Digitales

Estos pueden ser links de interés:
http://es.wikipedia.org/wiki/Infraestructura_de_clave_p%C3%BAblica
http://es.wikipedia.org/wiki/Autoridad_de_certificaci%C3%B3n
http://es.wikipedia.org/wiki/Criptograf%C3%ADa
http://es.wikipedia.org/wiki/Certificado_digital
http://es.wikipedia.org/wiki/Clave_p%C3%BAblica
http://es.wikipedia.org/wiki/X.509

sábado, 30 de abril de 2011

Vulnerabilidad de apache (ataque de fuerza bruta)

Esta entrada trata sobre como vulnerar un servidor web apache2 atraves de un ataque de fuerza bruta. Dicho ataque lo realizamos con metasploit. Mostraremos http://www.blogger.com/img/blank.gif el procedimiento para ejecutar el exploit y las posibles soluciones a este exploit.



Vulnerabilidad Apache


Link de interes:
http://es.scribd.com/doc/54292853/Vulnerabilidad-Apache
http://www.metasploit.com/

viernes, 29 de abril de 2011

Vulnerabilidad contra el kernel de linux


En la siguiente entrada trata sobre una vulnerabilidad al kernel en linux. La vulnerabilidad tiene como fin consumir el 100% de la CPU y esto hace que la maquina se bloquee y no deja hacer nada, para volver a buen estado de la maquina la única forma es reiniciar la maquina.

Nota: Este exploit ejecutado en un servidor que tenga servicios red para una empresa y que la empresa dependa de esos servicios, al
reiniciar la maquina todos los servicios de van a apagar y la empresa va a para de trabajar. La empresa puede perder plata en ese momento.

La vulnerabilidad es contra el kernel de linux en localmente.

Lo primero que hacemos es descargar el exploit de la vulnerabilidad contra el kernel. Para descargar dicho exploit nos dirigimos la siguiente link:

http://www.exploit-db.com/exploits/15622/

En el link anterior puede también encontrar mas información sobre el exploit o la vulnerabilidad.

Luego de descargar el
exploit procedemos a compilar el archivo, para ello lo realizamos de la siguiente manera.

El archivo descargado debe tener una extensión .c, en este caso se llama kernel.c. La extension .c hace referencia al lenguaje de programacion C.
Para compilar el archivo ejecutamos el siguiente comando: gcc -o kernel kernel.c.
gcc= Es el paquete que me permite compilar.
-o = especificar como se va a llamar el ejecutable.
kernel= nombre del ejecutable.
kernel.c = nombre del archivo a compilar.

Luego de compilar el archivo nos debe aparecer el nombre que le dimos al compilarlo, en este caso es kernel. Para ejecutarlo basta con solo escribir el comando: ./kernel.


Cuando este empieza a trabajar lo que hará es bloquearnos la maquina y no nos dejara hacer nada, para colocar el estado de la maquina de forma de que no deje trabajar solo basta con reiniciar la maquina.


Solución a este exploit

La solución para este exploit es actualizar nuestro kernel por una versión que no este vulnerable.
Nos dirigimos a la pagina oficial para descargar el kernel http://kernel.ubuntu.com/kernel-ppa/mainline/v2.6.38.4-natty/ y descargamos los tres paquetes para de acuerdo a la jerarquia del computador.En este caso son los que terminan en i389.deb

Luego de descargados los instalamos los paquetes ya sea por consola o por modo gráfico y desistalamos el kernel vulnerable; Luego de desistalar el kernel reiniciamos la maquina para que pueda coger el nuevo kernel.

Nos dirigimos a la ruta cd /usr/src, el cual es el directorio donde se alojan los kernel. Luego de que reinicie la maquina utilizamos el comando uname -a para verificar que el nuevo kernel si fue acogido por el sistema y listo.

Si volvemos a ejecutar el exploit no va a tener ningún éxito.

Nota: Si hacemos adecuadamente lo que se especifica en el texto anterior no vamos a tener inconvenientes.

Link de interés:




Vulnerabilidad sobre un FTP en Windows XP

En esta entrada trata de una vulnerabilidad hacia un FTP, el cual permite autenticaciòn anónima desde un host remoto.
Esta vulnerabilidad fue explotada con metasploit, la cual es una herramienta que me permite ejecutar exploits remotamente.

Lo primero que hice fue montar el servicio FTP vulnerable en windows. El ftp que motne fue Home FTP server y el link de descarga de dicho FTP es: http://home-ftp-server.en.softonic.com/


Este es nuestro FTP montado en Windows..

Ahora nos dirigimos a la maquina Backtrack que contiene nuestro metasploit. Desde allí haremos nuestro ataque a nuestro servidor de correo. Ya dentro del metasploit lo primero que buscamos es vulnerabilidades para el FTP, esto se hace ejecutando el comando search ftp.


Luego encontramos una vulnerabilidad que nos permite escanear un ftp para determinar un login para acceder al ftp.

Para utilizar ese exploit ejecutamos el comando mostrado el la imagen siguiente.


Utilizamos el comando show options para ver las opciones que tiene este exploit. Lo que unico que tenemos que especificar es el host al cual va a realizar este exploit.


Con el comando mostrado en la imagen especificamos con la dirección IP del host remoto al cual vamos a hacer el ataque con dicho exploit.

Ya especificado el host remoto utilizamos el comando exploit o run para explotar o atacar con dicho exploit. Cuando este exploit empieza a trabajar va a salir una secuencia posibles opciones para adivinar un login, mensajes de bienvenida del ftp y autenticacion anónima,etc. Podemos observar en la imagen que se muestra a continuación que este exploit pudo encontrar con unas de las múltiples opciones que el servicio FTP permite autenticacion anónima, esto se afirma por que en una de las opciones aparece succesful y al principio aparece de color verde.


Solución a esta vulnerabilidad.

Para la solución de esta vulnerabilidad es muy sencilla y fácil de hacer lo único que tenemos que hacer es configurar el servidor FTP para que no utilice autenticacion anónima si no que la autenticacion se debe hacer con un usuario y un passsword. También hay que tener en cuanta que si se va a utilizar autenticacion con usuarios y password, los password deben se ser largos y deben de tener caracteres especiales, esto evita otro tipo de vulnerabilidad.

Link de interés.


jueves, 14 de abril de 2011

Plataforma de monitoreo en linux

En este entrada trata sobre una plataforma de monitoreo para infraestructuras de red.En el siguiente documento es una manual paso a paso sobre la implementacion y administración de la plataforma de monitoreo Pandora FMS.
Pandora FMS es un software de código libre que me permite saber el estado del una red.



PLATAFORMA DE MONITOREO

Información adicional o de interés:

miércoles, 2 de marzo de 2011

Metodologías para el análisis de riesgos en Seguridad Informatica

En esta entrada es con el propósito de de dar a conocer los tipos de metodologías que existen para un análisis de riesgo en la seguridad informática. También le daré a conocer las diferencias o la comparación de los tipos de metodología para el análisis de riesgo.


Existen diferentes métodos para el análisis de riesgos de la seguridad informática. Algunos de los métodos o metodologías son:

Las Metodologías anteriores se puede decir o aclarar que en si buscan lo mismo, analizar los riesgos informáticos en una compañía u organización.

Cual es la diferencias entre dichas metodologías ?

"
La metodología MAGERIT es una de las mas utilizadas ya que se encuentra en español. MAGERIT esta basado en tres submodelos. Los submodelos son:
  1. Submodelo de elementos: Es este submodelo se clasifican 6 elementos básicos que son: activos, amenazas, vulnerabilidades, impacto, riesgo, salvaguarda.
  2. Submodelo de eventos: Aquí se clasifican los elementos anteriores en tres formas: dinámico físico, dinámico organizativo y estático.
  3. Submodelo de procesos: Se definen en 4 etapas: análisis de riesgo, planificación, gestion de riesgo y selección de salvaguardas.
La metodología OCTAVE esta compuesta en tres fases:

  1. Visión de organización: Donde se definen los siguientes elementos: activos, vulnerabilidades de organización, amenazas, exigencias de seguridad y normas existentes.
  2. Visión tecnológica: se clasifican en dos componentes o elementos: componentes claves y vulnerabilidades técnicas.
  3. Planificación de las medidas y reducción de los riesgos: se clasifican en los siguientes elementos: evaluación de los riesgos, estrategia de proteccion, ponderacion de los riesgos y plano de reduccion de los riesgos.
La Metodología NIST SP 800-30 esta compuesta por 9 pasos basicos para el analisis de riesgo:
  1. Caracterización del sistema.
  2. Identificación de amenazas.
  3. Identificación de vulnerabilidades.
  4. Control de análisis.
  5. Determinación del riesgo.
  6. Análisis de impacto.
  7. Determinación del riesgo.
  8. Recomendaciones de control.
  9. Resultado de la implementacion o documentacion.
".

Como podemos ver en los enunciados anteriores de las metodologías, podemos sacar varias conclusiones. Una de ellas es que todas las metodologías para el análisis de riesgo siempre esta en busca de realizar un buen análisis de riesgo. Pero la diferencia es que cada metodología maneja sus propios conceptos y una forma diferente de adquirir un análisis de riesgo. En si todas las metodologías hacen lo mismo pero con diferente estructura a la hota de realizar un análisis de riesgo.

Enlaces de interés:


miércoles, 23 de febrero de 2011

Httpd + Selinux

Este entrada se hace con el fin de solucionar un problema muy comun en un servidor web al crear un nuevo sitio web o cuando descargamos una aplicacion web en un directorio diferente al de apache y cuando movemos este archivo creado al directorio de apache que problema sucede al acceder a ese sitio web. Ya que a muchos le a sucedido y nunca sabemos por que sucede y tampoco sabemos como solucionarlo.

En esta entrada les dare a conocer con un ejemplo cual es ese problema comun que puede suceder, como saber cual es el problema y dar solución a ese problema.

A continuacion mostrare el ejemplo de cómo se da el problema o el error anterior en apache y la solución a este problema. Esto ejemplo esta hecho bajo una plataforma de Centos.

Antes de todo debemos de tener un servidor web instalado en la maquina. Nuestro servidor web es apache.

1. Creamos un archivo donde alojaremos nuestro sitio web. En el ejemplo creamos el archivo en un directorio diferente al del directorio donde se alojan los sitios web de apache. Lo realizamos en otro sitio colocando como ejemplo como si hubiéramos descargado una aplicación web desde internet y hayamos guardado en otro sitio diferente al directorio de apache.
Nuestro archivo fue creado en el directorio /tmp como el nombre de prueba. Esto se puede observar en la imagen.

2. Ahora lo que haremos es mover el archivo prueba del directorio donde fue creado al directorio donde se alojan los sitios web de apache. Los sitios web se alojan en el directorio /var/www/html.
En la imagen podemos ver como movemos el archivo prueba al directorio de apache.


3. Verificamos los permisos que tiene nuestro archivo y ingresamos al archivo prueba con un editor de texto ya sea nano, vim, gedit, etc. En este caso lo hicimos con el editor nano. Podemos observar que los permisos están bien para que el usuario propietario lo pueda ejecutar.

4. Dentro del archivo colocamos un mensaje para identificar el sitio, algo así como lo muestra la imagen. Y luego guardamos los cambios.


5. Ahora nos dirigimos al navegar para verificar nuestro sitio, para ello ingresamos la siguiente dirección: http://localhost/prueba. donde localhost es porque nuestro servidor web está en la misma máquina o localmente y prueba porque es nuestro archivo que tiene el sitio web con el cual estamos haciendo la prueba.

Como puede ven en la imagen anterior observamos un error. Este es el error del cual les estaba hablando al principio de esta entrada. Dicho error nos dice que no se puede acceder al sitio que no tiene permisos. Esto error de igual manera nos va salir si realizamos los mismo pasos anteriores con una aplicación web descargada de internet.



Como solucionar el error anterior ?.

1. Nos dirigimos a la consola para revisar los logs y verificar cual es el error ocasionado por apache. Para ello ejecutamos el comando que se muestra en la imagen. Y podemos observar que esta denegando apache que se acceda al sitio web.

2. Luego verificamos de nuevo cuales son los permisos que tiene nuetro sitio web. Si le damos todos los permisos a archivo prueba de todos modos nos va a salir el mismo error. Ejecutamos el comando mostrado en la imagen para observar los permisos.

3. Ahora de nuevo verificamos los permisos pero esta vez le añadimos los permisos del SElinux. Y esta ocasión podemos observar algo diferente en el archivo prueba a los otros archivos. La diferencia se puede observar claramente en el contexto de SElinux, ya que es diferente al de los otros. Si miramos bien en la imagen que se muestra debajo podemos ver que el archivo prueba cuando se crea en el directorio /tmp hereda los permisos de la raíz de ese directorio y al mover el archivo prueba al directorio de apache no cambia sus permisos por los de apache y su contexto queda que con el del directorio /tmp (directorio temporal). Esto hace que cuando al acceder al archivo prueba nos sale un error.


4. Luego de saber cuál es el error o el problema por el cual nos podemos acceder al sitio web es de SElinux, instalamos un paquete el cual es un servicio que nos brinda ayuda de cómo solucionar problemas de SElinux.. El paquete a instalar lo podemos observar en la imagen y nos muestra como ejecutarlo.



5. Iniciamos el servicio que acabamos de instalar.


6. Verificamos los logs del SElinux, el cual nos muestra cual es la causa del error y nos brinda un comando para ver detalladamente la causa de error. El comando para ver detalladamente el error lo podemos observar en la imagen.

7. Ejecutamos el comando que nos dijo los logs SElinux y podemos ver detalladamente el error. Nos muestra que el contexto que tiene el archivo prueba que aloja nuestro sitio web no coincide con el que debe de ser para que apache deje acceder al sitio web y nos muestra cual es el contexto correcto para qué apache deje acceder al sitio y también nos permite saber más detalladamente el error. También nos da un comando para solucionar el problema de los contextos. Todo esto se muestra en las siguientes imágenes.

8. Ejecutamos el comando arrojado en el paso anterior para solucionar este problema o el error. Este comando restaurar el contexto adecuado para nuestro archivo prueba.


9. Verificamos otra vez los permisos de Selinux del directorio de apache donde está ubicado nuestro archivo prueba el cual contiene el sitio web que estamos creando y observa en los permisos de Selinux o el contexto cambia y es igual de los otros archivos y podemos ver que ya los permisos ya fueron heredados por el directorio de apache.


10. De nuevo volvemos al navegador para acceder al sitio web prueba.

Ya esta el problema o el error solucionado correctamente, y sabemos por que ocurre este error y entender de que se trata el problema y como se soluciona.



Enlaces de interés:

http://es.wikipedia.org/wiki/SELinux

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/ch-selinux.html

Este es un enlace donde se ven mas claro lo anterior.
http://es.scribd.com/doc/49475972/httpd-y-selinux