Está en la página 1de 6

A lo largo del ao pasado se descubrieron varias vulnerabilidades que afectan a servidores,

como fue el caso de Heartbleed. Sin embargo tambin siguen vigentes muchas
vulnerabilidades clsicas de hace algunos aos como Cross Site Scripting (XSS) o
inyecciones SQL, que terminan por afectar la seguridad y confidencialidad de los usuarios.

En este post veremos cmo configurar un laboratorio de pruebas para auditoras web, donde
se encontrarn las vulnerabilidades ms habituales con diferentes niveles de dificultad, para
comprender cmo funcionan.

Uno de los laboratorios disponibles es Damn Vulnerabilty Web Aplication (DVWA), que
usaremos para esta prctica. Una vez descargado se debe descomprimir y mover al
directorio del servidor web.

En este ejemplo hemos montado el laboratorio en un sistema operativo Linux, pero no


existe ningn inconveniente en hacerlo en Windows. Para esta aplicacin web hemos
utilizado Apache2. Cuando el descomprimido se ha movido al directorio del servidor web
(en este caso /var/www de Apache2), debera verse algo similar a la captura que se muestra
a continuacin:

Aqu pueden apreciarse todos los archivos de la aplicacin, los cuales son necesarios para
el correcto funcionamiento del laboratorio. Una vez realizado el traslado del directorio de la
aplicacin, debemos otorgarle permisos, y para hacerlo vamos a recurrir al comando
chown.

Para ejecutar este permiso es necesario ejecutar el comando de la siguiente manera:

Aqu ya se ha movido el directorio a la carpeta del servidor donde permitir acceder una
vez iniciado Apache2 y se le han otorgado los permisos para que pueda funcionar
correctamente. En primer lugar se debe iniciar la base de datos MySQL, lo cual se logra de
la siguiente manera:

Ahora debemos crear la base de datos (en este caso MySQL) para que la aplicacin pueda
conectarse y permita el inicio de sesin de los usuarios; para hacerlo basta con escribir el
comando mysql (valido solo para modo local) en una terminal de comandos. En caso que la
base de datos se encuentre en un servidor remoto, el comando a ejecutar es mysql h
[servidor] u [usuario] p [para que solicite contrasea de acceso].
Veamos el ejemplo:

En la captura anterior observamos que con el comando CREATE DATABASE <Nombre>


se crea la nueva base de datos, que en este caso se llama dvwa por las siglas de su nombre.
Hecho el paso anterior ya se puede salir de la consola mysql con el comando exit. Ahora ya
est en condiciones para iniciar las instancias necesarias para correr la aplicacin.

Ahora que el servicio MySQL ya se encuentra funcionando correctamente, solo resta iniciar
la instancia del servidor web Apache2. Para hacerlo es similar al caso de MySQL, solo que
se cambia el nombre a Apache2:

Con los servicios iniciados ya estamos en condiciones de acceder a la aplicacin, para


hacerlo solo basta con abrir el navegador web y acceder la direccin http://localhost/dvwa.
Una vez que se accede a la direccin web mencionada, aparecer un portal como el
siguiente:
Si bien ya fue creada la base de datos en MySQL, todava no fue configurada. Para hacer
esto basta con hacer clic en las letras azules here (remarcado con recuadro rojo en la
captura anterior). Una vez hecho esto se accede a la siguiente pantalla:

Presionando el botn para crear la base de datos, realizar las configuraciones


correspondientes:
Ahora ya est todo funcionando correctamente, solo basta con acceder al botn Home en la
columna izquierda para proceder con el login de usuario. En la pantalla de acceso basta con
ingresar los siguientes datos para acceder:

Usuario: admin
Contrasea: password

El ingreso a la aplicacin permitir seleccionar la configuracin del nivel de dificultad con


el cual se quiere auditar la aplicacin web. Al seleccionar las diferentes dificultades entre
baja, media y alta, automticamente se realizarn las configuraciones pertinentes en la
aplicacin para ajustar las vulnerabilidades desde lo ms fcil a lo ms difcil:
Aqu ya se puede comenzar a probar las diferentes vulnerabilidades que posee la aplicacin.
En este caso, para probar una de estas, decidimos por ejemplo hacerlo en Command
Execution. Este panel presenta una vulnerabilidad a la hora de comprobar la conectividad
haciendo uso del comando ping, la cual sin embargo desde ese mismo campo de entrada de
direccin IP es posible saltear el comando ping para ejecutar otro comando como por
ejemplo leer el archivo /etc/passwd:

Este tipo de funcionalidad o herramientas es habitual encontrarlas por ejemplo en routers


de Internet, por eso es muy importante tambin actualizar el sistema operativo de estos
dispositivos de conectividad, para corregir este tipo de fallas. Veamos un ejemplo de
concatenacin de comandos:
En el ejemplo mostrado se ve cmo se ejecuta el ping a la direccin IP 192.168.1.1 y
seguido de esto, concatena el comando ls /var/www/dvwa (listado del directorio web)
mostrando toda la informacin requerida en el campo de entrada.

De esta forma, se pueden probar las diferentes vulnerabilidades que posee la aplicacin en
sus diferentes niveles. Este tipo de plataformas educativas tienen como finalidad ayudar a
comprender cmo funcionan algunas de las ms conocidas, permitiendo obtener el
conocimiento necesario para detectar proactivamente estas fallas en sitios propios, y
corregirlas antes de que sean explotadas por atacantes.

Estos conocimientos sern muy tiles a la hora de montar sitios web propios y revisar al
menos las vulnerabilidades bsicas, permitiendo realizar las correcciones
correspondientes en tiempo y forma.

Vale la pena remarcar que esta plataforma fue montada localmente en una computadora
propia, lo que significa que no requiere ningn tipo de conectividad a Internet para poder
acceder. Es importante destacar que no ser infringida la ley, ya que es un entorno de
pruebas especialmente diseado para este tipo de auditoras.

Crditos imagen: sobriquet.net/Flickr