SSI 2013/14
29 de octubre de 2013
Indice
1. Previo: reto de desbordamiento de buffer
1.1. Documentaci
on a entregar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Entorno de pruebas
3.1. Descripci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1. Inyecci
on SQL Foro simple vulnerable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2. Inyecci
on SQL en Wordpress 1.5.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Documentaci
on a entregar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Ejercicio 2: Instalaci
on y experimentaci
on con mod-security
1.
4.1. Descripci
on de mod-security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Instalaci
on y configuraci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3. Documentaci
on a entregar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.
Documentaci
on a entregar
2.
Entorno de pruebas
Im
agenes de partida
1. Script de instalaci
on: ejercicio-modsecurity.sh
2. Ejecutar desde el directorio de descarga
alumno@pc:~$ bash ejercicio-modsecurity.sh
3. El script descargar
a las siguientes im
agenes en el directorio $HOME/SSI1314
atacante.vdi: Imagen VirtualBox de la maquina con el framework Metasploit y otras herramientas complementarias (empleado en la pr
actica anterior).
modsecurity.vdi: Imagen VirtualBox de una maquina con aplicaciones web vulnerables
2
password
purple
usuario1
4. Se pedir
a un identificador (sin espacios) para poder reutilizar las versiones personalizadas de las imagenes creadas
5. Arrancar las instancias VirtualBOX (si no lo hacen desde el script anterior) desde el interfaz grafico o desde
la lnea de comandos.
VBoxManage startvm ATACANTE-<id>
VBoxManage startvm METASPLOITABLE-<id>
Importante: Despues de finalizar cada ejercicio terminar la ejecucion de la maquina virtual desde lnea de
comandos con halt o sudo halt o desde el interfaz grafico LXDE.
3.
3.1.
Descripci
on
En este ejercicio veremos ejemplos simples de vulnerabilidades web. Usaremos una apliacion PHP de muestra muy
simplificada que no realiza ning
un tipo de comprobacion de las entradas que recibe y que permite Inyeccion de SQL
(que usaremos para burlar la comprobaci
on de login y password) y XSS (Cross Site Scripting). Tambien veremos un
ejemplo de software real, una versi
on antigua del software para blogs WordPress, con vulnerabilidades XSS.
Por u
ltimo en la m
aquina virtual se encuentran instaladas tres aplicaciones web vulnerables para ser usadas con fines
did
acticos.
3.2.
3.2.1.
En la m
aquina modsecurity hay una implementacion de un foro de juguete en PHP.
C
odigo fuente en: /var/www/foro
Cuenta con 2 usuarios creados (ana y pepe) ambos con password ssi
Desde la m
aquina atacante:
1. Abrir la direcci
on http://modsecurity.ssi.net/foro en un navegador WEB
2. Entrar como ana (password ssi)
A
nadir un mensaje con una parte de su ttulo y otra del cuerpo encerrada entre las etiquetas HTML de
texto en negrita: (<b>....</b>)
Revisar la lista de mensajes para comprobar que las marcas HTML incluidas en las entradas entrada se
copian tal cuales
3. Preparar un ataque de XSS persistente
Ana crea otro mensaje nuevo, incluyendo en el texto la siguiente etiqueta <script> con comandos JavaScript
<script> alert(esto admite XSS) </script>
3.3.
3.3.1.
Inyecci
on SQL Foro simple vulnerable
Desde la m
aquina atacante
Volver a la p
agina de inicial del foro: http://modsecurity.ssi.net/foro
Veremos como acceder sin disponer de nombre de usuario ni clave en la pagina de login.
Indicar lo siguiente en la casilla usuario:
usuario: or 1=1 ; #
password: <vac
o>
Confirmamos c
omo se accede la aplicaci
on accede como un usuario autorizado (el primero de la base de datos)
En la m
aquina modsecurity, comprobar c
omo sera la consulta SQL que usara esos parametros (ver el c
odigo
en /var/www/foro/login.php)
root:~# leafpad /var/www/foro/login.php &
3.3.2.
Inyecci
on SQL en Wordpress 1.5.1.1
3. Probaremos la inyecci
on SQL sobre los par
ametros de la consulta de categorias (http://modsecurity.ssi.net/wordpress/
a) Poner en barra de direcciones: (sin espacios)
http://modsecurity.ssi.net/wordpress/index.php?cat=999%20UNION%20SELECT%20null,CONCAT(CHAR(58),user_pass,CHA
admin:e201994dca9320fc94336603b1cfc970
c) Vemos el contenido de la primera fila de la tabla de usuarios, con nombre de usuario admin y el md5 de su
password
Para comprobar que ese es efectivamente es el resumen md5 de la cadena secreto:
Buscar la cadena e201994dca9320fc94336603b1cfc970 en google (sale asociado a la palabra secreto)
Ejecutar en lnea de comandos: echo -n "secreto" | md5sum
3.4.
En la m
aquina virtual modsecurity se encuentra instaladas tres aplicaciones vulnerables (2 en PHP y 1 en Java)
dise
nadas para experimentar con ellas.
Damm Vulnerable Web App en http://modsecurity.ssi.net/dvwa, con login admin y password password
Implementa ejemplos de XSS e inyecci
on SQL y otras vulnerabilidades en tres niveles de dificultad
Web: http://www.dvwa.co.uk/
Mutillidae (NOWASP) en http://modsecurity.ssi.net/mutillidae
Web: http://sourceforge.net/projects/mutillidae/
WebGoat en http://modsecurity.ssi.net:8080/WebGoat/attack, con login guest y password guest
Instalaci
on y arranque: desde el directorio /root/aplicaciones-vulnerables/WebGoat/WebGoat-5.3-RC1
~:#
./webgoat.sh start8080
3.5.
Documentaci
on a entregar
Entregable:
Documentar las pruebas realizadas en los apartados 3.2 (Cross Site Scripting) y 3.3 (Inyeccion SQL), indicando
los resultados obtenidos.
En el caso de las pruebas sobre el foro vulnerable (secciones 3.2.1 y 3.3.1) indicar si es posible los fragmentos
de c
odigo fuente PHP del foro que est
an implicados en dichas vulnerabilidades.
En el caso (opcional) de haber realizado alguna prueba adicional con las aplicaciones vulnerables educativas
aportadas (DVWA, Mutillidae, WebGoat) documentar las mismas.
4.
4.1.
Ejercicio 2: Instalaci
on y experimentaci
on con mod-security
Descripci
on de mod-security
4.2.
Instalaci
on y configuraci
on
libapache-mod-security
2. Descargar y descomprimir la reglas del OWASP ModSecurity Core Rule Set Project
Descarga: OWASP ModSecurity Core Rule Set Project
En la m
aquina modsecurity est
an en el directorio /root/modsecurity
cd /root/modsecurity
tar xzvf SpiderLabs-owasp-modsecurity-crs-v2.2.5.tar.gz
mv SpiderLabs-owasp-modsecurity-crs-v2.2.5 /etc/modsecurity/owasp_rules
3. Ajustar la configuraci
on por defecto de mod-security e indicar el uso de las reglas
cd /etc/modsecurity
cp modsecurity.conf-recommended modsecurity.conf
nano modsecurity.conf
Enlazar en el directorio base_rules los ficheros con las reglas a utilizar (en este caso el conjunto de reglas b
asico
completo)
5. Habilitar el m
odulo mod-security en Apache y reiniciar el servidor
a2enmod mod-security
/etc/init.d/apache2 restart
4.3.
Documentaci
on a entregar
Entregable:
Documentar las pruebas realizadas en los puntos 6 y 8 del ejemplo de instalacion de Mod-Security, indicando los
resultados obtenidos (si se considera oportuno, pueden mostrarse fragmentos de log relevantes, etc).