1MS-Instalación Mod Security y su funcionamiento
-
Upload
javierasir2012 -
Category
Documents
-
view
94 -
download
1
description
Transcript of 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
[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
[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
[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
[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
[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
[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
[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
[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
[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.
[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…
[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
[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 ….
[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.
[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.
[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
[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.
[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