En este capítulo Crea tu laboratorio de pentesting web gratis, veremos qué máquinas vulnerables y repositorios usar (bWAPP, Metasploitable, OWASP BWA, Bee-Box, VulnHub, etc.), cómo levantarlas en VirtualBox, y buenas prácticas para que tus VMs funcionen rápido y seguras en tu equipo. Esto es imprescindible en tu carrera como hacker porque la teoría sin práctica no vale: desarrollarás habilidad para identificar vulnerabilidades reales, reproducir ataques, usar herramientas (Burp, Metasploit, scanners) y preparar informes — todo en un entorno controlado y legal.
Cómo explique desde un principio este curso va a ser sumamente practico y vamos a ver los laboratorios de INE, Hack the box y Try Hack Me. Ahora es entendible que no tengas acceso a los labs de INE si no estas suscripto. Ni este ni ningún artículo se crea como publicidad ni con el incentivo de que los adquieras, al contrario lo muestro para aquellos que aún no han tenido acceso y que ya sepan a qué se enfrentan. Lo mismo aplica a THM y HTB, con la diferencia de que hay muchas box free que la suscripción es sensiblemente más económica.
Pero por supuesto existe una posibilidad de hacer esto totalmente free, 0$, realmente con 0 pesitos. Y no es broma nos basaremos en:
Máquinas / imágenes VM y repositorios de laboratorio
- Metasploitable 2 / Metasploitable 3 — imágenes VM intencionalmente vulnerables que traen servicios web, bases de datos y apps antiguas.
- OWASP Broken Web Applications (BWA) Project — un bundle de muchas apps vulnerables (Mutillidae, WebGoat, DVWA, etc.) empaquetadas para laboratorio.
- Web Security Dojo / Bee-box — VM preparada con múltiples aplicaciones vulnerables y herramientas para practicar.
- VulnHub (máquinas) — repositorio de VMs vulnerables (descargables) tipo CTF/retos; buscar “web” te salen muchas máquinas enfocadas en aplicaciones web.
Aplicaciones web vulnerables muy populares
- Mutillidae / Mutillidae II (OWASP) — app intencionalmente vulnerable, muy usada para aprender OWASP Top10.
- DVWA (Damn Vulnerable Web Application) — clásica para practicar SQLi, XSS, RCE, etc.
- bWAPP (buggy Web APP) — gran colección de vulnerabilidades web (más de 100).
- OWASP WebGoat — laboratorio didáctico con lecciones paso a paso sobre vulnerabilidades.
- OWASP Juice Shop — aplicación moderna (e-commerce) con muchísimas vulnerabilidades y retos gamificados
- Damn Vulnerable Web Shop / Vulnerable Web Shop — varias implementaciones que replican una tienda online insegura para practicar ataques a e-commerce.
- NodeGoat — versión para aplicaciones Node.js con vulnerabilidades intencionales.
- Security Shepherd — plataforma con retos de seguridad web orientados a aprendizaje seguro.
- Hackazon — aplicación web tipo e-commerce vulnerable (simula tienda) — muy usada en laboratorios.
- Vulnerable WordPress (WPScan test sites / old WP + plugins vulnerables) — versiones antiguas y plugins inseguros para practicar explotación CMS.
- DVWA + phpMyAdmin vulnerable versions — phpMyAdmin con malas configuraciones / versiones antiguas suele ser buena práctica.
Servicios / vectores concretos a desplegar
- Aplicaciones con WebDAV habilitado (DAV vulnerable setups) — para practicar RCE/explotación de upload/overwrite.
- Tomcat with manager app (vulnerable configs) — explotar manager/war upload.
- Legacy PHP apps / custom CRUD apps con inseguridades — encontrar en VulnHub o BWA.
Plataformas online y labs
- TryHackMe — rooms tipo “OWASP Top 10”, “Juice Shop”, “DVWA” — entornos guiados y accesibles online.
- Hack The Box — retired boxes & web challenges — muchas máquinas web para pentest (requieren suscripción o caja pública).
- PortSwigger Web Academy — lecciones interactivas (sin VM) para practicar XSS, SQLi, SSRF, etc.
- Acunetix / Netsparker demo sites (vulnweb / testphp.vulnweb.com) — sitios públicos intencionalmente inseguros para pruebas.
- PicoCTF: tiene una sección dedicada a máquinas para hacking web
Repos / proyectos útiles para montar localmente
- OWASP SeedLabs — labs y ejercicios para montar.
- Docker images: muchas de las apps anteriores (DVWA, Mutillidae, Juice Shop, bWAPP, WebGoat, NodeGoat) tienen imágenes Docker oficiales o de la comunidad — muy cómodas para levantar rápido.
Evalúo la posibilidad de crear mis propias máquinas y lab de prueba, pero como dije esto es todo 100% a pulmón y ni un cafecito he agregado para que se auto sustente, quiero hacer algo libre, soluciones de pago hay de sobra. Ok, vamos por partes.
Recomendaciones
Excluye directorios en el antivirus. La solución de seguridad de tu equipo puede estar escaneando los archivos de la máquina virtual cada vez que se acceda a ellos, reduciendo el rendimiento. El antivirus no puede ver el interior de la máquina virtual para detectar virus que se ejecuten en sistema operativo invitado, por lo que esta exploración es inútil. Para acelerar las cosas, añade el directorio de la máquina virtual a la lista de exclusiones de tu antivirus.
Suspender en lugar de apagar. Cuando hayas terminado de utilizar la máquina virtual, es posible que desees guardar su estado en lugar de apagarla completamente. La próxima vez que la necesites, basta hacer un doble clic para ponerla en marcha. El sistema operativo huésped se reanudará donde lo dejó en lugar de arrancar desde cero. La función es similar a la hibernación o suspensión. La aplicación guarda el contenido de la memoria de la máquina virtual en un archivo en el disco duro, para cargarla cuando lo requiera el usuario.
Para máquinas virtuales, mejora tu hardware. Todo lo dicho anteriormente es una ayuda para mejorar el rendimiento de nuestras máquinas virtuales pero, no hay milagros al utilizar este recurso tecnológico. Aquí sí vale el dicho de cuanto más mejor. Como habrás visto, para que funcionen adecuadamente tenemos que cederles recursos de nuestra máquina principal. Y no pocos. Si tu hardware no es lo suficientemente potente y las utilizas, puedes bloquear por completo tu equipo en cuanto ejecutes un sistema que requiera un cierto nivel de potencia, si bien el consumo de recursos de, por ejemplo, Windows 11 o DOS es totalmente diferente.
Usaremos Virtual box que ya deberías tener instalado del capitulo anterior en donde instalaste Kali Linux. Pero suponiendo que llegaste a este artículo de forma random:
Descargas
Descargar VirtualBox: https://www.virtualbox.org/

Instalación de VirtualBox

Instalación típica de Windows, Ejecutar VirtualBox-7, Next, Next, Yes

Yes

Next, Install

Finish
bWAPP
Este completo tutorial te enseñará a realizar pentesting y comprobar las principales vulnerabilidades Web a través de la herramienta bWAPP. Creado por Malik Messelem , bWAPP (abreviatura en ingles de «aplicación web con fallos») es posiblemente, dentro de los Hacker Simulator, una de las aplicaciones gratuitas y de código abierto más conocida, esta creada de forma deliberada con vulnerabilidades. Es de los mejores, si no el mejor, con fallos deliberados para practicar y mejorar nuestras habilidades de hacking. Ya sea para un entusiasta de la ciberseguridad, un apasionado, un estudiante, un desarrollador o un profesional que sencillamente busca divertirse, este entorno, nos va a ayudar a efectuar y mejorar nuestras habilidades de hacking y pruebas de penetración en un entorno excelente. Lo que hace que bWAPP sea único, es que ofrece más de cien vulnerabilidades y fallos de aplicaciones web derivados del ya conocidísimos Proyecto Top diez de OWASP.

Algunas de las vulnerabilidades son:
- Cross-site scripting (XSS), rastreo entre sitios (XST) y falsificación de peticiones entre sitios (CSRF)
- Ataques de Man in the Midle
- Falsificación de petición del lado del servidor (SSRF)
- Ataques DoS
- Inyecciones de SQL, HTML, iFrame, SSI, OS Command, PHP, XML, XPath, LDAP, Host Header y SMTP y mucho más …
bWAPP está construido en PHP y emplea una base de datos MySQL. Se puede alojar tanto en el sistema operativo Windows como en Linux: en Windows, puede alojarse en el servidor xampp y wamp, en Linux, Apache, e igualmente es genial para utilizar en Kali Linux.
- Puedes descargarte bWAPP desde su web .
- Web del proyecto: http://sourceforge.net/projects/bwapp/

Puede ser alojado en Linux o Windows sobre Apache o IIS y MySQL. Se admite en WAMP o XAMPP. Otra posibilidad es utilizar una máquina virtual que sirve para VMware o para VirtualBox. bWAPP es libre y abierto, se puede descargar en dos versiones una para utilizar en forma local y otra para instalar en una máquina virtual. El sitio web está desarrollado en PHP y MySQL por lo que es multiplataforma. Descargamos instalar bWAPP en local,en este caso lo haremos en kali linux.
Luego ir a la ubicación que hemos descargado BWAPP, abrimos el explorador como administrador y copiamos el archivo a /var/www/html y descomprimimos o por línea de comandos:
unzip bWAPPv2.2.zip -d /var/www/html
Después de haber descomprimido vamos a darle permisos.
chmod -R 777 /var/www/html/bWAPPv2.2
Ejecutamos apache y msql
service apache2 start
service mysql start

Listo ahora pueden ir a su navegador o colocar la IP de su máquina o sino colocar localhost
http://127.0.0.1/bWAPPv2.2/bWAPP/install.php
Le damos here!

En Windows deben instalar wampServer Download wampserver3.3.0_x64.exe (WampServer) (sourceforge.net)

Instalamos e iniciamos, si todo va bien vamos a ver un icono nuevo en la barra



http://127.0.0.1/bWAPP/login.php

Ahora si… happy hacking
Bee-Box
Si deseamos instalar en una máquina virtual el proyecto es Bee-Box. Bee-box es una máquina virtual Linux con todo preinstalado. Así solo deberemos explorar todas las vulnerabilidades bWAPP sin correr el riesgo de desfigurar el sitio web bWAPP. Además con la máquina virtual podremos intentar conseguir acceso root. Instalaremos la versión Bee-Box de bWAPP, para ello descomprimimos el archivo que descargamos y los creara una carpeta con muchos archivos vmdk a nuestro servidor local. A continuación crearemos la máquina virtual asignando una versión Linux Ubuntu de 32 bit.


A continuación deberemos seleccionar el archivo descargado denominado bee-box.vdmk


Antes de iniciar la máquina virtual, recordemos que deberemos configurar la red esto la hacemos desde Configuración para poder tener una dirección IP y poder acceder a la máquina virtual desde otro equipo.

Hacemos clic en crear y luego en Iniciar, para que la máquina virtual comience a funcionar, una vez cargada veremos el escritorio.

INSTALACIÓN DE METASPLOITABLE 2
.
Metasploitable es un sistema operativo que ha sido diseñado con el objetivo de ser vulnerado con sencillez y gracias a esto poder llevar a cabo cientos de pruebas de penetración para mejorar la seguridad y prevenir ataques a corto, mediano o largo plazo.
Qué es Metasploitable
Es un sistema de Linux que ha sido desarrollado con las más altas vulnerabilidades de seguridad en el cual podemos llevar a cabo todas las pruebas necesarias para perfeccionar las técnicas de seguridad o conocer cómo sacar el máximo provecho a aplicaciones diseñadas para este fin. Metasploitable no cuenta con entorno gráfico y se recomienda ser usado en redes privadas exclusivamente debido a su tolerancia a ataques. Es de código abierto y permite realizar pruebas de vulnerabilidades en archivos incrustados, atributos de archivo, permisos, etc. A continuación veremos cómo instalar Metasploitable en VirtualBox para realizar las diversas pruebas según sea la necesidad de cada uno.
Requisitos previos
Para esto será necesario contar con lo siguiente:
Para iniciar el proceso podremos crear la máquina virtual en VirtualBox pulsando en el icono Nueva ubicado en el costado superior y en la ventana desplegada ingresaremos los siguientes valores:

Pulsamos en Next y en la siguiente ventana podremos dejar el valor de la memoria RAM por defecto, 2048MB, o bien asignar un poco más si así lo deseamos.

De nuevo pulsamos en Next y en la siguiente ventana seleccionamos la opción Crear un disco duro virtual ahora:

Pulsamos en Next y en Terminar.

Ahora pulsaremos en el botón Iniciar para comenzar el proceso de instalación del sistema.

Este proceso tarda alrededor de 5 minutos y veremos lo siguiente:

Las credenciales de acceso son:
- Usuario: msfadmin
- Contraseña: msfadmin

De esta forma podremos usar Metasploitable con todas las pruebas necesarias.
Contraseñas débiles. Además de las puertas traseras y configuraciones incorrectas más evidentes, Metasploitable 2 ofrece una seguridad de contraseñas deficiente tanto para las cuentas del sistema como para las del servidor de bases de datos. El usuario administrativo principal msfadmintiene una contraseña que coincide con el nombre de usuario. Al descubrir la lista de usuarios de este sistema, ya sea mediante otra vulnerabilidad para capturar el archivo passwd o enumerando estos ID de usuario mediante Samba, se puede usar un ataque de fuerza bruta para acceder rápidamente a varias cuentas de usuario. Como mínimo, las siguientes cuentas de sistema débiles están configuradas en el sistema.
| Nombre de la cuenta | Contraseña |
| administrador de msfa | administrador de msfa |
| usuario | usuario |
| Postgres | Postgres |
| sistema | ordenanza |
| klog | 123456789 |
| servicio | servicio |
Además de estas cuentas a nivel de sistema, se puede acceder al servicio PostgreSQL con nombre de usuario postgresy contraseña postgres, mientras que el servicio MySQL está abierto con nombre de usuario rooty contraseña vacía. El servicio VNC proporciona acceso a escritorios remotos mediante contraseña password. Servicios web vulnerables: Metasploitable 2 tiene aplicaciones web vulnerables preinstaladas deliberadamente. El servidor web se inicia automáticamente al iniciar Metasploitable 2. Para acceder a las aplicaciones web, abra un navegador web e introduzca la URL http://<IP>donde <IP>está la dirección IP de Metasploitable 2. Una forma de lograr esto es instalar Metasploitable 2 como sistema operativo invitado en Virtual Box y cambiar la configuración de la interfaz de red de «NAT» a «Solo host». (Nota: Hay un videotutorial sobre la instalación de Metasploitable 2 disponible aquí ).
En este ejemplo, Metasploitable 2 se ejecuta en la dirección IP 192.168.56.101. Al navegar a http://192.168.56.101/ se muestra la página de inicio de la aplicación web.

192.168.56/24 es la red predeterminada «solo para host» en Virtual Box. Las direcciones IP se asignan a partir de «101». La dirección IP de Metasploitable 2 variará según el orden de inicio de los sistemas operativos invitados.
Para acceder a una aplicación web específica, haga clic en uno de los enlaces proporcionados. También se puede acceder a aplicaciones web individuales añadiendo el nombre del directorio de la aplicación a [ http://<IP>URL] http://<IP>/<Application Folder>/. Por ejemplo, se puede acceder a la aplicación Mutillidae (en este ejemplo) en la dirección [dirección http://192.168.56.101/mutillidae/]. Las aplicaciones se instalan en Metasploitable 2 en el /var/wwwdirectorio [Nota: Consulte la lista con el comando [comando] ls /var/www]. En la versión actual, al momento de escribir este artículo, las aplicaciones están .
- mutilidae (NOWASP Mutillidae 2.1.19)
- dvwa (Maldita aplicación web vulnerable)
- phpMyAdmin
- tikiwiki (TWiki)
- tikiwiki-viejo
- dav (WebDav)
Mutillidae
La aplicación web Mutillidae ( NOWASP (Mutillidae) ) contiene todas las vulnerabilidades del Top Ten de OWASP, además de otras como el almacenamiento web HTML-5, el almacenamiento en caché de formularios y el secuestro de clics. Inspirada en DVWA, Mutillidae permite al usuario cambiar el «Nivel de Seguridad» de 0 (completamente inseguro) a 5 (seguro). Además, se proporcionan tres niveles de sugerencias, desde «Nivel 0 – Me esfuerzo más» (sin sugerencias) hasta «Nivel 2 – novato» (máximo de sugerencias). Si la aplicación resulta dañada por inyecciones y ataques del usuario, al hacer clic en el botón «Restablecer base de datos» se restablece a su estado original.
Los tutoriales sobre el uso de Mutillidae están disponibles en el canal de YouTube webpwnized .

Habilite las sugerencias en la aplicación haciendo clic en el botón “Activar sugerencias” en la barra de menú:

La aplicación Mutillidae contiene al menos las siguientes vulnerabilidades en estas respectivas páginas:
| Página | Vulnerabilidades |
| añadir-a-tu-blog.php | Inyección SQL en una entrada de blog Inyección SQL en un nombre de usuario que ha iniciado sesión Scripting entre sitios en una entrada de blog Scripting entre sitios en un nombre de usuario que ha iniciado sesión Inyección de registro en un nombre de usuario que ha iniciado sesión CSRF Omisión de validación de JavaScript XSS en el título del formulario a través del nombre de usuario que ha iniciado sesión La cookie show-hints puede ser modificada por el usuario para habilitar las sugerencias aunque no se supone que se muestren en modo seguro |
| inclusión-de-archivo-arbitrario.php | Compromiso de archivos del sistema Cargar cualquier página desde cualquier sitio |
| información del navegador.php | XSS a través del encabezado HTTP de referencia Inyección JS a través del encabezado HTTP de referencia XSS a través del encabezado HTTP de cadena de agente de usuario |
| captura-datos.php | XSS a través de cualquier GET, POST o Cookie |
| datos capturados.php | XSS a través de cualquier GET, POST o Cookie |
| config.inc* | Contiene credenciales de base de datos sin cifrar |
| créditos.php | Redirecciones y reenvíos no validados |
| búsqueda de dns.php | Scripting entre sitios en el campo host/ip. Inyección de comandos del sistema operativo en el campo host/ip . Esta página escribe en el registro. SQLi y XSS en el registro son posibles. GET para POST es posible porque no se exige solo la lectura de variables publicadas. |
| pie de página.php* | Scripting entre sitios a través del encabezado HTTP_USER_AGENT. |
| enmarcado.php | Secuestro de clics |
| encabezado.php* | XSS a través del nombre de usuario y la firma que iniciaron sesión El elemento de menú Configurar/restablecer la base de datos se puede habilitar configurando el valor uid de la cookie a 1 |
| almacenamiento html5.php | Inyección de DOM en el mensaje de error de agregar clave porque la clave ingresada se muestra en el mensaje de error sin estar codificada |
| índice.php* | Puedes usar XSS en la salida con sugerencias habilitadas en el menú, ya que toma la entrada del valor de la cookie con sugerencias habilitadas. Puedes inyectar SQL en el valor de la cookie UID, ya que se usa para realizar una búsqueda. Puedes cambiar tu rango a administrador modificando el valor UID. División de la respuesta HTTP mediante el nombre de usuario conectado, ya que se usa para crear un encabezado HTTP. Esta página es responsable del control de caché, pero no lo hace. Esta página permite los comentarios HTML del encabezado HTTP X-Powered-By. Hay páginas secretas que, si se navegan, redirigirán al usuario a la página phpinfo.php. Esto se puede hacer mediante fuerza bruta. |
| registro-visita.php | Inyección SQL y XSS a través del encabezado HTTP de referencia Inyección SQL y XSS a través de la cadena de agente de usuario |
| inicio de sesión.php | Omisión de autenticación Inyección SQL a través del campo de nombre de usuario y el campo de contraseña Inyección SQL a través del campo de nombre de usuario y el campo de contraseña XSS a través del campo de nombre de usuario Omisión de validación de JavaScript |
| generador-de-contraseñas.php | Inyección de JavaScript |
| búsqueda de herramienta de prueba de penetración.php | Inyección JSON |
| phpinfo.php | Esta página revela la configuración del servidor PHP Divulgación de la ruta de la aplicación Divulgación de la ruta de la plataforma |
| proceso-comandos.php | Crea cookies pero no las convierte solo en HTML |
| proceso-intento-de-inicio-de-sesión.php | Igual que login.php. Esta es la página de acción. |
| redireccionandlog.php | Igual que credits.php. Esta es la página de acción. |
| registro.php | Inyección SQL y XSS a través del campo de nombre de usuario, firma y contraseña |
| rene-magritte.php | Secuestro de clics |
| robots.txt | Contiene directorios que se supone que son privados |
| páginas-administrativas-secretas.php | Esta página ofrece sugerencias sobre cómo descubrir la configuración del servidor. |
| establecer-color-de-fondo.php | Inyección de hojas de estilo en cascada y XSS a través del campo de color |
| mostrar-log.php | Denegación de servicio si completa el registro XSS a través del nombre de host, la IP del cliente, el encabezado HTTP del navegador, el encabezado HTTP del referente y los campos de fecha |
| pie de página del sitio xss-discusson.php | XSS a través del encabezado HTTP de la cadena del agente de usuario |
| visor de código fuente.php | Carga de cualquier archivo arbitrario, incluidos los archivos del sistema operativo. |
| visor de archivos de texto.php | Carga de cualquier página web arbitraria en internet o localmente, incluyendo los archivos de contraseñas del sitio. Suplantación de identidad (phishing). |
| información del usuario.php | Inyección SQL para volcar todos los nombres de usuario y contraseñas mediante el campo de nombre de usuario o el campo de contraseña . XSS mediante cualquiera de los campos mostrados. Inyectar el XSS en la página register.php. XSS mediante el campo de nombre de usuario . |
| encuesta-de-usuario.php | Contaminación de parámetros GET para POST XSS a través del parámetro de elección Falsificación de solicitud entre sitios para forzar la elección del usuario |
| ver-el-blog-de-alguien.php | XSS a través de cualquiera de los campos mostrados. Se introducen al añadir a la página del blog. |
DVWA
Desde la página principal de DVWA: «Damn Vulnerable Web App (DVWA) es una aplicación web PHP/MySQL extremadamente vulnerable. Sus principales objetivos son ayudar a los profesionales de la seguridad a poner a prueba sus habilidades y herramientas en un entorno legal, ayudar a los desarrolladores web a comprender mejor los procesos de seguridad de aplicaciones web y ayudar a profesores y estudiantes a enseñar y aprender seguridad de aplicaciones web en el aula».
DVWA contiene instrucciones en la página de inicio y hay información adicional disponible en Wiki Pages – Damn Vulnerable Web App .
- Nombre de usuario predeterminado : admin
- Contraseña predeterminada – contraseña

Divulgación de información
Además, se puede encontrar una página de divulgación de información de PHP poco recomendable en [insertar contexto] http://<IP>/phpinfo.php. En este ejemplo, la URL sería http://192.168.56.101/phpinfo.php . La vulnerabilidad de divulgación de información de PHP proporciona información interna del sistema y de la versión del servicio que puede utilizarse para buscar vulnerabilidades. Por ejemplo, si la versión de PHP divulgada en la captura de pantalla es la 5.2.4, es posible que el sistema sea vulnerable a CVE-2012-1823 y CVE-2012-2311 , que afectaban a PHP anteriores a la versión 5.3.12 y a la versión 5.4.x anterior a la 5.4.2.

Puedes descargar Metasploitable 2 aquí .
OWASP Broken Web Applications Project
Broken Web Application (BWA) es un proyecto de OWASP que proporciona una máquina virtual autónoma completa con una variedad de aplicaciones con diferentes tipos de vulnerabilidades conocidas. Las aplicaciones en esta VM proporcionarán a los estudiantes o alumnos un buen medio para aprender sobre la seguridad de las aplicaciones web, practicar sus habilidades, observar los ataques web y hacer uso de herramientas de penetración como Burp. La máquina virtual OWASP BWA que mencioné anteriormente se puede descargar desde https://sourceforge.net/projects/owaspbwa/

Este proyecto incluye aplicaciones de código abierto de diversos tipos. A continuación, se muestra una lista de las aplicaciones y versiones disponibles actualmente en la máquina virtual. Un número de versión que termina en +SVN o +GIT indica que la aplicación se extrae directamente a la máquina virtual desde su repositorio público de código fuente y que el código en ejecución puede ser posterior al número de versión indicado. Las listas a continuación están actualizadas a la versión 1.2.
Aplicaciones de formación
Estas Aplicaciones estan diseñadas para el aprendizaje que guían al usuario hacia vulnerabilidades específicas e intencionadas. * OWASP WebGoat versión 5.4+SVN (Java) * OWASP WebGoat.NET versión 2012-07-05+GIT (ASP.NET) * OWASP ESAPI Java SwingSet Interactive versión 1.0.1+SVN (Java) * OWASP Mutillidae II versión 2.6.24+SVN (PHP) * OWASP RailsGoat (Ruby on Rails) * OWASP Bricks versión 2.2+SVN (PHP) * OWASP Security Shepherd versión 2.4+GIT (Java) * Ghost (PHP) * Magical Code Injection Rainbow versión 2014-08-20+GIT (PHP) * bWAPP versión 1.9+GIT (PHP) * Damn Vulnerable Web Application versión 1.8+GIT (PHP)
Aplicaciones realistas e intencionalmente vulnerables
Son aplicaciones con diversas vulnerabilidades de seguridad intencionales, pero diseñadas para funcionar como una aplicación real. * OWASP Vicnum versión 1.5 (PHP/Perl) * OWASP 1-Liner (Java/JavaScript) * Google Gruyere versión 15/07/2010 (Python) * Hackxor versión 06/04/2011 (Java JSP) * WackoPicko versión 12/07/2011 + GIT (PHP) * BodgeIt versión 1.3 + SVN (Java JSP) * Cyclone Transfers (Ruby on Rails) * Peruggia versión 1.2 (PHP)
Versiones antiguas de aplicaciones reales
Aplicaciones de código abierto con uno o más problemas de seguridad conocidos. * WordPress 2.0.0 (PHP, publicado el 31 de diciembre de 2005) con complementos: * myGallery versión 1.2 * Spreadsheet for WordPress versión 0.6 * OrangeHRM versión 2.4.2 (PHP, publicado el 7 de mayo de 2009) * GetBoo versión 1.04 (PHP, publicado el 7 de abril de 2008) * gtd-php versión 0.7 (PHP, publicado el 30 de septiembre de 2006) * Yazd versión 1.0 (Java, publicado el 20 de febrero de 2002) * WebCalendar versión 1.03 (PHP, publicado el 11 de abril de 2006) * Gallery2 versión 2.1 (PHP, publicado el 23 de marzo de 2006) * TikiWiki versión 1.9.5 (PHP, publicado el 5 de septiembre de 2006) * Joomla versión 1.5.15 (PHP, publicado el 4 de noviembre de 2009) * AWStats versión 6.4 (compilación 1.814, Perl, publicada el 25 de febrero de 2005)
Aplicaciones para herramientas de prueba
Estas aplicaciones son diseñadas para probar herramientas automatizadas como escáneres de seguridad de aplicaciones web. * OWASP ZAP-WAVE versión 0.2+SVN (Java JSP) * WAVSEP versión 1.5 (Java JSP) * WIVET versión 3+SVN (PHP)
Páginas de demostración / Aplicaciones pequeñas
Pequeñas aplicaciones o páginas con vulnerabilidades intencionales para demostrar conceptos específicos. * Aplicación de prueba OWASP CSRFGuard versión 2.2 (Java) * Formularios Mandiant Struts (Java/Struts) * Formularios ASP.NET simples (ASP.NET/C#) * Formulario simple con DOM, secuencias de comandos entre sitios (HTML/JavaScript)
Aplicaciones de demostración de OWASP
Demostración de una aplicación OWASP. No contiene vulnerabilidades intencionales. * Aplicación de demostración OWASP AppSensor (Java)
Empezando
Descargar
La máquina virtual se puede descargar como archivo .zip o como un archivo .7z 7-zip mucho más pequeño . ¡Ambos archivos contienen exactamente la misma máquina virtual! Recomiendo descargar el archivo .7z si es posible para ahorrar ancho de banda (y tiempo). 7-zip está disponible para Mac, Linux y otros sistemas operativos . Windows y Linux suelen abrir archivo ZIP nativamente.
Descargar desde http://sourceforge.net/projects/owaspbwa/files/ .
Formato de máquina virtual
El Proyecto de aplicaciones web rotas del Proyecto de seguridad de aplicaciones web abiertas (OWASP) se distribuye como una máquina virtual en formato VMware compatible con sus productos gratuitos VMware Player y VMware vSphere Hypervisor (ESXi) (junto con sus productos más antiguos y comerciales). La máquina virtual no requiere instalación. Simplemente extraiga los archivos del archivo comprimido e iníciela en su software de virtualización.
La versión .OVA es compatible con diferentes tipos de máquinas virtuales. https://sourceforge.net/projects/owaspbwa/files/1.2/ de todas formas la que descargamos servirá en virtual box.

Descargaremos la máquina virtual OWASP BWA junto con herramientas de apoyo para crear nuestros laboratorios de pruebas de penetración de aplicaciones web. Usaremos Virtual box que ya deberías tener instalado. Después de descomprimir, se mostrará una lista de varios archivos, como se muestra a continuación:

Todas las extensiones de archivo mostradas indican que la máquina virtual se puede importar a Virtual Box o a VM Player/Workstation. Para este laboratorio, seguiremos utilizando Oracle Virtual Box. Tome nota del archivo OWASP Broken Web Apps-cl1.vmdk. Debemos abrir el administrador de Virtual Box. Dentro de la pantalla del Administrador de Virtual Box, seleccionar Máquina|Nuevo en el menú superior y escriba un nombre para la máquina, OWASP BWA. Establezcer el tipo en Linux y la versión en Ubuntu (64 bits) y haga clic en Siguiente de la siguiente manera:

Al dar a Terminar. Almacenamiento debemos seleccionar: OWASP Broken Web Apps-cl1.vmdk. De la carpeta que descomprimimos anteriormente.

En la sección Red seleccionamos el adaptador deseado, elegiremos adaptador puente:

Damos clic en Aceptar para aplicar los cambios. Damos a iniciar y en brebe ya tenemos la maquina corriendo.

Tanto para el sistema como para las maquinas el user es root y el password es oswapbwa

Ya podemos iniciar cualquiera de las aplicaciones vulnerables

Resumen ejecutivo (para entender el artículo en 1 vistazo)
- Objetivo: crear un laboratorio de pentest web gratuito usando VMs y repositorios públicos para practicar OWASP Top 10 y muchas otras vulnerabilidades.
- Plataformas y recursos mencionados:
- Máquinas/VMs intencionalmente vulnerables: Metasploitable 2/3, OWASP BWA, Bee-Box, VulnHub.
- Aplicaciones vulnerables: bWAPP, DVWA, Mutillidae, WebGoat, Juice Shop, NodeGoat, WordPress viejo, etc.
- Plataformas online: TryHackMe, Hack The Box (boxes free/retired), PortSwigger Web Academy, sitios demo de escáneres.
- Repos útiles: OWASP SeedLabs, imágenes Docker (DVWA, Juice Shop, bWAPP).
- Pasos clave para montar el laboratorio:
- Instalar VirtualBox (enlace oficial) y preparar la VM anfitrión (o usar la Kali ya instalada).
- Descargar/importar las VMs (OVA/VMDK) de Metasploitable, OWASP BWA, Bee-Box o extraer imágenes desde VulnHub.
- Configurar la red (puente/host-only según necesidad) para poder acceder a las VMs desde tu máquina de trabajo.
- Levantar servicios: iniciar Apache/MySQL en Kali o en las VMs (ej.: bWAPP) y acceder por navegador a http://127.0.0.1/… o a la IP asignada.
- Opcional: usar Docker para levantar rápidamente DVWA, Juice Shop, etc.
- Recomendaciones prácticas para rendimiento/seguridad:
- Añadir exclusiones en el antivirus para las carpetas de las VMs.
- Suspender (guardar estado) las VMs en vez de apagarlas para reanudar más rápido.
- Asignar RAM/CPU suficientes; si el hardware es limitado, reducir número de VMs concurrentes.
- Ejemplos prácticos del artículo:
- Instalación y puesta en marcha de bWAPP (copiar a /var/www/html/, ajustar permisos, iniciar servicios, acceder a install.php).
- Levantar Bee-Box o Metasploitable2 en VirtualBox y credenciales básicas (msfadmin:msfadmin / root:oswapbwa en OWASP BWA).
- Importar OWASP Broken Web Apps (.vmdk/.ova) y seleccionar adaptador de red (puente) para acceso externo.
- Resultado esperado: tendrás un laboratorio local completo para practicar ataques web, explotación y escalado de privilegios sin gastar dinero.
Diez preguntas basadas en el artículo
- ¿Qué es bWAPP y cuál es su objetivo principal?
- ¿Qué ventajas ofrece la máquina virtual Bee-Box frente a una instalación local de bWAPP?
- ¿Qué tipo de vulnerabilidades permite practicar Metasploitable 2?
- ¿Qué plataformas en línea permiten practicar pentesting sin coste o con opciones gratuitas?
- ¿Cuál es la utilidad del proyecto OWASP Broken Web Applications?
- ¿Qué recomendaciones se dan para mejorar el rendimiento de las máquinas virtuales?
- ¿Qué se debe hacer después de descomprimir bWAPP en Kali Linux para que funcione?
- ¿Qué aplicaciones vulnerables vienen incluidas en OWASP BWA?
- ¿Cuál es la diferencia entre WebGoat y Juice Shop?
- ¿Qué herramientas pueden usarse para montar localmente laboratorios de pentesting?
Respuestas detalladas a las 10 preguntas
1. ¿Qué es bWAPP y cuál es su objetivo principal?
bWAPP (buggy Web Application) es una aplicación web intencionalmente vulnerable diseñada para que los usuarios puedan practicar pruebas de penetración (pentesting) y hacking ético. Está desarrollada en PHP con base de datos MySQL y su objetivo es enseñar y permitir la práctica de más de 100 vulnerabilidades web, muchas de ellas alineadas con el proyecto OWASP Top 10.
2. ¿Qué ventajas ofrece la máquina virtual Bee-Box frente a una instalación local de bWAPP?
Bee-Box es una VM que ya incluye bWAPP preinstalado y configurado, lo cual elimina errores de configuración inicial. Es ideal para quienes no desean modificar su sistema operativo base y permite también prácticas más avanzadas como escalada de privilegios hasta root.
3. ¿Qué tipo de vulnerabilidades permite practicar Metasploitable 2?
Metasploitable 2 es una VM de Linux sin entorno gráfico, diseñada para contener múltiples vulnerabilidades graves: fallos en servicios, aplicaciones web, bases de datos, configuraciones por defecto, etc. Permite practicar exploits con Metasploit, escaneos con Nmap, accesos no autenticados, RCE, etc.
4. ¿Qué plataformas en línea permiten practicar pentesting sin coste o con opciones gratuitas?
Las plataformas mencionadas en el artículo son:
- TryHackMe (muchas rooms gratuitas)
- Hack The Box (máquinas retiradas y algunas públicas)
- PortSwigger Web Academy (interactiva, sin necesidad de VM)
- PicoCTF (con retos y máquinas web para hacking)
5. ¿Cuál es la utilidad del proyecto OWASP Broken Web Applications?
OWASP BWA es una VM que agrupa múltiples aplicaciones vulnerables (Mutillidae, DVWA, WebGoat, Juice Shop, etc.) para que los estudiantes puedan practicar distintos vectores de ataque en un solo entorno centralizado.
6. ¿Qué recomendaciones se dan para mejorar el rendimiento de las máquinas virtuales?
- Excluir el directorio de la VM del antivirus para evitar escaneos innecesarios.
- Usar la opción de «Suspender» en vez de apagar completamente la VM.
- Mejorar el hardware del host (más RAM, mejor CPU) para asignar más recursos a la VM.
7. ¿Qué se debe hacer después de descomprimir bWAPP en Kali Linux para que funcione?
- Dar permisos con: chmod -R 777 /var/www/html/bWAPPv2.2
- Iniciar servicios: service apache2 start y service mysql start
- Acceder a: http://127.0.0.1/bWAPPv2.2/bWAPP/install.php
- Completar la instalación desde el navegador
8. ¿Qué aplicaciones vulnerables vienen incluidas en OWASP BWA?
Algunas son:
- WebGoat
- DVWA
- bWAPP
- Mutillidae II
- Security Shepherd
- Juice Shop
- Joomla, WordPress (versiones antiguas)
- Hackxor, BodgeIt, Peruggia, y más
9. ¿Cuál es la diferencia entre WebGoat y Juice Shop?
- WebGoat: es más didáctico, con lecciones paso a paso para aprender sobre cada vulnerabilidad.
- Juice Shop: simula una tienda online moderna con múltiples vulnerabilidades y retos gamificados; no tiene guía paso a paso, sino que requiere explorar y descubrir.
10. ¿Qué herramientas pueden usarse para montar localmente laboratorios de pentesting?
- VirtualBox (como hipervisor)
- Docker (para levantar contenedores de DVWA, Juice Shop, etc.)
- Imágenes de máquinas vulnerables como Metasploitable 2/3, OWASP BWA, Bee-Box
- Repositorios como VulnHub y OWASP SeedLabs
Diez ejercicios prácticos basados en el artículo
- Instala bWAPP en Kali Linux y accede a la interfaz web.
- Configura Bee-Box en VirtualBox y accede desde otro dispositivo en la red.
- Descarga e instala Metasploitable 2 y realiza un escaneo de puertos con Nmap.
- Instala OWASP BWA en VirtualBox y accede a Mutillidae II desde el navegador.
- Utiliza la plataforma TryHackMe para completar la room «OWASP Top 10».
- Instala WebGoat y completa la lección de SQL Injection.
- En bWAPP, realiza una prueba de Cross-Site Scripting (XSS).
- Compara el consumo de recursos entre Bee-Box y bWAPP instalado manualmente.
- Ejecuta un ataque de fuerza bruta sobre el login de DVWA usando Hydra.
- Configura una imagen Docker de Juice Shop y accede al panel de administración oculto.
Respuestas y solución detallada a los 10 ejercicios
1. Instala bWAPP en Kali Linux y accede a la interfaz web.
Pasos:
- Descargar bWAPP desde SourceForge.
- Copiar a /var/www/html y descomprimir.
unzip bWAPPv2.2.zip -d /var/www/html
chmod -R 777 /var/www/html/bWAPPv2.2
service apache2 start
service mysql start
- Acceder desde el navegador: http://localhost/bWAPPv2.2/bWAPP/install.php
2. Configura Bee-Box en VirtualBox y accede desde otro dispositivo en la red.
Pasos:
- Importar la VM de Bee-Box.
- Configurar red en modo “Adaptador puente”.
- Iniciar la VM.
- Desde otro equipo en la red: http://<IP-de-bee-box>
3. Descarga e instala Metasploitable 2 y realiza un escaneo de puertos con Nmap.
Pasos:
- Descargar Metasploitable 2 desde SourceForge.
- Crear VM con VirtualBox.
- Iniciar la máquina con credenciales: msfadmin:msfadmin.
- En Kali:
nmap -sS -sV <IP-Metasploitable>
4. Instala OWASP BWA en VirtualBox y accede a Mutillidae II desde el navegador.
Pasos:
- Descargar OWASP BWA.
- Crear VM en VirtualBox y conectar archivo .vmdk.
- Iniciar la VM.
- Acceder desde navegador: http://<IP-OWASP>/mutillidae
5. Utiliza la plataforma TryHackMe para completar la room «OWASP Top 10».
Pasos:
- Crear cuenta en TryHackMe.
- Buscar «OWASP Top 10».
- Seguir los pasos guiados y completar los retos.
6. Instala WebGoat y completa la lección de SQL Injection.
Pasos:
- Descargar WebGoat Docker:
docker run -p 8080:8080 webgoat/webgoat
- Acceder en navegador: http://localhost:8080/WebGoat
- Entrar a la lección de SQL Injection y seguir el tutorial.
7. En bWAPP, realiza una prueba de Cross-Site Scripting (XSS).
Pasos:
- Ingresar a bWAPP.
- Seleccionar vulnerabilidad: «Reflected XSS».
- En un campo de entrada, colocar: <script>alert(1)</script>.
- Al enviar, se debería ejecutar el alert.
8. Compara el consumo de recursos entre Bee-Box y bWAPP instalado manualmente.
Pasos:
- Iniciar ambas VMs por separado.
- Usar el monitor del sistema para ver CPU y RAM utilizadas.
- Comparar resultados: Bee-Box puede usar más RAM por entorno gráfico.
9. Ejecuta un ataque de fuerza bruta sobre el login de DVWA usando Hydra.
Pasos:
hydra -l admin -P /usr/share/wordlists/rockyou.txt <IP-DVWA> http-post-form «/dvwa/login.php:username=^USER^&password=^PASS^:Login failed»
10. Configura una imagen Docker de Juice Shop y accede al panel de administración oculto.
Pasos:
docker pull bkimminich/juice-shop
docker run -d -p 3000:3000 bkimminich/juice-shop
- Acceder: http://localhost:3000
- Buscar ruta /admin o resolver retos hasta desbloquearla.
Ya tenes listo tu laboratorio para pentest
Buen trabajo: con este capítulo aprendiste a crear y gestionar un laboratorio de pentesting web gratuito, a identificar y desplegar las VMs y aplicaciones vulnerables más útiles (bWAPP, Metasploitable, OWASP BWA, Bee-Box, etc.), y adoptaste prácticas que mejoran rendimiento y seguridad (exclusiones de antivirus, usar suspensión, dimensionar recursos).
¿Cómo te sirve esto en tu carrera como hacker?
- Te da entorno seguro para ensayar exploits y técnicas sin riesgos legales.
- Te vuelve capaz de reproducir vulnerabilidades reales, entender cadenas de explotación y preparar pruebas de concepto.
- Mejora tu fluidez con herramientas y procedimientos (configuración de red en VMs, Apache/MySQL, Burp/Metasploit, Docker).
- Te prepara para plataformas pagas o concursos (HTB, THM) porque ya sabrás qué esperar y cómo atacar cajas web.
Al seguir esta guía, has construido un laboratorio de pentest sólido que te brinda la oportunidad de enfrentarte a escenarios del mundo real de manera controlada. Continúa explorando nuevas vulnerabilidades, técnicas de explotación y soluciones de seguridad. Sigue practicando con responsabilidad y enfoque: monta retos nuevos, documenta tus hallazgos y, cuando sientas que dominas lo básico, trabaja en metodología de reporting y mitigaciones — eso te hará destacar como pentester profesional.