Instalar WebGoat de forma sencilla

WebGoat es una aplicación web deliberadamente vulnerable, creada para aprender y practicar lecciones de seguridad en aplicaciones web. Así que como ahora tengo tiempo me propuse instalármelo y practicar un poco, el problema vino en el momento que intenté instalarlo, ya que las instrucciones que ponen en la web son algo confusas (al menos para mí).

Si vamos a la página de descargas  (al menos en el momento de escribir éste artículo), vemos que se distribuye de dos formas: un paquete .zip para Windows (o eso se deduce, erróneamente, al leer el nombre del fichero) y en un fichero .war. Entiendo que todo aquél que vea esta situación y lo quiera desplegar en una máquina no Windows, se bajaría el .war, instalaría un Tomcat, desplegaría la aplicación y luego configuraría el Tomcat para que la aplicación funcione correctamente. El problemilla es que esas configuraciones no están documentadas en ningún lado y las tienes que ir viendo por “ingeniería inversa” (como mínimo vi que se tenían que definir los roles en tomcat-users.xml). Pues vaya rollo ¿no? Aunque para un sysadmin como yo, con los huevos “pelaos” de desplegar aplicaciones sobre Tomcat, tampoco sería un trabajo muy arduo 😛

Aunque si le echamos un ojo al paquete para Windows, vemos que hay un directorio con la aplicación desplegada y el Tomcat configurado. Y como Tomcat está escrito en Java pues “Run everywhere” y usamos este paquete para nuestro Linux:

cd /tmp
wget -c http://webgoat.googlecode.com/files/WebGoat-5.4-OWASP_Standard_Win32.zip
unzip WebGoat-5.4-OWASP_Standard_Win32.zip
mv WebGoat-5.4/tomcat /opt/WebGoat-5.4
chmod +x /opt/WebGoat-5.4/bin/catalina.sh
ln -s /opt/WebGoat-5.4/bin/catalina.sh /etc/init.d/WebGoat

De este modo ya podemos levantar/parar la aplicación WebGoat mediante

/etc/init.d/WebGoat start
/etc/init.d/WebGoat stop

Y por defecto la tendremos escuchando por el puerto 8080, por lo que entramos a http://hostname:8080/WebGoat/attack y ya podemos empezar a jugar 🙂

PD: Ya sé que para mis avezados lectores esta advertencia no es necesaria, pero por si acaso. Recordad que esta aplicación es vulnerable por lo que no la instaléis en ninguna máquina que sea accesible desde Internet.

Compartir ficheros en una red local de forma fácil y sencilla (con Netcat)

Una de las cosas que más rabia me dan es cuando quieres copiar un fichero (algo grande) entre dos equipos que tienes en casa.

Un método sencillo y rápido es copiarlo en un pendrive y moverlo de un equipo a otro, el problema es que nunca encuentro un pendrive que funcione cuando lo necesito (tengo un montón de petados).

Otra idea sería la de configurar un servidor de SSH en un equipo y copiarlos por SCP, lo cual también sería efectivo, pero te obliga a instalar y configurar un servidor de SSH, otro problema sería que podrías estar desperdiciando ancho de banda debido a que el fichero se tiene que cifrar antes de enviar (tal vez en la red de casa te dé igual, pero si estás en la oficina podrías estar desperdiciando una buena conexión a gigabit).

Para ello puedes emplear Netcat (la navaja suiza de los administradores de red :P), simplemente ejecuta lo siguiente en el equipo donde quieres recibir el fichero:

nc -l ${puerto} > ${nombredelfichero}

Lo que arrancará una instancia de Netcat que escuchará el puerto que le hayas indicado en $puerto. En el equipo que esté el fichero que quieres copiar escribe:

cat ${nombredelfichero} | nc ${ipdestino} ${puerto}

Lo que enviará el fichero hacia el equipo destino, sin “perder tiempo” cifrando el contenido y sin tener que instalar ni configurar ningún extra.

Usar memorias USB y compartir carpetas con VirtualBox OSE

Buenas, hoy traigo un HowTo muy sencillo para ir empezando con la sección más “técnica” de este blog.


Una de las featuresmás interesantes, para el usuario medio, de la versión privativa de VirtualBox, es la capacidad de montar las unidades USB en el sistema virtual. Lo cual es útil cuando quieres transportar cómodamente los datos del sistema virtual, por ejemplo para prácticas de universidad.

Pero esta característica es emulable gracias a que en los sistemas Unix todo se considera un fichero (y las unidades USB también ;)).

Antes de nada veamos como compartir un directorio de nuestro GNU/Linux con un Windows XP virtualizado.Primero debemos de indicarle al Virtualbox cuál es la carpeta que vamos a compartir. Para ello escribimos en la consola:

ataulfo@vidimensional:~$ vboxmanage sharedfolder add Nombre -name /carpeta/carpeta -hostpath /carpeta/carpeta

Donde ‘Nombre’ es el nombre que tenga la maquina virtual en Virtual Box (ojo con las mayúsculas) y /carpeta/carpeta pues la ruta del directorio que vamos a compartir.

Luego entramos en Windows XP y una vez allí, abre “Mi PC” y en el menú “Herramientas” > “Conectar una unidad de red” seleccionamos la unidad que nos plazca (por defecto, Z:) y en la dirección debemos poner: VBOXSVR/carpeta/carpeta.

Y si todo a transcurrido normalmente veremos una nueva unidad de red en nuestro Mi Pc, que podremos usar normalmente.

Para poder usar la unidad USB, simplemente debemos compartir el directorio donde nos monte el USB (/media/usb, por ejemplo) y ya tendremos acceso a nuestra memoria USB.