1ms-instalación mod security y su funcionamiento

18
INSTALACION APACHE MOD SECURITY Y DVWA 2012 Javier García Cambronel SEGUNDO DE ASIR 24/01/2012

Upload: javierasir2012

Post on 04-Aug-2015

94 views

Category:

Documents


1 download

DESCRIPTION

2012INSTALACION APACHE MOD SECURITY Y DVWAJavier García Cambronel SEGUNDO DE ASIR 24/01/2012[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012INSTALACIÓN APACHE COMPLETAINSTALACION APACHE INSTALACIÓN PHP EN APACHE CON DEPENDENCIAS MYSQL INSTALACION MYSQLINSTALACION DE MOD SECURITY Y CONFIGURACION BASICAINSTALACIÓN DVWAPRUEBA DE SEGURIDAD A APACHE ANTES Y DESPUES DE INSTALAR MOD SECURITYSOLO CON APACHE APACHE CON MOD SECURITYANALISIS DE LA APLICACIÓN FORO CON MOD SECURITYS

TRANSCRIPT

Page 1: 1MS-Instalación Mod Security y su funcionamiento

INSTALACION APACHE MOD SECURITY Y DVWA

2012

Javier García Cambronel SEGUNDO DE ASIR

24/01/2012

Page 2: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 1

INSTALACIÓN APACHE COMPLETA

INSTALACION APACHE

INSTALACIÓN PHP EN APACHE CON DEPENDENCIAS MYSQL

INSTALACION MYSQL

INSTALACION DE MOD SECURITY Y CONFIGURACION BASICA

INSTALACIÓN DVWA

PRUEBA DE SEGURIDAD A APACHE ANTES Y DESPUES DE

INSTALAR MOD SECURITY

SOLO CON APACHE

APACHE CON MOD SECURITY

ANALISIS DE LA APLICACIÓN FORO CON MOD SECURITY

Page 3: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 2

INSTALACIÓN APACHE COMPLETA

Lo primero que debemos hacer es instalar apache en Ubuntu, en mi caso en Ubuntu 11.04

para ello ejecutamos el siguiente comando desde la consola

sudo apt-get install apache2

Una vez que hayamos introducido nuestra contraseña si nos la pide nos pedirá una

confirmación y comenzará la instalación comenzará la instalación

Esto instalará Apache 2 y todas sus dependencias, ahora nos dirigiremos al directorio

/etc/apache2/ donde nos encontraremos con una serie de archivos, en elarchivo ports.conf

debe decir Listen 80, lo cual indica que se estará escuchando en el puerto 80, si quisiéramos

que nuestro apache escuche en otro puerto diferente modificamos ese valor, si deseamos

escuchar peticiones en mas de un puerto agregamos una nueva línea, por ejemplo Listen 443

que se utiliza para aceptar peticiones mediante el protocolo https en su puerto estándar.

sudo gedit /etc/apache2/ports.conf

Page 4: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 3

El archivo apache2.conf es el archivo principal de configuración de nuestro apache, no lo

modificaremos por el momento.

También podemos encontrar el archivo httpd.conf, este archivo esta vacío y así lo

dejaremos, su fin es simplemente garantizar compatibilidad con versiones anteriores de

apache.

Encontramos también una serie de directorios, mas adelante veremos que contiene cada

uno.

Reiniciemos apache:

sudo /etc/init.d/apache2 restart

PODEMOS VERLO TANTO DE FORMA LOCAL

COMO EXTERNA

Page 5: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 4

INSTALACIÓN PHP EN APACHE CON DEPENDENCIAS MYSQL

sudo apt-get install php5 php5-mysql

Despues de ingresar este comando si se nos pide la contraseña la metemos y nos saldrá una

advertencia de si queremos continuar la instalación de dicho paquete y lo confirmamos.

Despues de esto veremos como comienza la instalación de cada uno de los paquetes

Y veremos como todo esto se ha llevado a cabo sin ningún problema

Page 6: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 5

Esto instalara PHP 5 y todas sus dependencias y los módulos necesarios para una

comunicación con bases de datos mysql, para asegurarnos que fue correcto podemos hacer

lo siguiente, en el directorio /var/www/ se encuentran una serie de directorios y archivos

que son los encargados de mostrarnos una página de inicio para saber si apache esta

funcionando, esta página es la que vimos cuando verificamos que apache funcionaba y no

dice mucho mas que la frase "It Works!", lo que haremos ahora es crear el archivo info.php

dentro de este directorio con el siguiente comando sudo gedit /var/www/info.php en el cual

simplemente escribiremos lo siguiente:

<?php

phpinfo();

?>

Quedando como vemos en la siguiente imágen

Luego, desde un navegador escribimos como URL la dirección del servidor y solicitamos la

página info.php, de modo que quede algo como lo 192.168.1.36/info.php, esto nos debería

devolver una página bastante extensa en la cual figuran las características de PHP

Page 7: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 6

INSTALACION MYSQL

sudo apt-get install mysql-server

Una vez ejecutado el comando se nos pedirá la confirmación pertinente como en anteriores

ocasiones y confirmaríamos veríamos el progreso y se nos presentara la siguiente ventana en

la que tendríamos que introducir la contraseña para acceder como root a mysql o dejarlo sin

contraseña, NO RECOMENDADO

Esto instalara mysql server 5.0, el cliente mysql y todas sus dependencias. Para asegurarnos

que todo ha salido bien podemos ejecutar en una terminal:

Mysql –unombredeusuario -pcontraseña

Page 8: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 7

INSTALACION DE MOD SECURITY Y CONFIGURACION BASICA

¿QUE ES MOD SECURITY?

Mod Secutity es lo que se denomina un firewall de aplicación diseñado para correr en

servidores web, mas específicamente apache. Fue creado en 2002 por Ivan Ristic,

especialista en seguridad web y posee muchas características que lo hacen muy eficiente en

la detección y prevención de ataques:

Filtrado de peticiones.

Técnicas antievasión.

Comprensión del protocolo http y https.

Verificación del rango de bytes para evitar shellcodes.

Log de auditoria.

Hay información abundante sobre que es Mod Security, lamentablemente no tanta sobre su

configuración.

Instalamos ModSecurity con el siguiente comando:

sudo apt-get install libapache-mod-security

A continuación, vamos a preparar el sistema para alojar las reglas de ModSecurity creando

un directorio en /etc/apache2/conf.d con el nombre modsecurity:

sudo mkdir /etc/apache2/conf.d/modsecurity

Ahora nos cambiamos a este nuevo directorio que hemos creado:

cd /etc/apache2/conf.d/modsecurity

Descargamos las reglas desde la web de ModSecurity:

sudo wget http://www.modsecurity.org/download/modsecurity-core-rules_2.5-1.6.1.tar.gz

Descomprimimos el archivo descargado:

sudo tar xzvf modsecurity-core-rules_2.5-1.6.1.tar.gz

Page 9: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 8

Borramos los archivos que ya no necesitamos:

sudo rm CHANGELOG LICENSE README modsecurity-core-rules_2.5-1.6.1.tar.gz

Ya tenemos ModSecurity instalado y las reglas descargadas, ahora toca indicarle a Apache

que lea las reglas y las aplique. Para esto creamos el archivo modsecurity2.conf en

/etc/apache2/conf.d con el siguiente comando:

sudo gedit /etc/apache2/conf.d/modsecurity2.conf

e introducimos el siguiente texto:

<Ifmodule mod_security2.c>

Include conf.d/modsecurity/*.conf

</Ifmodule>

De esta forma Apache leerá todos los archivos .conf del directorio

/etc/apache2/conf.d/modsecurity que es donde se encuentran nuestras reglas.

El siguiente paso consiste en crear un directorio donde alojar los logs de ModSecurity. Lo

hacemos con el siguiente comando:

sudo mkdir /var/log/apache2/mod_security

A continuación enlazamos el directorio creado en el paso anterior con el directorio en el que

ModSecurity crea los logs por defecto.

sudo ln -s /var/log/apache2/mod_security/ /etc/apache2/logs

Por último, sólo nos queda reiniciar Apache:

sudo service apache2 restart

Si vamos de nuevo a phpinfo a la seccionde modulos, vemos que se ha cargado

Page 10: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 9

INSTALACIÓN DVWA

Lo primero que hacemos será descargar el archivo necesario para la instalación, lo haremos

con el siguiente comando:

wget http://downloads.sourceforge.net/project/dvwa/dvwa-1.0.6.zip

Despues lo descomprimimos:

sudo unzip dvwa-1.0.6.zip

Lo siguiente que debemos hacer es cambiarnos al directorio donde se ha descomprimido

cd dvwa-1.0.6

y movemos todos los archivos necesarios con el siguiente comando anuestra carpeta donde

tenemos alojados los archivos del servidor en mi caso a la ruta por defecto.

sudo mv dvwa /var/www/

Ahora antes de seguir nos desplazamos a la ruta citada anteriormente y en el archivo

config.inc ponemos la contraseña que pertenece a nuestra base de datos mysql tal como

vemos en la imagen.

Page 11: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 10

Accedemos como lo haríamos de forma normal desde la bara de direcciones

http://localhost/dvwa/

Al acceder por primera vez, veremos una advertencia, diciéndonos que la base de datos no

está accesible. Pulsamos en create database y veremos que los procesos se llevan a cabo.

Una vez hecho esto ya podemos acceder a DVWA identificándonos por ejemplo con admin y

como contraseña password

Podemos pasar directamente a atacarlo y o a configurarlo para cambiar el nivel de seguridad

de la aplicación…

Page 12: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 11

PARA ACCEDER DESDE EL EXTERIOR CONFIGURAR EL ARCHIVO HOST.CONF

Esto es necesario para que lo podemos ver, pues después de instalar mod security no vamos

a poder acceder a través de la ip. Dentro del equipo en el que vamos a acceder en la

siguiente ruta

C:\Windows\System32\drivers\etc

Agregamos la siguiente línea con la ip del equipo (servidor web al que vamos a acceder)

ANTES

AHORA

Page 13: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 12

PRUEBA DE SEGURIDAD A APACHE ANTES Y DESPUES DE

INSTALAR MOD SECURITY

SOLO CON APACHE

Para esta prueba necesitamos crear un archivo de texto en nuestro servidor. Por lo que

ejecutamos el siguiente comando:

sudo gedit /var/www/inseguro.php

Y escribimos el siguiente contenido:

<? $archivo_secreto = $_GET['archivo_secreto'];

include ($archivo_secreto);

?>

Ejecutamos el siguiente comando desde nuestro Linux, aunque podríamos ver esta

información accediendo a la web, esto nos da más información.

curl -i http://localhost

Gracias a este curl obtendremos la información real de nuestro servidor, que es justo lo que

necesitaría cualquier atacante para intentar acceder a nuestro sitio web. Como muestra la

captura de pantalla, mi servidor está ejecutando Apache 2.2.17 sobre Ubuntu ….

Page 14: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 13

La segunda prueba consiste en ejecutar el archivo inseguro.php que habíamos creado en el

servidor pasándole como parámetro /etc/passwd. Es decir, desde una navegador accedemos

a la siguiente dirección:

http://192.168.1.36/inseguro.php?archivo_secreto=/etc/passwd

El resultado es el listado del archivo /etc/passwd que contiene, entre otras cosas, los

nombres de todos los usuarios del sistema. Otra información también bastante valiosa para

cualquier atacante.

Page 15: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 14

APACHE CON MOD SECURITY

En esta sección se supone que tenemos instalado ModSecurity en nuestro servidor. Y vamos

a repetir las pruebas anteriores para observar los nuevos resultados.

Volvemos a ejecutar la primera prueba que consistía simplemente en pedirle

información a nuestro servidor usando curl con el siguiente comando:

curl -i http://localhost

Y podemos ver la siguiente información:

El trabajo de ModSecurity lo apreciamos desde el primer momento porque la información

que obtenemos es completamente falsa. ModSecurity nos hace creer que el servidor web

es Apache 2.2.0 (en vez de 2.2.17) y está montado sobre Fedora (en vez de Ubuntu).

Repetimos la segunda prueba ahora con ModSecurity y accedemos al archivo inseguro.php

con el parámetro /etc/passwd. Es decir, tecleamos en el navegador la siguiente dirección:

Hay que tener en cuenta que ya no podemos utilizar la IP para la solución mirar la página 11

http://servidor/inseguro.php?archivo_secreto=/etc/passwd

Obteniendo el siguiente resultado: diciéndonos que el método Get hacia inseguro.php no

está implementado con lo que el ataque quedaría bloqueado.

Page 16: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 15

ANALISIS DE LA APLICACIÓN FORO

ACUNETIX

Como podemos ver la detección de acunetix también ha sido engañada

Todos los fallos que encontramos son falsos, el de nivel alto y los de nivel medio…. Porque

hemos engañado al programa de nuestra versión de apache y el DNS snooping que no se

puede realizar, lá pagina de error que dice donde esta alojado nuestro servidor (en la imagen

en verde) es una ruta completamente falsa

Page 17: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 16

DIRBUSTER

Vemos que con dirbuster después de estar analizando un buen rato, no conseguimos nada

más que el directorio base. Lo cual nos indica que Mod security hace un gran trabajo.

NESSUS

Configuramos como en anteriores trabajos la aplicación foro para ver que es lo que

encontramos.

Page 18: 1MS-Instalación Mod Security y su funcionamiento

[INSTALACION APACHE MOD SECURITY] 24 de enero de 2012

SEGUNDO DE ASIR Página 17

Como podemos ver los errores y/o avisos han disminuido considerablemente en referencia

en los que teníamos en los anteriores trabajos que estaban sobre unos 77 sin sanitizar y 60

sanitizando xampp,mysql y apache, aunque bien es cierto que tampoco eran de muchísima

relevancia Aquí encontramos 36 y ninguno grave, aunque no hemos engañado al programa y

si detecta nuestra versión de Apache.

Es más también detecta que tenemos mod security instalado en nuestro servidor